[libdap] 01/01: Upstream 3.18.0

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Sep 30 03:20:14 UTC 2016


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to tag upstream/3.18.0
in repository libdap.

commit 312a34e352b392a23547bcb7aaf8bb094859fa22
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Mon Aug 29 17:13:02 2016 +0100

    Upstream 3.18.0
---
 AISConnect.cc                                      |    87 +
 XMLWriter.h => AISConnect.h                        |    64 +-
 AISDatabaseParser.cc                               |   436 +
 AISDatabaseParser.h                                |   133 +
 GNU/GNURegex.h => AISExceptions.h                  |    63 +-
 AISMerge.cc                                        |   117 +
 AISMerge.h                                         |    93 +
 AISResources.cc                                    |   272 +
 AISResources.h                                     |   148 +
 AlarmHandler.h                                     |     6 +-
 Array.cc                                           |    56 +-
 Array.h                                            |    16 +-
 BaseType.cc                                        |    49 +-
 BaseType.h                                         |     3 +-
 Byte.cc                                            |    22 +-
 Byte.h                                             |     1 +
 ChangeLog                                          |   648 +-
 Connect.cc                                         |    98 +-
 ConstraintEvaluator.cc                             |     6 +-
 Constructor.cc                                     |    24 +-
 Constructor.h                                      |     2 +-
 D4Attributes.cc                                    |    50 +-
 D4Attributes.h                                     |     9 +-
 D4Connect.cc                                       |   407 +-
 D4Connect.h                                        |     8 +-
 D4Enum.cc                                          |   266 +-
 D4Enum.h                                           |   178 +-
 D4FilterClause.cc                                  |   212 +
 D4FilterClause.h                                   |   202 +
 D4Group.cc                                         |    57 +-
 D4Group.h                                          |     2 +-
 D4Maps.h                                           |    40 +-
 D4Opaque.h                                         |     4 +-
 XMLWriter.h => D4ParseError.h                      |    50 +-
 D4ParserSax2.cc                                    |     8 +-
 D4ParserSax2.h                                     |    35 +-
 D4RValue.cc                                        |   116 +-
 D4RValue.h                                         |    67 +-
 D4Sequence.cc                                      |   246 +-
 D4Sequence.h                                       |    51 +-
 D4StreamMarshaller.cc                              |   232 +-
 D4StreamMarshaller.h                               |     2 +
 D4StreamUnMarshaller.h                             |    14 +
 DAPCache3.cc                                       |  1003 +
 DAPCache3.h                                        |   160 +
 DAS.cc                                             |    75 +-
 DAS.h                                              |    33 +-
 DDS.cc                                             |    27 +-
 DDS.h                                              |     8 +-
 DDXParserSAX2.cc                                   |    99 +-
 DEBIAN/control                                     |    14 +
 DEBIAN/videbcontrol.sh                             |    43 +
 DMR.cc                                             |     3 +-
 Error.cc                                           |     3 +-
 Error.h                                            |    20 +-
 Error.tab.cc                                       |  1550 -
 Error.tab.hh                                       |   113 -
 Float32.cc                                         |    71 +-
 Float32.h                                          |     1 +
 Float64.cc                                         |    31 +-
 Float64.h                                          |     1 +
 GNU/GNURegex.h                                     |     2 +-
 HTTPCache.cc                                       |    21 +-
 HTTPCacheTable.cc                                  |     6 +-
 HTTPCacheTable.h                                   |     2 +
 HTTPConnect.cc                                     |     2 +
 INSTALL                                            |    21 +-
 INSTALL.AIX                                        |   110 +
 Int16.cc                                           |    20 +-
 Int16.h                                            |     1 +
 Int32.cc                                           |    30 +-
 Int32.h                                            |     1 +
 Int64.cc                                           |    23 +-
 Int64.h                                            |     1 +
 Int8.cc                                            |    56 +-
 Int8.h                                             |     1 +
 Makefile.am                                        |    27 +-
 Makefile.in                                        |  2919 --
 MarshallerThread.cc                                |    23 +-
 MarshallerThread.h                                 |    20 +-
 NEWS                                               |    91 +-
 Operators.h                                        |    23 +-
 RCReader.cc                                        |     3 +-
 README                                             |    17 +-
 README.AIS                                         |   106 +
 Removed_functions.txt                              |   277 +
 Sequence.cc                                        |   155 +-
 Sequence.h                                         |    14 +-
 ServerFunctionsList.cc                             |     3 -
 SignalHandler.cc                                   |     2 +-
 Str.cc                                             |    29 +-
 Str.h                                              |     1 +
 Structure.cc                                       |     7 +-
 UInt16.cc                                          |     7 +-
 UInt32.cc                                          |     7 +-
 UInt64.cc                                          |    39 +-
 UInt64.h                                           |     1 +
 Vector.cc                                          |   105 +-
 Vector.h                                           |     2 +-
 XDRFileMarshaller.cc                               |    21 +-
 XDRFileUnMarshaller.cc                             |    20 +-
 XDRStreamMarshaller.cc                             |    41 +-
 XDRStreamMarshaller.h                              |     1 -
 XDRStreamUnMarshaller.cc                           |     6 +-
 XMLWriter.cc                                       |    15 +-
 XMLWriter.h                                        |     3 +-
 aclocal.m4                                         |  1226 -
 build-deb-pkg.sh                                   |    45 +
 ce_expr.lex                                        |     2 +-
 ce_expr.tab.cc                                     |  2994 --
 ce_expr.tab.hh                                     |   215 -
 ce_expr.yy                                         |    16 +-
 cgi_util.h                                         |     2 +-
 conf/._compile                                     |   Bin 222 -> 0 bytes
 conf/._config.guess                                |   Bin 222 -> 0 bytes
 conf/._config.sub                                  |   Bin 222 -> 0 bytes
 conf/._depcomp                                     |   Bin 222 -> 0 bytes
 conf/._install-sh                                  |   Bin 222 -> 0 bytes
 conf/._libtool.m4                                  |   Bin 240 -> 0 bytes
 conf/._ltmain.sh                                   |   Bin 240 -> 0 bytes
 conf/._ltoptions.m4                                |   Bin 240 -> 0 bytes
 conf/._ltsugar.m4                                  |   Bin 240 -> 0 bytes
 conf/._ltversion.m4                                |   Bin 240 -> 0 bytes
 conf/._lt~obsolete.m4                              |   Bin 240 -> 0 bytes
 conf/._missing                                     |   Bin 222 -> 0 bytes
 conf/._test-driver                                 |   Bin 222 -> 0 bytes
 conf/arg-nonnull.h                                 |    26 +
 conf/c++defs.h                                     |   271 +
 conf/check_zlib.m4                                 |   122 +
 conf/compile                                       |   347 -
 conf/config.guess                                  |  1568 -
 conf/config.sub                                    |  1793 --
 conf/depcomp                                       |   791 -
 conf/install-sh                                    |   527 -
 conf/libtool.m4                                    |  7982 -----
 conf/ltmain.sh                                     |  9655 ------
 conf/ltoptions.m4                                  |   384 -
 conf/ltsugar.m4                                    |   123 -
 conf/ltversion.m4                                  |    23 -
 conf/lt~obsolete.m4                                |    98 -
 conf/missing                                       |   215 -
 conf/test-driver                                   |   139 -
 conf/warn-on-use.h                                 |   109 +
 config.h.in                                        |  1233 -
 configure                                          | 30017 -------------------
 configure.ac                                       |    33 +-
 coverity_model.cpp                                 |    14 +
 crc.h                                              |    18 +
 cvsdate                                            |    53 +
 d4_ce/D4ConstraintEvaluator.cc                     |   238 +-
 d4_ce/D4ConstraintEvaluator.h                      |    26 +-
 d4_ce/Makefile.in                                  |  1229 -
 d4_ce/d4_ce_parser.tab.cc                          |  1836 --
 d4_ce/d4_ce_parser.tab.hh                          |   783 -
 d4_ce/d4_ce_parser.yy                              |   145 +-
 d4_ce/d4_ce_scanner.ll                             |    16 +-
 d4_ce/location.hh                                  |   187 -
 d4_ce/position.hh                                  |   180 -
 d4_ce/stack.hh                                     |   158 -
 d4_function/D4FunctionEvaluator.cc                 |     6 +-
 d4_function/Makefile.in                            |  1198 -
 d4_function/d4_function_parser.tab.cc              |  2446 --
 d4_function/d4_function_parser.tab.hh              |   835 -
 d4_function/d4_function_parser.yy                  |     6 +-
 d4_function/d4_function_scanner.ll                 |     5 +
 d4_function/location.hh                            |   187 -
 d4_function/position.hh                            |   180 -
 d4_function/stack.hh                               |   158 -
 das.lex                                            |     2 +-
 das.tab.cc                                         |  2119 --
 das.tab.hh                                         |   123 -
 dds.tab.cc                                         |  2089 --
 dds.tab.hh                                         |   136 -
 dds.yy                                             |     2 +-
 deflate.c                                          |   145 +
 depend.sh                                          |   114 +
 dods-datatypes.h                                   |    38 -
 doxy.conf                                          |  1363 -
 doxy.conf.in                                       |  2668 +-
 error-test.cc                                      |   203 +
 fdiostream.cc                                      |   266 +
 fdiostream.h                                       |   182 +
 get-version.awk                                    |     9 +
 getdap.cc                                          |     2 +-
 getdap4.cc                                         |    52 +-
 gl/Makefile.in                                     |  1989 --
 gl/iswblank.c                                      |    27 +
 gl/m4/.gitignore                                   |     2 +
 gl/m4/mbchar.m4                                    |    20 +
 gl/m4/mbiter.m4                                    |    17 +
 gl/m4/memchr.m4                                    |    18 +
 gl/m4/restrict.m4                                  |    38 +
 gl/m4/strcase.m4                                   |    45 +
 gl/m4/strings_h.m4                                 |    52 +
 gl/mbchar.c                                        |    37 +
 gl/mbchar.h                                        |   419 +
 gl/mbuiter.h                                       |   192 +
 gl/memchr.c                                        |   198 +
 gl/strcase.h                                       |    46 +
 gl/strcasecmp.c                                    |    62 +
 gl/strings.in.h                                    |   122 +
 gl/strncasecmp.c                                   |    62 +
 gl/strnlen1.c                                      |    38 +
 gl/strnlen1.h                                      |    39 +
 install_libdap_source_deps.sh                      |    13 +
 installdap                                         |   221 +
 lex.Error.cc                                       |  2000 --
 lex.ce_expr.cc                                     |  2089 --
 lex.das.cc                                         |  2171 --
 lex.dds.cc                                         |  2119 --
 libdap.spec                                        |     4 +-
 mime_util.cc                                       |    19 +-
 old/D4ResponseBuilder.cc                           |  1661 +
 old/D4ResponseBuilder.h                            |   196 +
 parser-util.cc                                     |   163 +-
 parser-util.h                                      |    47 +-
 regex_test.cc                                      |     6 +
 tests/.gitignore                                   |     1 +
 tests/DASTest                                      |  3783 ---
 tests/DDSTest                                      |  3288 --
 tests/DDSTest.at                                   |    59 +-
 tests/DMRTest                                      | 10475 -------
 tests/DMRTest.at                                   |   605 +-
 tests/EXPRTest                                     |  8001 -----
 tests/EXPRTest.at                                  |    33 +-
 tests/Makefile.in                                  |  1736 --
 tests/TestArray.cc                                 |    42 +-
 tests/TestCommon.cc                                |    30 +
 tests/TestD4Enum.cc                                |     4 +-
 tests/TestD4Sequence.cc                            |    17 +-
 tests/TestD4Sequence.h                             |     1 +
 tests/TestInt32.cc                                 |     6 +-
 tests/TestStr.cc                                   |     9 +-
 tests/TestStr.h                                    |     1 +
 tests/atlocal.in                                   |     3 +-
 tests/das-test.cc                                  |     9 +-
 tests/dds-testsuite/test.21.dds                    |     6 +
 tests/dds-testsuite/test.21.dds.base               |     5 +
 tests/dds-testsuite/test.22.dds                    |     8 +
 tests/dds-testsuite/test.22.dds.base               |     7 +
 tests/dds-testsuite/test.23.dds                    |     8 +
 tests/dds-testsuite/test.23.dds.base               |     7 +
 tests/dds-testsuite/test.24.dds                    |     8 +
 tests/dds-testsuite/test.24.dds.base               |     7 +
 tests/dds-testsuite/test.25.dds                    |     4 +
 tests/dds-testsuite/test.25.dds.base               |     6 +
 tests/dds-testsuite/test.26.dds                    |     8 +
 tests/dds-testsuite/test.26.dds.base               |    10 +
 tests/dmr-test.cc                                  |    11 +-
 .../{ => big-endian}/test_array_1.xml.1.func_base  |     2 +-
 .../{ => big-endian}/test_array_1.xml.2.func_base  |     2 +-
 .../{ => big-endian}/test_array_1.xml.3.func_base  |     2 +-
 .../{ => big-endian}/test_array_1.xml.4.func_base  |     2 +-
 .../{ => big-endian}/test_array_1.xml.5.func_base  |     2 +-
 .../{ => big-endian}/test_array_1.xml.6.func_base  |     2 +-
 .../{ => big-endian}/test_array_1.xml.7.func_base  |     2 +-
 .../test_array_1.xml.intern_base}                  |     3 -
 .../{ => big-endian}/test_array_1.xml.trans_base   |     2 +-
 .../test_array_10.xml.intern_base}                 |     6 -
 .../{ => big-endian}/test_array_10.xml.trans_base  |     0
 .../test_array_11.xml.intern_base}                 |     6 -
 .../{ => big-endian}/test_array_11.xml.trans_base  |     0
 .../test_array_12.xml.intern_base}                 |    19 +-
 .../big-endian/test_array_12.xml.trans_base        |    29 +
 .../big-endian/test_array_13.xml.intern_base       |    25 +
 .../test_array_13.xml.trans_base}                  |    21 +-
 .../big-endian/test_array_14.xml.intern_base       |    25 +
 .../test_array_14.xml.trans_base}                  |    21 +-
 .../test_array_2.xml.intern_base}                  |     3 -
 .../{ => big-endian}/test_array_2.xml.trans_base   |     2 +-
 .../test_array_3.1.dmr.1.trans_base}               |    17 +-
 .../test_array_3.1.dmr.2.trans_base}               |    13 +-
 .../test_array_3.1.dmr.3.trans_base}               |    13 +-
 .../test_array_3.1.dmr.4.trans_base}               |    13 +-
 .../test_array_3.1.dmr.5.trans_base}               |    11 +-
 .../test_array_3.xml.intern_base}                  |     3 -
 .../{ => big-endian}/test_array_3.xml.trans_base   |     0
 .../{ => big-endian}/test_array_4.xml.1.trans_base |     0
 .../{ => big-endian}/test_array_4.xml.3.trans_base |     0
 .../{ => big-endian}/test_array_4.xml.4.trans_base |     0
 .../{ => big-endian}/test_array_4.xml.5.trans_base |     4 +-
 .../{ => big-endian}/test_array_4.xml.6.trans_base |     2 +-
 .../{ => big-endian}/test_array_4.xml.7.trans_base |     2 +-
 .../{ => big-endian}/test_array_4.xml.8.trans_base |     2 +-
 .../test_array_4.xml.intern_base}                  |    33 -
 .../{ => big-endian}/test_array_4.xml.trans_base   |    16 +-
 .../{ => big-endian}/test_array_5.xml.1.func_base  |     2 +-
 .../{ => big-endian}/test_array_5.xml.2.func_base  |     2 +-
 .../{ => big-endian}/test_array_5.xml.3.func_base  |     2 +-
 .../{ => big-endian}/test_array_5.xml.4.func_base  |     2 +-
 .../test_array_5.xml.intern_base}                  |    12 -
 .../{ => big-endian}/test_array_5.xml.trans_base   |     2 +-
 .../test_array_6.1.xml.1.trans_base                |     2 +-
 .../test_array_6.1.xml.2.trans_base                |     2 +-
 .../test_array_6.1.xml.3.trans_base                |     2 +-
 .../test_array_6.1.xml.4.trans_base                |     2 +-
 .../test_array_6.2.xml.1.trans_base                |     2 +-
 .../test_array_6.2.xml.2.trans_base                |     2 +-
 .../test_array_6.2.xml.3.trans_base                |     2 +-
 .../test_array_6.2.xml.4.trans_base                |     2 +-
 .../test_array_6.2.xml.5.trans_base                |     2 +-
 .../{ => big-endian}/test_array_6.xml.1.trans_base |     2 +-
 .../{ => big-endian}/test_array_6.xml.2.trans_base |     2 +-
 .../{ => big-endian}/test_array_6.xml.3.trans_base |     2 +-
 .../test_array_6.xml.intern_base}                  |     3 -
 .../{ => big-endian}/test_array_6.xml.trans_base   |     2 +-
 .../test_array_7.1.xml.1.trans_base                |     2 +-
 .../test_array_7.1.xml.2.trans_base                |     2 +-
 .../test_array_7.1.xml.3.trans_base                |     2 +-
 .../test_array_7.1.xml.4.trans_base                |     2 +-
 .../test_array_7.1.xml.5.trans_base                |     2 +-
 .../test_array_7.1.xml.6.trans_base                |     2 +-
 .../test_array_7.2.xml.1.trans_base                |     2 +-
 .../test_array_7.2.xml.2.trans_base                |     2 +-
 .../test_array_7.2.xml.3.trans_base                |     2 +-
 .../test_array_7.2.xml.4.trans_base                |     2 +-
 .../{ => big-endian}/test_array_7.xml.1.trans_base |     2 +-
 .../{ => big-endian}/test_array_7.xml.2.trans_base |     2 +-
 .../{ => big-endian}/test_array_7.xml.3.trans_base |     2 +-
 .../{ => big-endian}/test_array_7.xml.4.trans_base |     2 +-
 .../test_array_7.xml.intern_base}                  |     3 -
 .../{ => big-endian}/test_array_7.xml.trans_base   |     2 +-
 .../{ => big-endian}/test_array_8.xml.1.trans_base |     2 +-
 .../test_array_8.xml.intern_base}                  |     3 -
 .../{ => big-endian}/test_array_8.xml.trans_base   |     2 +-
 .../big-endian/test_array_9.xml.intern_base        |    17 +
 .../test_array_9.xml.trans_base}                   |    12 +-
 .../test_simple_1.xml.intern_base}                 |     6 +-
 .../{ => big-endian}/test_simple_1.xml.trans_base  |     2 +-
 .../test_simple_10.xml.intern_base}                |     6 +-
 .../{ => big-endian}/test_simple_10.xml.trans_base |     0
 .../big-endian/test_simple_2.xml.intern_base       |    37 +
 .../{ => big-endian}/test_simple_2.xml.trans_base  |    14 +-
 .../test_simple_3.xml.intern_base}                 |     6 +-
 .../{ => big-endian}/test_simple_3.xml.trans_base  |     2 +-
 .../test_simple_4.xml.intern_base}                 |     3 -
 .../{ => big-endian}/test_simple_4.xml.trans_base  |     2 +-
 .../big-endian/test_simple_5.xml.intern_base       |    29 +
 .../{ => big-endian}/test_simple_5.xml.trans_base  |    10 +-
 .../test_simple_6.1.xml.1.trans_base               |     2 +-
 .../big-endian/test_simple_6.2.xml.intern_base     |    13 +
 .../test_simple_6.2.xml.trans_base}                |    14 +-
 .../test_simple_6.3.xml.intern_base}               |    11 +-
 .../test_simple_6.3.xml.trans_base}                |    10 +-
 .../test_simple_6.xml.1.trans_base                 |     2 +-
 .../test_simple_6.xml.2.trans_base                 |     2 +-
 .../test_simple_6.xml.3.trans_base                 |     0
 .../test_simple_6.xml.intern_base}                 |     3 -
 .../{ => big-endian}/test_simple_6.xml.trans_base  |     2 +-
 .../test_simple_7.xml.1.trans_base                 |     2 +-
 .../test_simple_7.xml.2.trans_base                 |     2 +-
 .../test_simple_7.xml.intern_base}                 |     3 -
 .../{ => big-endian}/test_simple_7.xml.trans_base  |     2 +-
 .../test_simple_8.xml.1.trans_base                 |     2 +-
 .../test_simple_8.xml.2.trans_base                 |     2 +-
 .../test_simple_8.xml.intern_base}                 |     3 -
 .../{ => big-endian}/test_simple_8.xml.trans_base  |     2 +-
 .../test_simple_9.1.xml.intern_base}               |    24 +-
 .../test_simple_9.1.xml.trans_base                 |    16 +-
 .../test_simple_9.xml.intern_base}                 |     6 +-
 .../{ => big-endian}/test_simple_9.xml.trans_base  |     0
 .../{ => big-endian}/vol_1_ce_1.xml.1.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.10.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.11.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.12.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.13.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.14.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.15.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.16.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.2.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.3.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.4.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.5.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.6.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.7.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.8.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_1.xml.9.func_base    |     2 +-
 .../{ => big-endian}/vol_1_ce_10.xml.1.func_base   |     2 +-
 .../{ => big-endian}/vol_1_ce_10.xml.2.func_base   |     4 +-
 .../{ => big-endian}/vol_1_ce_10.xml.3.func_base   |     4 +-
 .../test_array_1.xml.1.func_base                   |     0
 .../test_array_1.xml.2.func_base                   |     0
 .../test_array_1.xml.3.func_base                   |     0
 .../test_array_1.xml.4.func_base                   |     0
 .../test_array_1.xml.5.func_base                   |     0
 .../test_array_1.xml.6.func_base                   |     0
 .../test_array_1.xml.7.func_base                   |     0
 .../test_array_1.xml.intern_base}                  |     3 -
 .../test_array_1.xml.trans_base                    |     0
 .../test_array_10.xml.intern_base}                 |     6 -
 .../test_array_10.xml.trans_base                   |     0
 .../test_array_11.xml.intern_base}                 |     6 -
 .../test_array_11.xml.trans_base                   |     0
 .../test_array_12.xml.intern_base}                 |    19 +-
 .../test_array_12.xml.trans_base}                  |    19 +-
 .../little-endian/test_array_13.xml.intern_base    |    25 +
 .../test_array_13.xml.trans_base}                  |    21 +-
 .../little-endian/test_array_14.xml.intern_base    |    25 +
 .../test_array_14.xml.trans_base}                  |    21 +-
 .../test_array_2.xml.intern_base}                  |     3 -
 .../test_array_2.xml.trans_base                    |     0
 .../test_array_3.1.dmr.1.trans_base}               |    17 +-
 .../test_array_3.1.dmr.2.trans_base}               |    13 +-
 .../test_array_3.1.dmr.3.trans_base}               |    13 +-
 .../test_array_3.1.dmr.4.trans_base}               |    13 +-
 .../test_array_3.1.dmr.5.trans_base}               |    11 +-
 .../test_array_3.xml.intern_base}                  |     3 -
 .../test_array_3.xml.trans_base                    |     0
 .../test_array_4.xml.1.trans_base                  |     0
 .../test_array_4.xml.2.trans_base                  |     0
 .../test_array_4.xml.3.trans_base                  |     0
 .../test_array_4.xml.4.trans_base                  |     0
 .../test_array_4.xml.5.trans_base                  |     0
 .../test_array_4.xml.6.trans_base                  |     0
 .../test_array_4.xml.7.trans_base                  |     0
 .../test_array_4.xml.8.trans_base                  |     0
 .../test_array_4.xml.intern_base}                  |    33 -
 .../test_array_4.xml.trans_base                    |     0
 .../test_array_5.xml.1.func_base                   |     0
 .../test_array_5.xml.2.func_base                   |     0
 .../test_array_5.xml.3.func_base                   |     0
 .../test_array_5.xml.4.func_base                   |     0
 .../test_array_5.xml.intern_base}                  |    12 -
 .../test_array_5.xml.trans_base                    |     0
 .../test_array_6.1.xml.1.trans_base                |     0
 .../test_array_6.1.xml.2.trans_base                |     0
 .../test_array_6.1.xml.3.trans_base                |     0
 .../test_array_6.1.xml.4.trans_base                |     0
 .../test_array_6.2.xml.1.trans_base                |     0
 .../test_array_6.2.xml.2.trans_base                |     0
 .../test_array_6.2.xml.3.trans_base                |     0
 .../test_array_6.2.xml.4.trans_base                |     0
 .../test_array_6.2.xml.5.trans_base                |     0
 .../test_array_6.xml.1.trans_base                  |     0
 .../test_array_6.xml.2.trans_base                  |     0
 .../test_array_6.xml.3.trans_base                  |     0
 .../test_array_6.xml.intern_base}                  |     3 -
 .../test_array_6.xml.trans_base                    |     0
 .../test_array_7.1.xml.1.trans_base                |     0
 .../test_array_7.1.xml.2.trans_base                |     0
 .../test_array_7.1.xml.3.trans_base                |     0
 .../test_array_7.1.xml.4.trans_base                |     0
 .../test_array_7.1.xml.5.trans_base                |     0
 .../test_array_7.1.xml.6.trans_base                |     0
 .../test_array_7.2.xml.1.trans_base                |     0
 .../test_array_7.2.xml.2.trans_base                |     0
 .../test_array_7.2.xml.3.trans_base                |     0
 .../test_array_7.2.xml.4.trans_base                |     0
 .../test_array_7.xml.1.trans_base                  |     0
 .../test_array_7.xml.2.trans_base                  |     0
 .../test_array_7.xml.3.trans_base                  |     0
 .../test_array_7.xml.4.trans_base                  |     0
 .../test_array_7.xml.intern_base}                  |     3 -
 .../test_array_7.xml.trans_base                    |     0
 .../test_array_8.xml.1.trans_base                  |     0
 .../test_array_8.xml.intern_base}                  |     3 -
 .../test_array_8.xml.trans_base                    |     0
 .../little-endian/test_array_9.xml.intern_base     |    17 +
 .../test_array_9.xml.trans_base}                   |    12 +-
 .../test_simple_1.xml.intern_base}                 |     6 +-
 .../test_simple_1.xml.trans_base                   |     0
 .../test_simple_10.xml.intern_base}                |     6 +-
 .../test_simple_10.xml.trans_base                  |     0
 .../little-endian/test_simple_2.xml.intern_base    |    37 +
 .../test_simple_2.xml.trans_base                   |     0
 .../test_simple_3.xml.intern_base}                 |     6 +-
 .../test_simple_3.xml.trans_base                   |     0
 .../test_simple_4.xml.intern_base}                 |     3 -
 .../test_simple_4.xml.trans_base                   |     0
 .../little-endian/test_simple_5.xml.intern_base    |    29 +
 .../test_simple_5.xml.trans_base                   |     0
 .../test_simple_6.1.xml.1.trans_base               |     0
 .../little-endian/test_simple_6.2.xml.intern_base  |    13 +
 .../test_simple_6.2.xml.trans_base}                |    14 +-
 .../test_simple_6.3.xml.intern_base}               |    11 +-
 .../test_simple_6.3.xml.trans_base}                |     8 +-
 .../test_simple_6.xml.1.trans_base                 |     0
 .../test_simple_6.xml.2.trans_base                 |     0
 .../test_simple_6.xml.3.trans_base                 |     0
 .../test_simple_6.xml.intern_base}                 |     3 -
 .../test_simple_6.xml.trans_base                   |     0
 .../test_simple_7.xml.1.trans_base                 |     0
 .../test_simple_7.xml.2.trans_base                 |     0
 .../test_simple_7.xml.intern_base}                 |     3 -
 .../test_simple_7.xml.trans_base                   |     0
 .../test_simple_8.xml.1.trans_base                 |     0
 .../test_simple_8.xml.2.trans_base                 |     0
 .../test_simple_8.xml.intern_base}                 |     3 -
 .../test_simple_8.xml.trans_base                   |     0
 .../test_simple_9.1.xml.intern_base}               |    24 +-
 .../test_simple_9.1.xml.trans_base                 |    12 +-
 .../test_simple_9.xml.intern_base}                 |     6 +-
 .../test_simple_9.xml.trans_base                   |     0
 .../{ => little-endian}/vol_1_ce_1.xml.1.func_base |     0
 .../vol_1_ce_1.xml.10.func_base                    |     0
 .../vol_1_ce_1.xml.11.func_base                    |     0
 .../vol_1_ce_1.xml.12.func_base                    |     0
 .../vol_1_ce_1.xml.13.func_base                    |     0
 .../vol_1_ce_1.xml.14.func_base                    |     0
 .../vol_1_ce_1.xml.15.func_base                    |     0
 .../vol_1_ce_1.xml.16.func_base                    |     0
 .../{ => little-endian}/vol_1_ce_1.xml.2.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.3.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.4.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.5.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.6.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.7.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.8.func_base |     0
 .../{ => little-endian}/vol_1_ce_1.xml.9.func_base |     0
 .../vol_1_ce_10.xml.1.func_base                    |     0
 .../vol_1_ce_10.xml.2.func_base                    |     0
 .../vol_1_ce_10.xml.3.func_base                    |     0
 .../{ => little-endian}/vol_1_ce_2.xml.1.func_base |     0
 tests/dmr-testsuite/test_array_12.xml              |    17 +
 tests/dmr-testsuite/test_array_12.xml.baseline     |    11 +
 tests/dmr-testsuite/test_array_13.xml              |    18 +
 tests/dmr-testsuite/test_array_13.xml.baseline     |    12 +
 tests/dmr-testsuite/test_array_14.xml              |    18 +
 tests/dmr-testsuite/test_array_14.xml.baseline     |    12 +
 tests/dmr-testsuite/test_array_3.1.dmr             |    17 +
 tests/dmr-testsuite/test_array_9.xml               |    13 +
 tests/dmr-testsuite/test_array_9.xml.baseline      |     8 +
 tests/dmr-testsuite/test_simple_6.2.xml            |    10 +
 tests/dmr-testsuite/test_simple_6.2.xml.baseline   |     6 +
 tests/dmr-testsuite/test_simple_6.3.xml            |    14 +
 tests/dmr-testsuite/test_simple_6.3.xml.baseline   |    10 +
 tests/dmr-testsuite/test_simple_9.1.xml            |     6 +-
 tests/dmr-testsuite/test_simple_9.1.xml.baseline   |     6 +-
 .../test_array_12.xml.trans_base}                  |    21 +-
 .../test_array_13.xml.trans_base}                  |    21 +-
 .../test_array_14.xml.trans_base}                  |    21 +-
 .../test_array_9.xml.trans_base}                   |    13 +-
 .../test_simple_6.2.xml.trans_base}                |    14 +-
 .../test_simple_6.3.xml.trans_base}                |    10 +-
 .../test_simple_7.xml.f.trans_base}                |     5 +-
 .../test_simple_7.xml.f1.trans_base}               |     5 +-
 .../test_simple_7.xml.f2.trans_base}               |     5 +-
 .../test_simple_7.xml.f3.trans_base}               |     5 +-
 .../test_simple_7.xml.f4.trans_base}               |     5 +-
 .../test_simple_7.xml.f5.trans_base}               |     5 +-
 .../test_simple_7.xml.f6.trans_base}               |     5 +-
 .../test_simple_7.xml.f7.trans_base}               |     5 +-
 .../test_simple_7.xml.f8.trans_base}               |     5 +-
 .../test_simple_7.xml.f9.trans_base}               |     5 +-
 .../test_simple_7.xml.fa.trans_base}               |     5 +-
 .../test_simple_7.xml.fs1.trans_base}              |     5 +-
 .../test_simple_7.xml.fs2.trans_base}              |     5 +-
 .../test_simple_7.xml.fs3.trans_base}              |     5 +-
 .../test_simple_7.xml.fs4.trans_base}              |     5 +-
 .../test_simple_7.xml.fs5.trans_base}              |     5 +-
 .../test_simple_7.xml.fs6.trans_base}              |     5 +-
 .../test_simple_7.xml.fs7.trans_base}              |     5 +-
 .../test_simple_7.xml.g1.trans_base}               |     4 +-
 .../universal/test_simple_8.1.xml.f1.trans_base    |    30 +
 .../universal/test_simple_8.1.xml.f2.trans_base    |    26 +
 .../universal/test_simple_8.1.xml.f3.trans_base    |    30 +
 .../universal/test_simple_8.1.xml.f4.trans_base    |    30 +
 .../universal/test_simple_8.1.xml.f5.trans_base    |    30 +
 tests/dmrset/test_atomic_array.nc.dmr              |    75 +
 tests/dmrset/test_atomic_array.syn.dmr             |    70 +
 tests/dmrset/test_atomic_types.nc.dmr              |    73 +
 tests/dmrset/test_atomic_types.syn.dmr             |    73 +
 tests/dmrset/test_enum.nc.dmr                      |    29 +
 tests/dmrset/test_enum_array.nc.dmr                |    31 +
 tests/dmrset/test_groups1.nc.dmr                   |    30 +
 tests/dmrset/test_one_var.nc.dmr                   |     9 +
 tests/dmrset/test_one_vararray.nc.dmr              |    12 +
 tests/dmrset/test_struct_array.nc.dmr              |    18 +
 tests/dmrset/test_struct_array_2.nc.dmr            |    26 +
 tests/dmrset/test_struct_nested.hdf5.dmr           |    20 +
 tests/dmrset/test_struct_nested3.hdf5.dmr          |    15 +
 tests/dmrset/test_struct_type.nc.dmr               |    14 +
 tests/dmrset/test_utf8.nc.dmr                      |    12 +
 tests/dmrset/test_vlen1.nc.dmr                     |    11 +
 tests/dmrset/test_vlen2.nc.dmr                     |    15 +
 tests/dmrset/test_vlen3.hdf5.dmr                   |    13 +
 tests/dmrset/test_vlen5.hdf5.dmr                   |    15 +
 tests/expr-test.cc                                 |     2 +-
 tests/expr-testsuite/data.21.base                  |     6 +
 tests/expr-testsuite/data.22.base                  |    10 +
 tests/expr-testsuite/data.23.base                  |    10 +
 tests/expr-testsuite/data.24.base                  |    10 +
 tests/expr-testsuite/data.25.base                  |     8 +
 tests/expr-testsuite/data.26.base                  |    16 +
 tests/expr-testsuite/test.21.dds                   |     6 +
 tests/expr-testsuite/test.22.dds                   |     8 +
 tests/expr-testsuite/test.23.dds                   |     8 +
 tests/expr-testsuite/test.24.dds                   |     8 +
 tests/expr-testsuite/test.25.dds                   |     4 +
 tests/expr-testsuite/test.26.dds                   |     8 +
 tests/{EXPRTest.at => getdap4Test.at}              |    28 +-
 tests/getdapTest                                   |  2034 --
 tests/io_test.cc                                   |    64 +
 tests/package.m4                                   |     6 -
 tests/valgrind-osx-10.8.txt                        |  2420 ++
 unit-tests/AISDatabaseParserTest.cc                |   174 +
 .../test_text_file.txt.plain => AISMergeTest.cc}   |     2 +-
 unit-tests/AISResourcesTest.cc                     |   319 +
 .../D4-marshaller/{ => big-endian}/test_cmp.dat    |   Bin
 .../{ => big-endian}/test_opaque_1_bin.dat         |   Bin 32780 -> 32780 bytes
 .../big-endian/test_scalars_1_bin.dat              |   Bin 0 -> 57 bytes
 .../big-endian/test_scalars_2_bin.dat              |   Bin 0 -> 20 bytes
 .../big-endian/test_scalars_3_bin.dat              |   Bin 0 -> 101 bytes
 .../D4-marshaller/big-endian/test_vector_1_bin.dat |   Bin 0 -> 425996 bytes
 .../D4-marshaller/{ => little-endian}/test_cmp.dat |   Bin
 .../{ => little-endian}/test_opaque_1_bin.dat      |   Bin
 .../{ => little-endian}/test_scalars_1.dat         |   Bin
 .../{ => little-endian}/test_scalars_1_bin.dat     |   Bin
 .../{ => little-endian}/test_scalars_2.dat         |   Bin
 .../{ => little-endian}/test_scalars_2_bin.dat     |   Bin
 .../{ => little-endian}/test_scalars_3_bin.dat     |   Bin
 .../{ => little-endian}/test_vector_1_bin.dat      |   Bin
 .../{ => little-endian}/test_vector_2_bin.dat      |   Bin
 .../TestD4Sequence_one_clause.txt                  |     1 +
 unit-tests/D4-type-testsuite/TestD4Sequence_s.txt  |     1 +
 .../TestD4Sequence_two_clause.txt                  |     1 +
 unit-tests/D4EnumTest.cc                           |    10 +-
 unit-tests/D4FilterClauseTest.cc                   |   599 +
 unit-tests/D4MarshallerTest.cc                     |    10 +-
 unit-tests/D4SequenceTest.cc                       |   246 +
 unit-tests/D4UnMarshallerTest.cc                   |    77 +-
 unit-tests/DODSFilterTest.cc                       |   345 +
 unit-tests/HTTPCacheTest.cc                        |   100 +-
 unit-tests/Keywords2Test.cc                        |   217 +
 unit-tests/Makefile.am                             |    17 +-
 unit-tests/Makefile.in                             |  2409 --
 unit-tests/ResponseBuilderTest.cc                  |   435 +
 unit-tests/ResponseCacheTest.cc                    |   367 +
 unit-tests/ThreadTest.cc                           |   115 +
 unit-tests/ais_testsuite/123.das                   |     5 +
 unit-tests/ais_testsuite/ais_database.xml.in       |    42 +
 unit-tests/ais_testsuite/ais_error_1.xml           |     6 +
 unit-tests/ais_testsuite/ais_error_2.xml           |    10 +
 unit-tests/ais_testsuite/ais_error_3.xml           |    10 +
 unit-tests/ais_testsuite/ais_error_4.xml           |    10 +
 unit-tests/ais_testsuite/ais_error_5.xml           |    10 +
 unit-tests/ais_testsuite/ais_error_6.xml           |    10 +
 unit-tests/ais_testsuite/bears_1.nc.das            |     5 +
 unit-tests/ais_testsuite/coads.das                 |     5 +
 unit-tests/ais_testsuite/fnoc1.nc.das              |     8 +
 unit-tests/ais_testsuite/fnoc2_replace.das         |    24 +
 unit-tests/ais_testsuite/fnoc3_fallback.das        |    14 +
 unit-tests/ais_testsuite/starts_with_number.das    |     9 +
 unit-tests/cache-testsuite/Makefile.in             |   922 -
 .../cache-testsuite/singleton_cache_init/.index    |     0
 .../cache-testsuite/valgrind_suppressions.txt      |    12 +
 .../chunked-io/test_big_binary_file.bin.chunked    |   Bin 464044 -> 0 bytes
 .../chunked-io/test_big_binary_file.bin.plain      |   Bin 406032 -> 0 bytes
 .../chunked-io/test_big_binary_file_2.bin.chunked  |   Bin 62 -> 0 bytes
 .../chunked-io/test_big_binary_file_2.bin.plain    |   Bin 24 -> 0 bytes
 .../chunked-io/test_small_text_file.txt.chunked    |   Bin 29 -> 0 bytes
 .../chunked-io/test_small_text_file.txt.plain      |     1 -
 unit-tests/chunked-io/test_text_file.txt.chunked   |   Bin 12913 -> 0 bytes
 unit-tests/dds-testsuite/config/unix.exp           |    55 -
 unit-tests/dds-testsuite/dds-test.0/test.1.exp     |    51 -
 unit-tests/dds-testsuite/dds-test.0/test.10.exp    |   113 -
 unit-tests/dds-testsuite/dds-test.0/test.11.exp    |    74 -
 unit-tests/dds-testsuite/dds-test.0/test.12.exp    |    53 -
 unit-tests/dds-testsuite/dds-test.0/test.13.exp    |    66 -
 unit-tests/dds-testsuite/dds-test.0/test.14.exp    |    48 -
 unit-tests/dds-testsuite/dds-test.0/test.15.exp    |    54 -
 unit-tests/dds-testsuite/dds-test.0/test.16.exp    |    55 -
 unit-tests/dds-testsuite/dds-test.0/test.17.exp    |    68 -
 unit-tests/dds-testsuite/dds-test.0/test.18.exp    |    46 -
 unit-tests/dds-testsuite/dds-test.0/test.19.exp    |    54 -
 unit-tests/dds-testsuite/dds-test.0/test.2.exp     |    50 -
 unit-tests/dds-testsuite/dds-test.0/test.20.exp    |    50 -
 unit-tests/dds-testsuite/dds-test.0/test.3.exp     |    50 -
 unit-tests/dds-testsuite/dds-test.0/test.4.exp     |    58 -
 unit-tests/dds-testsuite/dds-test.0/test.6.exp     |    58 -
 unit-tests/dds-testsuite/dds-test.0/test.7.exp     |    65 -
 unit-tests/dds-testsuite/dds-test.0/test.8.exp     |    69 -
 unit-tests/dds-testsuite/dds-test.0/test.9.exp     |    80 -
 unit-tests/dds-testsuite/sequence.1.dds            |     6 +
 unit-tests/dds-testsuite/test.1.attr.dmr           |     2 +-
 unit-tests/fdiostream.txt                          |     1 +
 unit-tests/fdiostreamTest.cc                       |   344 +
 unit-tests/generalUtilTest.cc                      |     2 +-
 unit-tests/osx_10.9_leaks.txt                      |   131 +
 unit-tests/test_config.h                           |     7 -
 util.cc                                            |    11 +-
 win32/gl/Makefile.am                               |   417 +
 win32/gl/alloca.c                                  |   489 +
 win32/gl/alloca.h                                  |    54 +
 win32/gl/config.charset                            |   639 +
 win32/gl/configmake.h                              |    24 +
 win32/gl/gettext.h                                 |   270 +
 win32/gl/localcharset.c                            |   471 +
 win32/gl/localcharset.h                            |    41 +
 win32/gl/malloc.c                                  |    57 +
 win32/gl/mbchar.c                                  |    37 +
 win32/gl/mbchar.h                                  |   419 +
 win32/gl/mbuiter.h                                 |   192 +
 win32/gl/memchr.c                                  |   198 +
 win32/gl/ref-add.sin                               |    30 +
 win32/gl/ref-del.sin                               |    25 +
 win32/gl/regcomp.c                                 |  2181 ++
 win32/gl/regex.c                                   |    71 +
 win32/gl/regex.h                                   |   675 +
 win32/gl/regex_internal.c                          |  1741 ++
 win32/gl/regex_internal.h                          |   857 +
 win32/gl/regexec.c                                 |  2101 ++
 win32/gl/stdbool.h                                 |   120 +
 win32/gl/stdint.h                                  |   799 +
 win32/gl/strcase.h                                 |    46 +
 win32/gl/strcasecmp.c                              |   100 +
 win32/gl/strncasecmp.c                             |    63 +
 win32/gl/strnlen1.c                                |    38 +
 win32/gl/strnlen1.h                                |    39 +
 xdr-datatypes.h                                    |    31 -
 710 files changed, 34476 insertions(+), 126785 deletions(-)

diff --git a/AISConnect.cc b/AISConnect.cc
new file mode 100644
index 0000000..7dd5b06
--- /dev/null
+++ b/AISConnect.cc
@@ -0,0 +1,87 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include "AISConnect.h"
+
+namespace libdap {
+
+/** Build an AISConnect. This calls Connect's constructor with \c name and
+    accepts its default values for the other parameters. The AIS database to
+    use is read from the configuration file <code>~/.dodsrc</code>.
+
+    @param name Create a virtual, AIS-enhanced, connection for this OPeNDAP
+    data source.
+    @exception AISDatabaseReadFailed Thrown if the AIS database listed in the
+    <code>~/.dodsrc</code> file could not be opened. */
+AISConnect::AISConnect(const string &name) throw(AISDatabaseReadFailed)
+        : Connect(name), d_ais_merge(0)
+{
+    const string &ais_db = RCReader::instance()->get_ais_database();
+    if (ais_db != "")
+        d_ais_merge = new AISMerge(ais_db);
+}
+
+/** Build an AISConnect. This calls Connect's constructor with \c name and
+    accepts its default values for the other parameters. The AIS is
+    initialized to use the database named by \c ais.
+
+    @param name Create a virtual, AIS-enhanced, connection for this OPeNDAP
+    data source.
+    @param ais Read the AIS information from this XML file.
+    @exception AISDatabaseReadFailed Thrown if the AIS database listed in the
+    <code>~/.dodsrc</code> file could not be opened. */
+AISConnect::AISConnect(const string &name, const string &ais)
+throw(AISDatabaseReadFailed)
+        : Connect(name), d_ais_merge(0)
+{
+    d_ais_merge = new AISMerge(ais);
+}
+
+/** Destroy an AISConnect. */
+AISConnect::~AISConnect()
+{
+    delete d_ais_merge; d_ais_merge = 0;
+}
+
+/** Request an AIS-enhanced DAS object. Read the DAS object for this virtual
+    connection's data source. Then check the AIS database and merge in any
+    ancillary resources listed for it.
+
+    @param das Deposit information to this object.
+    @exception Error Thrown if the DAS request fails due to user error.
+    @exception InternalErr Thrown if either the DAS request or the AIS merge
+    request fails. */
+void
+AISConnect::request_das(DAS &das)
+{
+    Connect::request_das(das);
+
+    if (d_ais_merge)
+        d_ais_merge->merge(URL(false), das); // URL(false) --> URL w/o CE
+}
+
+} // namespace libdap
diff --git a/XMLWriter.h b/AISConnect.h
similarity index 54%
copy from XMLWriter.h
copy to AISConnect.h
index 4c80cca..8e842b3 100644
--- a/XMLWriter.h
+++ b/AISConnect.h
@@ -1,8 +1,10 @@
 
+// -*- mode: c++; c-basic-offset:4 -*-
+
 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
 // Access Protocol.
 
-// Copyright (c) 2010 OPeNDAP, Inc.
+// Copyright (c) 2003 OPeNDAP, Inc.
 // Author: James Gallagher <jgallagher at opendap.org>
 //
 // This library is free software; you can redistribute it and/or
@@ -20,44 +22,50 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 //
 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
-/*
- * XMLWriter.h
- *
- *  Created on: Jul 28, 2010
- *      Author: jimg
- */
 
-#ifndef XMLWRITER_H_
-#define XMLWRITER_H_
+#ifndef ais_connect_h
+#define ais_connect_h
 
-#include <libxml/encoding.h>
-#include <libxml/xmlwriter.h>
+#ifndef _connect_h
+#include "Connect.h"
+#endif
 
-#include <string>
+#ifndef ais_merge_h
+#include "AISMerge.h"
+#endif
 
-namespace libdap {
+#ifndef ais_exceptions_h
+#include "AISExceptions.h"
+#endif
 
-class XMLWriter {
-private:
-    // Various xml writer stuff
-    xmlTextWriterPtr d_writer;
-    xmlBufferPtr d_doc_buf;
-    bool d_started;
-    bool d_ended;
+namespace libdap
+{
 
-    std::string d_doc;
+/** Provide seamless client-side AIS services. */
+class AISConnect: public Connect
+{
+private:
+    AISMerge *d_ais_merge;
 
-    void m_cleanup() ;
+protected:
+    /** @name Suppress the C++ defaults for these. */
+    //@{
+    AISConnect(): d_ais_merge(0)
+    {}
+    AISConnect(const AISConnect &ac) :Connect(ac),  d_ais_merge(0)
+    {}
+    //@}
 
 public:
-    XMLWriter(const std::string &pad = "    ");
-    virtual ~XMLWriter();
+    AISConnect(const string &name) throw(AISDatabaseReadFailed);
+    AISConnect(const string &name, const string &ais_db)
+    throw(AISDatabaseReadFailed);
+
+    virtual ~AISConnect();
 
-    xmlTextWriterPtr get_writer() { return d_writer; }
-    const char *get_doc();
-    unsigned int get_doc_size();
+    virtual void request_das(DAS &das);
 };
 
 } // namespace libdap
 
-#endif /* XMLWRITER_H_ */
+#endif // ais_connect_h
diff --git a/AISDatabaseParser.cc b/AISDatabaseParser.cc
new file mode 100644
index 0000000..1a5b8d7
--- /dev/null
+++ b/AISDatabaseParser.cc
@@ -0,0 +1,436 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <cstring>
+#include <stdarg.h>
+
+#if 0
+// Removed for VC 2008 compatibility. jhrg 4/23/08
+#ifdef WIN32
+#define vsnprintf _vsnprintf
+#endif
+#endif
+
+#include "AISDatabaseParser.h"
+#include "util.h"
+#include "debug.h"
+
+using namespace std;
+
+namespace libdap {
+
+static const not_used char *states[] =
+    {
+        "START",
+        "FINISH",
+        "AIS",
+        "ENTRY",
+        "PRIMARY",
+        "ANCILLARY",
+        "UNKNOWN",
+        "ERROR"
+    };
+
+/** @name SAX Parser Callbacks
+
+    These methods are declared static in the class header. This gives them C
+    linkage which allows them to be used as callbacks by the SAX parser
+    engine. */
+//@{
+
+/** Initialize the SAX parser state object. This object is passed to each
+    callback as a void pointer.
+    @param state The SAX parser state. */
+void
+AISDatabaseParser::aisStartDocument(AISParserState *state)
+{
+    state->state = PARSER_START;
+    state->unknown_depth = 0;
+    state->prev_state = PARSER_UNKNOWN;
+    state->error_msg = "";
+
+    DBG2(cerr << "Parser state: " << states[state->state] << endl);
+}
+
+/** Clean up after finishing a parse.
+    @param state The SAX parser state. */
+void
+AISDatabaseParser::aisEndDocument(AISParserState *state)
+{
+    DBG2(cerr << "Ending state == " << states[state->state] << endl);
+
+    if (state->unknown_depth != 0) {
+        AISDatabaseParser::aisFatalError(state, "The document contained unbalanced tags.");
+
+        DBG(cerr << "unknown_depth != 0 (" << state->unknown_depth << ")"
+            << endl);
+    }
+}
+
+/** Process a start element tag. Because the AIS DTD uses attributes and
+    because libxml2 does not validate those, we do attribute validation here.
+    Values pulled from the attributes are recorded in <code>state</code> for
+    later use in aisEndElement.
+    @param state The SAX parser state.
+    @param name The name of the element.
+    @param attrs The element's attributes; 0, 2, 4, ... are the attribute
+    names, 1, 3, 5, ... are the values. */
+void
+AISDatabaseParser::aisStartElement(AISParserState *state, const char *name,
+                                   const char **attrs)
+{
+    switch (state->state) {
+    case PARSER_START:
+        if (strcmp(name, "ais") != 0) {
+            DBG(cerr << "Expecting ais.  Got " << name << endl);
+        }
+        state->state = AIS;
+        break;
+
+    case PARSER_FINISH:
+        break;
+
+    case AIS:
+        if (strcmp(name, "entry") == 0) {
+            state->prev_state = state->state;
+            state->state = ENTRY;
+        }
+        else {
+            state->prev_state = state->state;
+            state->state = PARSER_UNKNOWN;
+            state->unknown_depth++;
+        }
+        break;
+
+    case ENTRY:
+        if (strcmp(name, "primary") == 0) {
+            state->prev_state = state->state;
+            state->state = PRIMARY;
+
+            if (attrs) {
+                if (strcmp(attrs[0], "url") == 0) {
+                    state->regexp = false;
+                    state->primary = attrs[1];
+                }
+                else if (strcmp(attrs[0], "regexp") == 0) {
+                    state->regexp = true;
+                    state->primary = attrs[1];
+                }
+            }
+            else {
+                AISDatabaseParser::aisFatalError(state, "Required attribute 'url' or 'regexp' missing from element 'primary'.");
+                break;
+            }
+        }
+        else if (strcmp(name, "ancillary") == 0) {
+            state->prev_state = state->state;
+            state->state = ANCILLARY;
+
+            string url = ""; // set defaults, MUST have url
+            string rule = "overwrite";
+            for (int i = 0; attrs && attrs[i] != 0; i = i + 2) {
+                if (strcmp(attrs[i], "url") == 0)
+                    url = attrs[i+1];
+                else if (strcmp(attrs[i], "rule") == 0)
+                    rule = attrs[i+1];
+            }
+
+            // If this parser validated the XML, these tests would be
+            // unnecessary.
+            if (url == "") {
+                AISDatabaseParser::aisFatalError(state, "Required attribute 'url' missing from element 'ancillary'.");
+                break;
+            }
+
+            if (rule != "overwrite" && rule != "replace" && rule != "fallback") {
+                string msg = string("Optional attribute 'rule' in element 'ancillary' has a bad value: ") + rule + "\nIt should be one of 'overwrite', 'replace' or 'fallback'.";
+                AISDatabaseParser::aisFatalError(state, msg.c_str());
+                break;
+            }
+
+            Resource r(url, rule);
+            state->rv.push_back(r);
+        }
+        else {
+            state->prev_state = state->state;
+            state->state = PARSER_UNKNOWN;
+            state->unknown_depth++;
+        }
+        break;
+
+    case PRIMARY:
+        break;
+
+    case ANCILLARY:
+        break;
+
+    case PARSER_UNKNOWN:
+        state->unknown_depth++;
+        break;
+
+    case PARSER_ERROR:
+        break;
+    }
+
+    DBG2(cerr << "Start element " << name << " (state "
+         << states[state->state] << ")" << endl);
+}
+
+/** Process an end element tag. This is where values are added to the
+    AISResources object that's held by \c state.
+    @param state The SAX parser state.
+    @param name The name of the element; used only for code instrumentation.
+ */
+// Although not used in the method itself, name is used in the DBG2
+// statement, so we need the parameter name. - pcw 07/08/08
+void
+AISDatabaseParser::aisEndElement(AISParserState *state, const char */*name*/)
+{
+    DBG2(cerr << "End element: state " << states[state->state] << endl);
+
+    switch (state->state) {
+    case AIS:
+        state->prev_state = state->state;
+        state->state = PARSER_FINISH;
+        break;
+
+    case ENTRY:
+        state->prev_state = state->state;
+        state->state = AIS;
+
+        // record 'primary' and 'rv'
+        if (state->regexp)
+            state->ais->add_regexp_resource(state->primary, state->rv);
+        else
+            state->ais->add_url_resource(state->primary, state->rv);
+
+        // empty rv for the next set of ancillary resources.
+        state->rv.erase(state->rv.begin(), state->rv.end());
+        break;
+
+    case PRIMARY:
+        state->prev_state = state->state;
+        state->state = ENTRY;
+        break;
+
+    case ANCILLARY:
+        state->prev_state = state->state;
+        state->state = ENTRY;
+        break;
+
+    case PARSER_UNKNOWN:
+        // Leave the state and prev_state alone.
+        state->unknown_depth--;
+        break;
+
+    case PARSER_ERROR:
+        break;
+
+    default:
+        break;
+    }
+}
+
+/** Handle the standard XML entities.
+    @param state The SAX parser state.
+    @param name The XML entity. */
+xmlEntityPtr
+AISDatabaseParser::aisGetEntity(AISParserState *, const xmlChar *name)
+{
+    return xmlGetPredefinedEntity(name);
+}
+
+/** Process an XML warning. This is treated as a fatal error since there's no
+    easy way for libdap++ to signal a warning to users.
+    @param state The SAX parser state.
+    @param msg A printf-style format string. */
+void
+AISDatabaseParser::aisWarning(AISParserState *state, const char *msg, ...)
+{
+    va_list args;
+
+    state->state = PARSER_ERROR;
+
+    va_start(args, msg);
+    char str[1024];
+    vsnprintf(str, 1024, msg, args);
+    va_end(args);
+
+#ifdef LIBXML2_6_16
+    // Defined if libxml2 >= 2.6.16
+    int line = xmlSAX2GetLineNumber(state->ctxt);
+#else
+    int line = getLineNumber(state->ctxt);
+#endif
+    state->error_msg += "At line: " + long_to_string(line) + ": ";
+    state->error_msg += string(str) + string("\n");
+}
+
+/** Process an XML error. This is treated as a fatal error since there's no
+    easy way for libdap++ to signal a warning to users.
+    @param state The SAX parser state.
+    @param msg A printf-style format string. */
+void
+AISDatabaseParser::aisError(AISParserState *state, const char *msg, ...)
+{
+    va_list args;
+
+    state->state = PARSER_ERROR;
+
+    va_start(args, msg);
+    char str[1024];
+    vsnprintf(str, 1024, msg, args);
+    va_end(args);
+
+#ifdef LIBXML2_6_16
+    // Defined if libxml2 >= 2.6.16
+    int line = xmlSAX2GetLineNumber(state->ctxt);
+#else
+    int line = getLineNumber(state->ctxt);
+#endif
+    state->error_msg += "At line: " + long_to_string(line) + ": ";
+    state->error_msg += string(str) + string("\n");
+}
+
+/** Process an XML fatal error.
+    @param state The SAX parser state.
+    @param msg A printf-style format string. */
+void
+AISDatabaseParser::aisFatalError(AISParserState *state, const char *msg, ...)
+{
+    va_list args;
+
+    state->state = PARSER_ERROR;
+
+    va_start(args, msg);
+    char str[1024];
+    vsnprintf(str, 1024, msg, args);
+    va_end(args);
+
+#ifdef LIBXML2_6_16
+    // Defined if libxml2 >= 2.6.16
+    int line = xmlSAX2GetLineNumber(state->ctxt);
+#else
+    int line = getLineNumber(state->ctxt);
+#endif
+    state->error_msg += "At line: " + long_to_string(line) + ": ";
+    state->error_msg += string(str) + string("\n");
+}
+
+//@}
+
+/** This local variable holds pointers to the callback <i>functions</i> which
+    make up the SAX parser. */
+static xmlSAXHandler aisSAXParser =
+    {
+        0, // internalSubset
+        0, // isStandalone
+        0, // hasInternalSubset
+        0, // hasExternalSubset
+        0, // resolveEntity
+        (getEntitySAXFunc)AISDatabaseParser::aisGetEntity, // getEntity
+        0, // entityDecl
+        0, // notationDecl
+        0, // attributeDecl
+        0, // elementDecl
+        0, // unparsedEntityDecl
+        0, // setDocumentLocator
+        (startDocumentSAXFunc)AISDatabaseParser::aisStartDocument, // startDocument
+        (endDocumentSAXFunc)AISDatabaseParser::aisEndDocument,  // endDocument
+        (startElementSAXFunc)AISDatabaseParser::aisStartElement,  // startElement
+        (endElementSAXFunc)AISDatabaseParser::aisEndElement,  // endElement
+        0, // reference
+        0, // (charactersSAXFunc)gladeCharacters,  characters
+        0, // ignorableWhitespace
+        0, // processingInstruction
+        0, // (commentSAXFunc)gladeComment,  comment
+        (warningSAXFunc)AISDatabaseParser::aisWarning, // warning
+        (errorSAXFunc)AISDatabaseParser::aisError, // error
+        (fatalErrorSAXFunc)AISDatabaseParser::aisFatalError, // fatalError
+#ifdef LIBXML2_5_10
+        0, // getParameterEntity
+        0, // cdataBlock
+        0, // externalSubset
+        0, // initialized
+#endif
+#ifdef LIBXML2_6_16
+        0, // _private
+        0, // endElementNs
+        0, // serror
+        0 // startElementNs
+#endif
+    };
+
+/** Parse an AIS database encoded in XML. The information in the XML document
+    is loaded into an instance of AISResources.
+    @param database Read from this XML file.
+    @param ais Load information into this instance of AISResources.
+    @exception AISDatabaseReadFailed Thrown if the XML document could not be
+    read or parsed. */
+void
+AISDatabaseParser::intern(const string &database, AISResources *ais)
+{
+    xmlParserCtxtPtr ctxt;
+    AISParserState state;
+
+    ctxt = xmlCreateFileParserCtxt(database.c_str());
+    if (!ctxt)
+        return;
+
+    state.ais = ais;  // dump values here
+    state.ctxt = ctxt;  // need ctxt for error messages
+
+    ctxt->sax = &aisSAXParser;
+    ctxt->userData = &state;
+    ctxt->validate = true;
+
+    xmlParseDocument(ctxt);
+
+    // use getLineNumber and getColumnNumber to make the error messages better.
+    if (!ctxt->wellFormed) {
+        ctxt->sax = NULL;
+        xmlFreeParserCtxt(ctxt);
+        throw AISDatabaseReadFailed(string("\nThe database is not a well formed XML document.\n") + state.error_msg);
+    }
+
+    if (!ctxt->valid) {
+        ctxt->sax = NULL;
+        xmlFreeParserCtxt(ctxt);
+        throw AISDatabaseReadFailed(string("\nThe database is not a valid document.\n") + state.error_msg);
+    }
+
+    if (state.state == PARSER_ERROR) {
+        ctxt->sax = NULL;
+        xmlFreeParserCtxt(ctxt);
+        throw AISDatabaseReadFailed(string("\nError parsing AIS resources.\n") + state.error_msg);
+    }
+
+    ctxt->sax = NULL;
+    xmlFreeParserCtxt(ctxt);
+}
+
+} // namespace libdap
diff --git a/AISDatabaseParser.h b/AISDatabaseParser.h
new file mode 100644
index 0000000..376a46c
--- /dev/null
+++ b/AISDatabaseParser.h
@@ -0,0 +1,133 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#ifndef ais_database_parser_h
+#define ais_database_parser_h
+
+#include <string>
+
+#include <libxml/parserInternals.h>
+
+#ifndef _internal_err_h
+#include "InternalErr.h"
+#endif
+
+#ifndef ais_exceptions_h
+#include "AISExceptions.h"
+#endif
+
+#ifndef ais_resources_h
+#include "AISResources.h"
+#endif
+
+namespace libdap
+{
+
+/** Parse the XML database/configuration file which lists a collection of AIS
+    resources.
+
+    Static methods are used as callbacks for the SAX parser. They do
+    not throw exceptions because exceptions from within callbacks are
+    not reliable or portable. To signal errors, the methods record
+    information in the AISParserState object. Once any of the error
+    handlers (aisWarning, aisError or aisFatalError) is called,
+    construction of an AISResources object ends even though the SAX
+    parser still calls the various callback functions. The parse
+    method throws an AISDatabaseReadFailed exception if an error was
+    found.
+
+    Note that this class uses the C++-supplied default definitions for the
+    default and copy constructors as well as the destructor and assignment
+    operator.
+
+    This class should be extended so that the line number is added to error
+    messages.
+
+    @see AISResource */
+class AISDatabaseParser
+{
+private:
+    /** States used by AISParserState. These are the states of the SAX parser
+	state-machine. */
+    enum ParseState {
+        PARSER_START,
+        PARSER_FINISH,
+        AIS,
+        ENTRY,
+        PRIMARY,
+        ANCILLARY,
+        PARSER_UNKNOWN,
+        PARSER_ERROR
+    };
+
+    /** This holds the state information for the SAX parser that is
+	used to intern the XML AIS database. The parser is designed to
+	ignore unknown tags and attributes, so long as the input is
+	well-formed. Note that a pointer to an AISResources object is
+	part of the SAX parser state. As the XML input document is
+	parsed, information is added to that object. Also note that an
+	AISParserState object holds a pointer to the xmlParserCtxt
+	which, in turn, holds a pointer to AISParserState (via its \c
+	userData field). This circular referencing is done because
+	libxml2's SAX parser invokes the callbacks using just the
+	AISParserState instance but we need the whole xmlParserCtxt
+	for some of the callbacks.
+
+	@see aisWarning. */
+    struct AISParserState
+    {
+        ParseState state; // current state
+        ParseState prev_state; // previous state
+        int unknown_depth; // handle recursive unknown tags
+
+        string error_msg; // Error message(s), if any.
+
+        xmlParserCtxtPtr ctxt; // used for error msg line numbers
+        AISResources *ais;  // dump info here
+
+        string primary;  // current entry's primary URL/Regexp
+        bool regexp;  // True if primary is a regexp
+
+        ResourceVector rv; // add ancillary entries to rv
+    };
+
+public:
+    void intern(const string &database, AISResources *ais);
+
+    static void aisStartDocument(AISParserState *state);
+    static void aisEndDocument(AISParserState *state);
+    static void aisStartElement(AISParserState *state, const char *name,
+                                const char **attrs);
+    static void aisEndElement(AISParserState *state, const char *name);
+    static xmlEntityPtr aisGetEntity(AISParserState *state,
+                                     const xmlChar *name);
+    static void aisWarning(AISParserState *state, const char *msg, ...);
+    static void aisError(AISParserState *state, const char *msg, ...);
+    static void aisFatalError(AISParserState *state, const char *msg, ...);
+};
+
+} // namespace libdap
+
+#endif // ais_database_parser_h
diff --git a/GNU/GNURegex.h b/AISExceptions.h
similarity index 50%
copy from GNU/GNURegex.h
copy to AISExceptions.h
index cd6beaf..46d21a2 100644
--- a/GNU/GNURegex.h
+++ b/AISExceptions.h
@@ -4,57 +4,66 @@
 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
 // Access Protocol.
 
-// Copyright (c) 2005 OPeNDAP, Inc.
+// Copyright (c) 2003 OPeNDAP, Inc.
 // Author: James Gallagher <jgallagher at opendap.org>
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-// 
+//
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 // Lesser General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 //
 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
 
-#ifndef _Regex_h
-#define _Regex_h 1
+#ifndef ais_exceptions_h
+#define ais_exceptions_h
+
+#ifndef _error_h
+#include "Error.h"
+#endif
 
 namespace libdap
 {
 
-/** a C++ interface to POSIX regular expression functions.
+/** Thrown when a client asks for the AIS resources for an unknown primary
+    resource. */
+class NoSuchPrimaryResource : public Error
+{
+public:
+    NoSuchPrimaryResource(): Error("The primary resource given has no matching entry in the AIS database.")
+    {}
+};
+
+/** Thrown when the AIS database/document cannot be read. */
+class AISDatabaseReadFailed : public Error
+{
+public:
+    AISDatabaseReadFailed() : Error("The AIS database read failed.")
+    {}
+    AISDatabaseReadFailed(const string &msg) :
+            Error(string("The AIS database read failed: ") + msg)
+    {}
+};
 
-    @author James Gallagher <jgallagher at opendap.org> */
-class Regex
+/** Thrown when the AIS database/document cannot be written. */
+class AISDatabaseWriteFailed : public Error
 {
-private:
-    // d_preg was a regex_t* but I needed to include both regex.h and config.h
-    // to make the gnulib code work. Because this header is installed (and is
-    // used by other libraries) it cannot include config.h, so I moved the 
-    // regex.h and config.h (among other) includes to the implementation. It
-    // would be cleaner to use a special class, but for one field that seems
-    // like overkill.
-    void *d_preg;
-    void init(const char *t);
-    
 public:
-    Regex(const char *t);
-    Regex(const char *t, int dummy);
-    ~Regex();
-
-    /// Does the pattern match.
-    int match(const char* s, int len, int pos = 0);
-    /// How much of the string does the pattern matche.
-    int search(const char* s, int len, int& matchlen, int pos = 0);
+    AISDatabaseWriteFailed() : Error("The AIS database write failed.")
+    {}
+    AISDatabaseWriteFailed(const string &msg) :
+            Error(string("The AIS database write failed: ") + msg)
+    {}
 };
 
 } // namespace libdap
 
-#endif
+#endif // ais_exceptions_h
diff --git a/AISMerge.cc b/AISMerge.cc
new file mode 100644
index 0000000..2996bbc
--- /dev/null
+++ b/AISMerge.cc
@@ -0,0 +1,117 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//         Dan Holloway <dan at hollywood.gso.uri.edu>
+//         Reza Nekovei <reza at intcomm.net>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <cstdio>
+#include <fstream>
+
+#include "AISMerge.h"
+#include "AISExceptions.h"
+#include "Response.h"
+
+namespace libdap {
+
+/** Access an AIS resource. The resource may be a local file or a URL. Assume
+    all resource URIs have no leading spaces. This method is public so that a
+    client of libdap++ can specialize its behavior. This implementation
+    dereferences a URL or opens a file and returns a FILE pointer which can
+    be used to read the contents. In the case of a URL, 'the contents' means
+    the body of the HTTP response. For a file, it means the entire file.
+
+    @param res The AIS resource.
+    @return Either an open FILE * which points to the resource or null if the
+    resource could not be opened. This method does not throw an exception for
+    resources that cannot be opened because that can happen for a number of
+    reasons which are hardly 'exceptional.' */
+Response *AISMerge::get_ais_resource(const string & res)
+{
+    if (res.find("http:") == 0
+        || res.find("file:") == 0 || res.find("https:") == 0) {
+        return d_http.fetch_url(res);
+    }
+    else {
+#if 0
+        ifstream s(res);
+#endif
+        FILE *s = fopen(res.c_str(), "r");
+        if (!s)
+            throw Error("I could not open local AIS resource '"
+                        + res + "'.");
+        return new Response(s, 0);
+    }
+}
+
+/** Access the AIS ancillary resources matched to <code>primary</code> and
+    merge those with the DAS object \e das.
+
+    This method uses AISResources::has_resource(...) to determine if \c primary
+    has an entry in the AIS database. It uses AISResources::get_resource(...)
+    to get a ResourceVector of AIS resources for \c primary. It then uses its
+    own get_ais_resources(...) to access the actual resources via a FILE
+    pointer. Clients may use this information to specialize
+    AISMerge::merge(...).
+
+    @param primary The URL of the primary resource.
+    @param das The target of the merge operation. This must already contain
+    the DAS for \e primary. */
+void AISMerge::merge(const string & primary, DAS & das)
+{
+    if (!d_ais_db.has_resource(primary))
+        return;
+
+    try {
+        ResourceVector rv = d_ais_db.get_resource(primary);
+
+        for (ResourceVectorIter i = rv.begin(); i != rv.end(); ++i) {
+            Response *ais_resource = get_ais_resource(i->get_url());
+            switch (i->get_rule()) {
+            case Resource::overwrite:
+                das.parse(ais_resource->get_stream());
+                break;
+            case Resource::replace:
+                das.erase();
+                das.parse(ais_resource->get_stream());
+                break;
+            case Resource::fallback:
+                if (das.get_size() == 0)
+                    das.parse(ais_resource->get_stream());
+                break;
+            }
+            delete ais_resource;
+            ais_resource = 0;
+        }
+    }
+    catch (NoSuchPrimaryResource & e) {
+        throw
+        InternalErr(string
+                    ("I caught a 'NoSuchPrimaryResource' exception, it said:\n")
+                    + e.get_error_message() + string("\n"));
+    }
+}
+
+} // namespace libdap
diff --git a/AISMerge.h b/AISMerge.h
new file mode 100644
index 0000000..bb66b33
--- /dev/null
+++ b/AISMerge.h
@@ -0,0 +1,93 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//         Dan Holloway <dan at hollywood.gso.uri.edu>
+//         Reza Nekovei <reza at intcomm.net>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#ifndef ais_merge_h
+#define ais_merge_h
+
+#include <string>
+
+#ifndef _das_h
+#include "DAS.h"
+#endif
+
+#ifndef _httpconnect_h
+#include "HTTPConnect.h"
+#endif
+
+#ifndef ais_resources_h
+#include "AISResources.h"
+#endif
+
+#ifndef ais_exceptions_h
+#include "AISExceptions.h"
+#endif
+
+#ifndef response_h
+#include "Response.h"
+#endif
+
+namespace libdap
+{
+
+/** Manage a single AIS database. Open an AIS database and handle merging DAP
+    objects with the ancillary resources it references. This class uses
+    AISResources to actually open the AIS database and locate AIS resources
+    for a particular primary data source. This class  dereferences AIS
+    resources returned by AISResources and merges that with an existing DAP
+    object (currently only the DAS object is supported. 02/25/03 jhrg).
+
+    @brief Merge AIS resources. */
+class AISMerge
+{
+private:
+    AISResources d_ais_db;
+    HTTPConnect d_http;  // used to access remote resources
+
+    friend class AISMergeTest;
+public:
+    /** Initialize an instance so that it reads from \c database.
+    @param database Name of a database of AIS resources.
+    @exception AISDatabaseReadFailed Thrown if the named database cannot
+    be opened. */
+    AISMerge(const string &database) throw(AISDatabaseReadFailed) :
+            d_ais_db(database), d_http(RCReader::instance())
+    { }
+
+    /** Destroy an instance. This is explicitly declared virtual to support
+    subclassing. */
+    virtual ~AISMerge()
+    {}
+
+    // Change this when HTTPConnect/HTTPCache are changed.
+    virtual Response *get_ais_resource(const string &res);
+
+    virtual void merge(const string &primary, DAS &das);
+};
+
+} // namespace libdap
+
+#endif // ais_merge_h
diff --git a/AISResources.cc b/AISResources.cc
new file mode 100644
index 0000000..764e935
--- /dev/null
+++ b/AISResources.cc
@@ -0,0 +1,272 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <iostream>
+#include <fstream>
+#include <algorithm>
+#include <functional>
+
+#include "AISResources.h"
+#include "AISDatabaseParser.h"
+
+using namespace std;
+
+namespace libdap {
+
+/** Output the XML fragment for a Resource. This function is a friend of the
+    Resource class.
+    @param os output stream
+    @param r Resource to write out.
+    @see Resource. */
+ostream &
+operator<<(ostream &os, const Resource &r)
+{
+    os << "<ancillary";
+    if (r.d_rule != Resource::overwrite) {
+        os << " rule=\"";
+        (r.d_rule == Resource::fallback) ? os << "fallback\"" : os << "replace\"";
+    }
+    os << " url=\"" << r.d_url << "\"/>";
+
+    return os;
+}
+
+/** Output the XML for a collection of AIS resources. This function is a
+    friend of the AISResource class.
+    @see AISResources */
+ostream &
+operator<<(ostream &os, const AISResources &ais_res)
+{
+    os << "<?xml version=\"1.0\" encoding=\"US-ASCII\" standalone=\"yes\"?>"
+    << endl;
+    os << "<!DOCTYPE ais SYSTEM \"http://xml.opendap.org/ais/ais_database.dtd\">" << endl;
+    os << "<ais xmlns=\"http://xml.opendap.org/ais\">" << endl;
+
+    for (AISResources::ResourceRegexpsCIter pos = ais_res.d_re.begin();
+         pos != ais_res.d_re.end(); ++pos) {
+        os << "<entry>" << endl;
+        // write primary
+        os << "<primary regexp=\"" << pos->first << "\"/>" << endl;
+        // write the vector of Resource objects
+        for (ResourceVectorCIter i = pos->second.begin();
+             i != pos->second.end(); ++i) {
+            os << *i << endl;
+        }
+        os << "</entry>" << endl;
+    }
+
+    //  Under VC++ 6.x, 'pos' is twice tagged as twice in the
+    //  same scope (this method - not just within for blocks), so
+    //  I gave it another name.  ROM - 6/14/03
+    for (AISResources::ResourceMapCIter pos2 = ais_res.d_db.begin();
+         pos2 != ais_res.d_db.end(); ++pos2) {
+        os << "<entry>" << endl;
+        // write primary
+        os << "<primary url=\"" << pos2->first << "\"/>" << endl;
+        // write the vector of Resource objects
+        for (ResourceVectorCIter i = pos2->second.begin();
+             i != pos2->second.end(); ++i) {
+            os << *i << endl;
+        }
+        os << "</entry>" << endl;
+    }
+
+    os << "</ais>" << endl;
+
+    return os;
+}
+
+/** Use an existing AIS database to build an instance.
+    @param database Pathname of the database/document. */
+AISResources::AISResources(const string &database) throw(AISDatabaseReadFailed)
+{
+    read_database(database);
+}
+
+/** @name Methods used by the AISDatabaseParser class */
+/*@{*/
+/** Add the given ancillary resource to the in-memory collection of
+    mappings between primary and ancillary data sources.
+    @param url The target of the new mapping.
+    @param ancillary Match this ancillary resource to the target (primary). */
+void
+AISResources::add_url_resource(const string &url, const Resource &ancillary)
+{
+    add_url_resource(url, ResourceVector(1, ancillary));
+}
+
+/** Add a vector of AIS resources for the given primary data source URL. If
+    there is already an entry for the primary, append the new ancillary
+    resources to those.
+    @param url The target of the new mapping.
+    @param rv Ancillary resources matched to this primary resource. */
+void
+AISResources::add_url_resource(const string &url, const ResourceVector &rv)
+{
+    ResourceMapIter pos = d_db.find(url);
+    if (pos == d_db.end()) {
+        d_db.insert(std::make_pair(url, rv));
+    }
+    else {
+        // There's already a ResourceVector, append to it.
+        for (ResourceVectorCIter i = rv.begin(); i != rv.end(); ++i)
+            pos->second.push_back(*i);
+    }
+}
+
+/** Add the given ancillary resource to the in-memory collection of
+    mappings between regular expressions and ancillary data sources.
+    @param re The target of the new mapping. This is a regular expression.
+    @param ancillary  Match this ancillary resource to the target (primary). */
+void
+AISResources::add_regexp_resource(const string &re, const Resource &ancillary)
+{
+    add_regexp_resource(re, ResourceVector(1, ancillary));
+}
+
+/** Add a vector of AIS resources for the given primary data source regular
+    expression. If there is already an entry for the primary, append the new
+    ancillary resources to those.
+
+    @param re The target of the new mapping.
+    @param rv Ancillary resources matched to this primary resource. */
+void
+AISResources::add_regexp_resource(const string &re, const ResourceVector &rv)
+{
+    ResourceRegexpsIter pos = find_if(d_re.begin(), d_re.end(),
+                                      FindRegexp(re));
+    if (pos == d_re.end()) {
+        d_re.push_back(std::make_pair(re, rv));
+    }
+    else {
+        // There's already a ResourceVector, append to it.
+        for (ResourceVectorCIter i = rv.begin(); i != rv.end(); ++i)
+            pos->second.push_back(*i);
+    }
+}
+
+/*@}*/
+
+/** Return True if the given primary resource is listed in the current
+    set of AIS resource mappings. That is, return true if there are some
+    AIS resources registered for the given primary resource.
+    @param primary The URL of the primary resource. That is, a Data Source
+    URL.
+    @return True if there are AIS resources for <code>primary</code>. */
+bool
+AISResources::has_resource(const string &primary) const
+{
+    // This code looks for the 'primary' in the AIS database (which is a STL
+    // map<> of strings and AIS stuff. As an optimization, it first uses the
+    // map<> class' find() method to see if the 'primary' is in there as a
+    // literal. If not, then it tries to match each regular expression in the
+    // database.
+    return ((d_db.find(primary) != d_db.end())
+            || (find_if(d_re.begin(), d_re.end(), MatchRegexp(primary))
+                != d_re.end()));
+
+}
+
+/** Return a vector of AIS Resource objects which are bound to the given
+    primary resource. If a given \c primary resource has both an explicit
+    entry for itself \e and matches a regular expression, the AIS resources
+    for both will be combined in one ResourceVector and returned.
+
+    Aside from reading the database, this is the main workhorse for this class.
+    Once a database has been read, a client uses has_resource() to see if a
+    Data URL has anything in the database and then calls this method to get a
+    vector of those things.
+
+    @todo Make this return an empty ResourceVector is no matching resources
+    are found. Clients would not need to call has_resource() which would save
+    some time.
+
+    @param primary The URL of the primary resource
+    @return a vector of Resource objects.
+    @exception NoSuchPrimaryResource thrown if <code>primary</code> is
+    not present in the current mapping. */
+ResourceVector
+AISResources::get_resource(const string &primary)
+{
+    ResourceVector rv;
+    const ResourceMapIter &i = d_db.find(primary);
+
+    if (i != d_db.end())
+        rv = i->second;
+
+    // Finds the first matching regular expression and returns a vector of
+    // AIS resources.
+    const ResourceRegexpsIter &j = find_if(d_re.begin(), d_re.end(),
+                                           MatchRegexp(primary));
+    if (j != d_re.end())
+        copy(j->second.begin(), j->second.end(), inserter(rv, rv.begin()));
+
+    if (rv.size() == 0)
+        throw NoSuchPrimaryResource();
+
+    return rv;
+}
+
+/** Read the AIS database (an XML file) and internalize it. This method is
+    almost always used to build an in-memory database that has_resource() and
+    get_resource() use.
+
+    @param database A file/pathname to the AIS database.
+    @exception AISDatabaseReadFailed thrown if the database could not be
+    read. */
+void
+AISResources::read_database(const string &database)
+{
+    AISDatabaseParser parser;
+
+    parser.intern(database, this);
+}
+
+/** Write the current in-memory mapping of primary and ancillary
+    resources to the named file so that the read_database() method can
+    read them and recreate the in-memory mapping.
+
+    @param filename A local file; write the database to this file. Create
+    if necessary.
+    @exception AISDatabaseWriteFailed thrown if the database could not be
+    written. */
+void
+AISResources::write_database(const string &filename)
+{
+    ofstream fos;
+    fos.open(filename.c_str());
+
+    if (!fos)
+        throw AISDatabaseWriteFailed("Could not open file :" + filename);
+
+    fos << *this << endl;
+
+    if (!fos)
+        throw AISDatabaseWriteFailed();
+}
+
+} // namespace libdap
diff --git a/AISResources.h b/AISResources.h
new file mode 100644
index 0000000..26a0a9a
--- /dev/null
+++ b/AISResources.h
@@ -0,0 +1,148 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#ifndef ais_resources_h
+#define ais_resources_h
+
+#include <string>
+#include <iostream>
+#include <vector>
+#include <map>
+
+#include "GNURegex.h"
+
+#ifndef resource_h
+#include "Resource.h"
+#endif
+
+#ifndef ais_exceptions_h
+#include "AISExceptions.h"
+#endif
+
+using namespace std;
+
+namespace libdap
+{
+
+typedef vector<Resource> ResourceVector;
+typedef ResourceVector::iterator ResourceVectorIter;
+typedef ResourceVector::const_iterator ResourceVectorCIter;
+
+/** Maintain a database of AIS resources. Groups of AIS resources are
+    accessed using a primary resource. The AISResources object is the in-memory
+    database of mappings between 'primary' and 'ancillary' resources.
+
+    Note that read_database() takes filenames because the underlying XML
+    parser library uses filenames. The write_database() method takes a
+    filename to be symmetrical.
+
+    @note The word 'primary,' as in 'primary resource,' means a Data Source URL.
+    This is a URL to a DAP-compliant server that will return DAS, DDS, et c.,
+    responses using the DAP. The word 'Ancillary' or 'AIS,' as in 'Ancillary/AIS
+    Resources,' means DAS, DDS, or Data information in a file that the software
+    can access. In practice, these might come from servers, too, but the terms
+    are used to try to keep things sane. A 'primary resource' is the data set
+    and the 'ancillary resource' is the stuff you're trying to jam into it.
+
+    @brief Manage AIS resources. */
+class AISResources
+{
+private:
+    // The AIS database is broken into two parts. The entries where the primary
+    // resource is a URL are stored in a map<> while the primaries that are
+    // regular expressions are stored in a vector of pairs. The latter is
+    // searched using the MatchRegexp struct.
+    typedef map<string, ResourceVector> ResourceMap;
+    typedef ResourceMap::iterator ResourceMapIter;
+    typedef ResourceMap::const_iterator ResourceMapCIter;
+
+    typedef pair<string, ResourceVector> RVPair;
+    typedef vector<RVPair> ResourceRegexps;
+    typedef ResourceRegexps::iterator ResourceRegexpsIter;
+    typedef ResourceRegexps::const_iterator ResourceRegexpsCIter;
+
+    ResourceMap d_db;  // This holds the URL resources
+    ResourceRegexps d_re; // This holds the regular expression res.
+
+    // Scan RegExps looking for a particular regular expression.
+struct FindRegexp : public binary_function<RVPair, string, bool>
+    {
+        string local_re;
+        FindRegexp(const string &re) : local_re(re)
+        {}
+        bool operator()(const RVPair &p)
+        {
+            return p.first == local_re;
+        }
+    };
+
+    // Scan RegExps looking for one that matches a URL.
+    // *** Make this more efficient by storing the Regex objects in the
+    // vector. 03/11/03 jhrg
+struct MatchRegexp : public binary_function<RVPair, string, bool>
+    {
+        string candidate;
+        MatchRegexp(const string &url) : candidate(url)
+        {}
+        bool operator()(const RVPair &p)
+        {
+            Regex r(p.first.c_str());
+            return r.match(candidate.c_str(), candidate.length()) != -1;
+        }
+    };
+
+    friend class AISResourcesTest; // unit tests access to private stuff
+    friend ostream &operator<<(ostream &os, const AISResources &ais_res);
+
+public:
+    /** Build an empty instance. */
+    AISResources()
+    {}
+    AISResources(const string &database) throw(AISDatabaseReadFailed);
+
+    virtual ~AISResources()
+    {}
+
+    virtual void add_url_resource(const string &url,
+                                  const Resource &ancillary);
+    virtual void add_url_resource(const string &url, const ResourceVector &rv);
+
+    virtual void add_regexp_resource(const string &regexp,
+                                     const Resource &ancillary);
+    virtual void add_regexp_resource(const string &regexp,
+                                     const ResourceVector &rv);
+
+    virtual bool has_resource(const string &primary) const;
+
+    virtual ResourceVector get_resource(const string &primary);
+
+    virtual void read_database(const string &database);
+
+    virtual void write_database(const string &filename);
+};
+
+} // namespace libdap
+
+#endif // ais_resources_h
diff --git a/AlarmHandler.h b/AlarmHandler.h
index f59459c..370c40a 100644
--- a/AlarmHandler.h
+++ b/AlarmHandler.h
@@ -46,19 +46,19 @@ class AlarmHandler : public EventHandler
 {
 private:
     FILE *d_file;  // Sink for the Error object.
-    // TODO Remove: not used. jhrg 10/17/13 ostream &d_stream;
     string d_version;
 
+public:
     // Ensure that d_stream gets initialized...
     AlarmHandler() : d_file( 0 )// , d_stream( cout )
     {}
 
-public:
     AlarmHandler(FILE *s) : d_file(s)//, d_stream( cout )
     {}
 
     /** Store information to be used by the handler.
-    @param out Write to this stream. */
+        @param out Write to this stream.
+        @deprecated The stream param is ignored. Use the default constructor instead. */
     AlarmHandler(ostream &) : d_file(0)//, d_stream( out )
     {}
 
diff --git a/Array.cc b/Array.cc
index e7b8101..36ca16b 100644
--- a/Array.cc
+++ b/Array.cc
@@ -104,7 +104,12 @@ Array::update_length(int)
 {
     int length = 1;
     for (Dim_citer i = _shape.begin(); i != _shape.end(); i++) {
+#if 0
+        // If the size of any dimension is zero, then the array is not
+        // capable of storing any values. jhrg 1/28/16
         length *= (*i).c_size > 0 ? (*i).c_size : 1;
+#endif
+        length *= (*i).c_size;
     }
 
     set_length(length);
@@ -854,31 +859,28 @@ Array::print_decl(FILE *out, string space, bool print_semi,
     @param constrained This argument should be TRUE if the Array is
     constrained, and FALSE otherwise.
 */
-void
-Array::print_decl(ostream &out, string space, bool print_semi,
-                  bool constraint_info, bool constrained)
+void Array::print_decl(ostream &out, string space, bool print_semi, bool constraint_info, bool constrained)
 {
-    if (constrained && !send_p())
-        return;
+    if (constrained && !send_p()) return;
 
     // print it, but w/o semicolon
     var()->print_decl(out, space, false, constraint_info, constrained);
 
     for (Dim_citer i = _shape.begin(); i != _shape.end(); i++) {
-	out << "[" ;
+        out << "[";
         if ((*i).name != "") {
-	    out << id2www((*i).name) << " = " ;
+            out << id2www((*i).name) << " = ";
         }
         if (constrained) {
-	    out << (*i).c_size << "]" ;
+            out << (*i).c_size << "]";
         }
         else {
-	    out << (*i).size << "]" ;
+            out << (*i).size << "]";
         }
     }
 
     if (print_semi) {
-	out << ";\n" ;
+        out << ";\n";
     }
 }
 
@@ -1050,11 +1052,16 @@ unsigned int Array::print_array(ostream &out, unsigned int index, unsigned int d
 {
 	if (dims == 1) {
 		out << "{";
-		for (unsigned i = 0; i < shape[0] - 1; ++i) {
-			var(index++)->print_val(out, "", false);
-			out << ", ";
-		}
-		var(index++)->print_val(out, "", false);
+
+		// Added test in case this method is passed an array with no elements. jhrg 1/27/16
+		if (shape[0] >= 1) {
+            for (unsigned i = 0; i < shape[0] - 1; ++i) {
+                var(index++)->print_val(out, "", false);
+                out << ", ";
+            }
+            var(index++)->print_val(out, "", false);
+        }
+
 		out << "}";
 
 		return index;
@@ -1065,13 +1072,22 @@ unsigned int Array::print_array(ostream &out, unsigned int index, unsigned int d
 		// length is shape[dims-1]-1 *and* since we want one less dimension
 		// than that, the correct limit on this loop is shape[dims-2]-1. From
 		// Todd Karakasian.
+		//
 		// The saga continues; the loop test should be `i < shape[0]-1'. jhrg
 		// 9/12/96.
-		for (unsigned i = 0; i < shape[0] - 1; ++i) {
-			index = print_array(out, index, dims - 1, shape + 1);
-			out << ",";
-		}
-		index = print_array(out, index, dims - 1, shape + 1);
+		//
+		// For arrays that hold zero values but have rank > 1, the print out
+		// may look a little odd (e.g., x[4][0] will print as { {}, {}, {}, {} })
+		// but it's not wrong and this is really for debugging mostly. jhrg 1/28/16
+        if (shape[0] > 0) {
+            for (unsigned i = 0; i < shape[0] - 1; ++i) {
+                index = print_array(out, index, dims - 1, shape + 1);
+                out << ",";
+            }
+
+            index = print_array(out, index, dims - 1, shape + 1);
+        }
+
 		out << "}";
 
 		return index;
diff --git a/Array.h b/Array.h
index b48e720..d448ee4 100644
--- a/Array.h
+++ b/Array.h
@@ -166,17 +166,6 @@ public:
         }
 
         dimension(D4Dimension *d);
-#if 0
-        dimension(D4Dimension *d) : dim(d), use_sdim_for_slice(true) {
-        	size = d->size();
-        	name = d->name();
-
-            start = 0;
-            stop = size - 1;
-            stride = 1;
-            c_size = size;
-        }
-#endif
     };
 
     D4Maps *d_maps;
@@ -204,14 +193,15 @@ public:
 
         @see dim_begin()
         @see dim_end() */
-    typedef std::vector<dimension>::const_iterator Dim_citer ;
+    typedef std::vector<dimension>::const_iterator Dim_citer;
+
     /** An iterator used to access the various dimensions of an
         Array. Most of the methods that access various properties of a
         dimension use an instance of Dim_iter.
 
         @see dim_begin()
         @see dim_end() */
-    typedef std::vector<dimension>::iterator Dim_iter ;
+    typedef std::vector<dimension>::iterator Dim_iter;
 
     Array(const string &n, BaseType *v, bool is_dap4 = false);
     Array(const string &n, const string &d, BaseType *v, bool is_dap4 = false);
diff --git a/BaseType.cc b/BaseType.cc
index 37feb2d..f6425ad 100644
--- a/BaseType.cc
+++ b/BaseType.cc
@@ -125,7 +125,7 @@ BaseType::m_duplicate(const BaseType &bt)
 BaseType::BaseType(const string &n, const Type &t, bool is_dap4)
         : d_name(n), d_type(t), d_dataset(""), d_is_read(false), d_is_send(false),
         d_parent(0), d_attributes(0), d_is_dap4(is_dap4),
-		d_in_selection(false), d_is_synthesized(false)
+        d_in_selection(false), d_is_synthesized(false)
 {}
 
 /** The BaseType constructor needs a name, a dataset, and a type.
@@ -143,7 +143,7 @@ BaseType::BaseType(const string &n, const Type &t, bool is_dap4)
 BaseType::BaseType(const string &n, const string &d, const Type &t, bool is_dap4)
         : d_name(n), d_type(t), d_dataset(d), d_is_read(false), d_is_send(false),
         d_parent(0), d_attributes(0), d_is_dap4(is_dap4),
-		d_in_selection(false), d_is_synthesized(false)
+        d_in_selection(false), d_is_synthesized(false)
 {}
 
 /** @brief The BaseType copy constructor. */
@@ -248,7 +248,12 @@ BaseType::dump(ostream &strm) const
     strm << DapIndent::LMarg << "parent: " << (void *)d_parent << endl ;
     strm << DapIndent::LMarg << "attributes: " << endl ;
     DapIndent::Indent() ;
-    d_attr.dump(strm) ;
+
+    if (d_attributes)
+        d_attributes->dump(strm);
+    else
+        d_attr.dump(strm) ;
+
     DapIndent::UnIndent() ;
 
     DapIndent::UnIndent() ;
@@ -821,14 +826,17 @@ BaseType::read()
 }
 
 void
-BaseType::intern_data(ConstraintEvaluator &, DDS &dds)
+BaseType::intern_data(ConstraintEvaluator &, DDS &/*dds*/)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
+#endif
     DBG2(cerr << "BaseType::intern_data: " << name() << endl);
     if (!read_p())
         read();          // read() throws Error and InternalErr
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
+#endif
 }
 
 /**
@@ -837,12 +845,13 @@ BaseType::intern_data(ConstraintEvaluator &, DDS &dds)
  * @param dmr DMR for the whole dataset
  */
 void
-BaseType::intern_data(Crc32 &checksum/*, DMR &, ConstraintEvaluator &*/)
+BaseType::intern_data(/*Crc32 &checksum, DMR &, ConstraintEvaluator &*/)
 {
     if (!read_p())
         read();          // read() throws Error and InternalErr
-
+#if 0
     compute_checksum(checksum);
+#endif
 }
 
 bool
@@ -1161,7 +1170,9 @@ BaseType::check_semantics(string &msg, bool)
     is implied. Choose one from the following: <tt>EQUAL</tt>,
     <tt>NOT_EQUAL</tt>, <tt>GREATER</tt>, <tt>GREATER_EQL</tt>,
     <tt>LESS</tt>, <tt>LESS_EQL</tt>, and <tt>REGEXP</tt>.
-    @return The boolean value of the comparison. */
+    @return The boolean value of the comparison.
+    @see BaseType::d4_ops(BaseType *, int)
+*/
 bool
 BaseType::ops(BaseType *, int)
 {
@@ -1173,6 +1184,28 @@ BaseType::ops(BaseType *, int)
 }
 
 /**
+ * @brief Evaluator a relop for DAP4
+ *
+ * This method is used by the filter expression evaluation code in DAP4.
+ * Each of the 'data type' classes that support relops must overload this
+ * method. In an expression of the form arg1 op arg2, this object is arg1,
+ * the parameter 'b' is arg2 and op is the relational operator.
+ *
+ * @note I used the same relop codes for DAP4 as in the DAP2 parser/scanner
+ * which makes for some coupling between them, but cuts way down on the
+ * duplication of the evaluator logic, which is somewhat involved.
+ *
+ * @param b The second argument in the relational expression
+ * @param op The infix relational operator
+ * @return True if the expression is true, False otherwise.
+ */
+bool
+BaseType::d4_ops(BaseType *, int)
+{
+    throw InternalErr(__FILE__, __LINE__, "Unimplemented operator.");
+}
+
+/**
  * @brief How many bytes does this use
  * Return the number of bytes of storage this variable uses. For scalar types,
  * this is pretty simple (an int32 uses 4 bytes, etc.). For arrays and Constructors,
diff --git a/BaseType.h b/BaseType.h
index 0d105f8..f83f443 100644
--- a/BaseType.h
+++ b/BaseType.h
@@ -288,6 +288,7 @@ public:
     virtual bool check_semantics(string &msg, bool all = false);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual unsigned int width(bool constrained = false) const;
 
@@ -475,7 +476,7 @@ public:
      */
     virtual void compute_checksum(Crc32 &checksum) = 0;
 
-    virtual void intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/);
+    virtual void intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval*/);
 
     /**
      * @brief The DAP4 serialization method.
diff --git a/Byte.cc b/Byte.cc
index 2222fc2..acbe05b 100644
--- a/Byte.cc
+++ b/Byte.cc
@@ -134,16 +134,17 @@ unsigned int Byte::width(bool) const
 */
 bool Byte::serialize(ConstraintEvaluator & eval, DDS & dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();          // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_byte( d_buf ) ;
 
     return true;
@@ -280,6 +281,16 @@ bool Byte::ops(BaseType * b, int op)
         throw InternalErr("This value not read!");
     }
 
+    // By using the same operator code numbers for both the DAP2 and DAP4
+    // parser/evaluator we can use the same evaluation code.
+    return d4_ops(b, op);
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Byte::d4_ops(BaseType *b, int op)
+{
     switch (b->type()) {
         case dods_int8_c:
             return USCmp<dods_byte, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
@@ -301,8 +312,11 @@ bool Byte::ops(BaseType * b, int op)
             return USCmp<dods_byte, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
         case dods_float64_c:
             return USCmp<dods_byte, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        case dods_str_c:
+        case dods_url_c:
+            throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
         default:
-            return false;
+            throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
 }
 
diff --git a/Byte.h b/Byte.h
index f0a0d0f..c916c49 100644
--- a/Byte.h
+++ b/Byte.h
@@ -96,6 +96,7 @@ public:
     virtual void print_val(ostream &out, string space = "", bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/ChangeLog b/ChangeLog
index 4faf8ea..7ced5fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,617 @@
+2016-05-25  James Gallagher  <jgallagher at opendap.org>
+
+	Fixed ugly DBG2() macro calls
+
+2016-05-18  James Gallagher  <jgallagher at opendap.org>
+
+	Merge remote-tracking branch 'origin/Hyrax-98'
+	Conflicts:
+		D4Connect.cc
+		d4_ce/D4ConstraintEvaluator.cc
+		d4_ce/d4_ce_parser.yy
+
+2016-05-17  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #19 from OPENDAP/response_cache
+	Response cache
+
+2016-05-16  James Gallagher  <jgallagher at opendap.org>
+
+	Added recursive Sequence::reset_row_number() and comments
+
+2016-05-15  James Gallagher  <jgallagher at opendap.org>
+
+	Minor edits after testing specializing read_row() for the ResponseCache
+	See bes/dap CachedSequence and CacheTypeFactory for more info.
+
+2016-05-13  James Gallagher  <jgallagher at opendap.org>
+
+	Checkpoint - Nathan's hack for Sequence plus debugging
+
+	Added comments for the hacked set_send_p() and set_read_p() methods
+
+2016-05-12  James Gallagher  <jgallagher at opendap.org>
+
+	Added a (potential) fix for Vector::set_send_p()
+
+	Hacks for the bes branch 'response_cache'
+
+2016-05-10  James Gallagher  <jgallagher at opendap.org>
+
+	Changes for Coverity
+	[ci skip]
+
+	Comments
+
+2016-05-09  James Gallagher  <jgallagher at opendap.org>
+
+	Coverity edits - both minor
+	[ci skip]
+
+	Removed extraneous include
+
+2016-05-06  James Gallagher  <jgallagher at opendap.org>
+
+	Added parser-util.cc back in after deleting it by mistake.
+
+2016-05-05  James Gallagher  <jgallagher at opendap.org>
+
+	Minor patches for issues found by Coverity Changes to be
+	committed: modified: Connect.cc deleted: parser-util.cc
+
+	Improved error checking for the DDX parser.
+	When text is feed into the parser and its not valid xml, the parser
+	was just ignoring that. No more...
+
+	Arrg. baselines were not in the last commit...
+
+	Moved the newest tests' baselines to the 'universal' directory
+	It's time to switch the new DMR tests to ones that don't have to
+	have a separate set of baselines for bin- and little-endian
+	machines. It takes too long to build up the big-endian test
+	baselines (get a b-e VM, etc.) and we have a good set of baselines
+	for each arch so if issues pop up on one or the otehr arch,
+	it should be easy to catch them.
+
+	Merge pull request #18 from OPENDAP/jg_filters
+	Jg filters
+
+	Merge branch 'master' into jg_filters
+	Conflicts: D4Sequence.h
+
+	Added 'universal' tests for DMRTest
+	The DMR includes a checksum when it's built from received data and
+	that checksum is a function of word order of the sender. This made
+	building baselines for the DMR tests a pain. We've built a number of
+	tests for both big- and little-endian machines - from now on new
+	tests should use 'universal' baselines (built by removing the checksum
+	using sed).
+
+2016-05-03  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #17 from OPENDAP/D4Sequence_value_ref
+	Added a new method to D4Sequence
+
+	Cosmetic editing
+
+	Optimized the read_sequence_values() code.
+	Child sequences do not have copies of the filter clauses. These are not
+	needed by them since they have already been filtered.
+
+	Added tests for complex CEs involving nested seqeunces
+
+	Inner sequence filter issue resolved
+	The code still needs tests and there is a potential optimization and
+	the syntax needs to be documented because the way fields in a
+	sequence can be referenced is less general than other places in the CE.
+
+	Fixed the issue with child sequences in DAP4
+
+2016-05-02  James Gallagher  <jgallagher at opendap.org>
+
+	Partial fix for Hyrax-182
+	https://opendap.atlassian.net/browse/HYRAX-182
+
+2016-04-29  James Gallagher  <jgallagher at opendap.org>
+
+	More test baselines
+
+	Scanner fix
+
+	Fixed the numeric constant error with the filter code
+	Numeric constants were showing up as the value '1.' The checking_*()
+	functions were the culprit. In the process I added missing methods in
+	the FilterClause code and debugging in a number of places.
+
+	Added tests for the new filter code. Not all of the tests pass...
+	There is some work to be done with parsing the != and ~= operators
+	and also mixing int and float arguments. There may be issues with
+	filed references as well, but we'll have to check the spec for that.
+
+2016-04-25  James Gallagher  <jgallagher at opendap.org>
+
+	Fixed the issue with <constant> <op> <var> not working.
+
+2016-04-24  James Gallagher  <jgallagher at opendap.org>
+
+	Fixed three operand filter clauses in the CE evaluator, but...
+	they still don't work correctly. There seems to be a problem with the
+	parsing of constants.
+
+	Removed debugging statements; Using the 'ND' operator is an error.
+
+	The parser now builds filter clauses and binds them to a D4Sequence.
+	Some by-hand tests show not everything works, but mostly it's a problem
+	with relops and String variables or constants.
+
+2016-04-23  James Gallagher  <jgallagher at opendap.org>
+
+	Parser tweaks - relops now are returned as strings
+
+	Fixed a problem with the TestByte, ..., classes when used for 'series values'
+	Some of the classes had the odd behavior that the series of values
+	was per-process and not per object instance. So, TestStr's value
+	would not repeat until a new process was started, it instead kept
+	increasing "... 1", "... 2", etc., across different instances of
+	the class. Fixing this made it easy to fix the TestD4Sequence code.
+
+2016-04-22  James Gallagher  <jgallagher at opendap.org>
+
+	Added tests for D4Sequences, including filter clause evaluation
+
+	Added D4SequenceTest
+
+	D4Sequence now supports evaluating a FilterClauseList.
+	Added tests too. I have only tested D4Sequence::intern_data(),
+	not serialize().
+
+	D4FilterClauseList now used by D4Sequence::serialize()
+
+	Eh, I rewrote the relops operator code.
+	It now uses the same approach that I used for DAP2 - a method
+	for each type (Byte, ...).
+
+	Added D4FilterClauseTest
+
+2016-04-21  James Gallagher  <jgallagher at opendap.org>
+
+	Fixed a bug in the was D4Function was used
+	In the ServerFunctionList and d4_function_parser.yy, I should
+	have been using a poiter to D4Function and not the object itself.
+	Now the DMRTests for functions pass
+
+	Hacks to the D4FilterClause code
+	This also includes fixes to D4RValue and tests for the filter clause
+	code. Two minor changes to the parsers.
+
+2016-04-20  James Gallagher  <jgallagher at opendap.org>
+
+	Merge branch 'master' into jg_filters
+
+	Added a new method to D4Sequence
+	D4SeqValues &D4Sequence::value_ref(): Returns a reference to the
+	internal data held by a D4Sequence instance.
+
+2016-04-20  Nathan Potter  <ndp at opendap.org>
+
+	Updated doxygen version number
+
+	Merge branch 'master' of https://github.com/opendap/libdap4
+
+	Added debugging statements to various Sequence items.
+
+2016-04-18  James Gallagher  <jgallagher at opendap.org>
+
+	Merge branch 'master' of https://github.com/opendap/libdap4
+
+	Version 3.17.3
+
+	Version 3.17.2; Fixed a soname error
+	Adding a const constructor seems to have *removed* the old constructor
+	as far as some code is concerned (it's still there, but with a
+	different mangled name).
+2016-04-15  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #15 from sharkcz/cppunit
+	fallback to pkg-config if cppunit-config is not available
+
+	Fixed an error in the script related to Coverity support
+	The env var COVERITY_SCAN_BRANCH should have been quoted.
+
+	Merge pull request #13 from sharkcz/dmr-bigendian
+	add missing big endian baselines
+
+2016-04-15  Dan Horák  <dan at danny.cz>
+
+	fallback to pkg-config if cppunit-config is not available
+	Recent version of cppunit packages do not distribute the cppunit-config script
+	and expect the usage of pkgconfig file.
+
+2016-04-14  Dan Horák  <dan at danny.cz>
+
+	remove the condition because we added the missing baselines
+
+	add big endian baseline files for new tests
+
+2016-04-08  James Gallagher  <jgallagher at opendap.org>
+
+	Added comments to D4 parser code.
+
+2016-04-06  James Gallagher  <jgallagher at opendap.org>
+
+	Added dump() methods for D4Attribute and D4Attributes.
+	
+2016-04-01  James Gallagher  <jgallagher at opendap.org>
+
+	Added #include <string> to D4RValue.h to fix an issue over in the BES
+
+2016-03-22  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #11 from OPENDAP/d4-threads
+	D4StreamMarshaller now uses the double buffering code for transmission
+
+2016-03-18  James Gallagher  <jgallagher at opendap.org>
+
+	Added #include <cstring> for linux
+
+	D4StreamMarshaller now uses the double buffering code for
+	transmission of vector and opaque data.
+
+	Merge branch 'master' of https://github.com/opendap/libdap4
+
+	Possible fix for the memory issue in Hyrax-152.
+	Push this to github and test on linux.
+
+2016-03-01  Nathan Potter  <ndp at opendap.org>
+
+	Updated getdap4 usage statement to better reflect the new behavior of the application.
+
+2016-02-29  Nathan Potter  <ndp at opendap.org>
+
+	Fixed BES-102 in which getdap4 was bumbling the DAP4 CE.
+
+2016-02-26  Nathan Potter  <ndp at opendap.org>
+
+	Merge branch 'master' of https://github.com/opendap/libdap4
+
+	Removed timing code fro MarshllerThread using our friend #if 0
+
+2016-02-24  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #9 from sharkcz/endian
+	fix big endian detection
+
+2016-02-22  James Gallagher  <jgallagher at opendap.org>
+
+	Edit Int8::print_val() so that Int8 values always print as numbers.
+
+2016-02-20  Dan Horák  <dan at danny.cz>
+
+	fix big endian detection
+	Currently there is a endian detection during configure, but the code relies
+	on non-portable __BIG_ENDIAN__ define. The default actions in AC_C_BIGENDIAN
+	break setting the correct value for WORD_BIGENDIAN.
+	See also https://bugzilla.redhat.com/show_bug.cgi?id=962091#c48
+
+2016-02-18  James Gallagher  <jgallagher at opendap.org>
+
+	Added long-needed const constructor and operator=()
+	This was done to support some experiments with memory caching,
+	but it's a long-overdue fix in general.
+
+	Zero-length array support: Vector::serialize() traps calls when length() == 0
+	This is part of a series of changes to support netCDF files
+	that use zero-length arrays as arbitrary attribute containers.
+
+	Removed old code that was commented out.
+
+	Replaced fgets() > 0 with fgets() != 0 in the parser's main loop
+	A suggestions from David Binderman.
+
+2016-02-12  James Gallagher  <jgallagher at opendap.org>
+
+	Patch for gcc 6 from Orion Poplawski
+
+2016-02-02  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #8 from OPENDAP/BES-97
+	Bes 97
+
+2016-01-29  James Gallagher  <jgallagher at opendap.org>
+
+	Modified Vector::val2buf() in support of zero-length arrays
+	val2buf() was throwing an InternalErr when called with a null data
+	pointer. I modified it so that if the pointer is null and the length()
+	of the vector/array is zero, it returns zero. The exception is still
+	thrown if the pointer is null and the length() is not zero.
+
+	Removed #define DODS_DEBUG
+
+	Tests for empty DAP2 Structures
+
+	Tests for empty structures added.
+
+2016-01-28  James Gallagher  <jgallagher at opendap.org>
+
+	Zero-length arrays now work with libdap, with caveats
+	I have implemented and tested zero-length arrays of the
+	cardinal types for DAP2 and 4. There's more to be done and
+	no testing outside of libdap has been done.
+
+	Added documentation comments in crc.h
+
+	Spelling fixes in the ChangeLog, ...
+
+2016-01-26  James Gallagher  <jgallagher at opendap.org>
+
+	ChangeLog, et al., updated Version 3.17.0
+	
+2016-01-20  James Gallagher  <jgallagher at opendap.org>
+
+	Removed #if 0 in the D4Function/ConstraintEvaluator::error() methods
+
+2016-01-19  James Gallagher  <jgallagher at opendap.org>
+
+	Found one more place in the DAP4 CE and Function parser where
+	errors did not result in an exception.
+
+2016-01-13  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #6 from OPENDAP/BES-87
+	BES 87
+
+2016-01-12  James Gallagher  <jgallagher at opendap.org>
+
+	Added comments re how the Error object codes map to HTTP codes
+
+	Added mapping between libdap and HTTP codes (suggestions)
+
+	Added a code to Error; made sure Error was used consistently
+	Changes to mesh with those in the OLFS. Error(unknown_error, ...)
+	maps to an HTTP 400, internal_error --> 500, not_implemented -->501,
+	etc.
+
+	DAP2 and 4 scanners now throw Error(malformed_expr, <msg>)
+	They were writing to stderr...
+
+	DAP2 CE parser uses no_such_identifier where apropos
+
+2016-01-11  James Gallagher  <jgallagher at opendap.org>
+
+	Added codes Error response in the DAP2 parser
+
+	There were only a handful since most of the Error throws were well
+	behaved.
+
+	Modified the DAP4 ce and function parsers to include code w/Errors
+	See https://opendap.atlassian.net/browse/BES-87.
+
+2016-01-05  James Gallagher  <jgallagher at opendap.org>
+
+	Merge branch 'master' into bes-40
+
+2016-01-04  James Gallagher  <jgallagher at opendap.org>
+
+	Modified the CRC32 byte-order change so that it's not included by default
+
+	Popped old changes for Connect; fix for Makefile.am; etc.
+
+2015-12-31  James Gallagher  <jgallagher at opendap.org>
+
+	Hacks for doxygen.
+	The Makefile works now (rebuilds doxy.conf when needed) and the docs
+	are better. I stopped including docs for methods w/o doc comments
+	and those are now listed in the doxygen_warnings.txt file.
+	[ci skip]
+
+2015-12-30  James Gallagher  <jgallagher at opendap.org>
+
+	Tried CLion; added CMakeLists.txt to gitignore
+
+	Removed the calls to DDS:timeout_{on,off}
+	This code is no longer used. The timeout feature of the BES is far
+	better.
+
+2015-12-08  James Gallagher  <jgallagher at opendap.org>
+
+	Removed commented-out code
+
+	Merge branch 'master' of https://github.com/opendap/libdap4
+
+	Float32 attributes mis-coded as Byte in the DMR
+
+2015-12-03  Nathan Potter  <ndp at opendap.org>
+
+	Travis install check
+
+	Travis install check
+
+2015-11-30  Patrick West  <pwest at vsto.tw.rpi.edu>
+
+	Missing xml2 libraries in unit-tests build
+	Added $(XML2_LIBS) to the Makefile.am in unit-tests so that tests would
+	build. On Ubuntu 14.04.
+
+2015-11-12  James Gallagher  <jgallagher at opendap.org>
+
+	I removed the deploy lines from the travis.yml file
+	These seem broken - I have to investigate how to handle
+	deployment of RPMs out of travis
+
+2015-10-22  James Gallagher  <jgallagher at opendap.org>
+
+	Fixed error in printing of child groups.
+	The child group values were printed twice.
+
+2015-10-21  James Gallagher  <jgallagher at opendap.org>
+
+	Source release version, ChangeLog, News, ... for 3.16.0
+
+2015-10-19  James Gallagher  <jgallagher at opendap.org>
+
+	Fixes #1
+
+	Added changes to exit when 'report_errors' (-r) is true
+
+	Fix for the missing 'child groups' in getdap4's output
+	And some minor mods to XMLWriter - clean up the includes a bit.
+
+2015-10-15  James Gallagher  <jgallagher at opendap.org>
+
+	Merge pull request #5 from OPENDAP/intern_no_crc32
+	Intern no crc32
+
+	Merge pull request #4 from OPENDAP/endian_fixes
+	Endian fixes
+
+2015-10-14  James Gallagher  <jgallagher at opendap.org>
+
+	Some of the DAP4-only types were not setting is_dap4
+	This caused the DMR output code to throw an error (Unknown Type) in
+	cases where those types were used.
+	See https://opendap.atlassian.net/browse/HR-63
+
+2015-10-13  James Gallagher  <jgallagher at opendap.org>
+
+	fixed a warning in dmr-test - /* in a comment
+
+2015-10-13  jgallagher59701  <jgallagher at opendap.org>
+
+	Added test baselines for intern_data with no checksum
+	I dropped computing the checksum in the intern_data() method,
+	so the baselines for the tests had to be updated.
+
+2015-10-13  James Gallagher  <jgallagher at opendap.org>
+
+	Now the intern_data() method used with DAP4 does not compute the
+	checksum It is only computed by the code that serializes the
+	response - sends it to a remote client. I added baselines
+	specifically for the intern tests on little endian machines. Will
+	add ones for big endian next...
+
+	Merge branch 'intern_no_crc32' of
+	https://github.com/opendap/libdap4.git into intern_no_crc32
+
+2015-10-12  James Gallagher  <jgallagher at opendap.org>
+
+	Removed crc32 generation from intern_data()
+	This seems better - I think computing the CRC code
+	when interning values is not necessary. Those should
+	only be computed when the server is going to send values.
+
+	Completed changes to D4UnMarshallerTest.cc
+	This copy of the tests should work on both little- and big-endian
+	hosts.
+
+	More changes to D4UnMarshallerTest.cc
+
+2015-10-12  jgallagher59701  <jgallagher at opendap.org>
+
+	Partial fix for D4UnMarshallerTest.cc
+
+2015-10-12  James Gallagher  <jgallagher at opendap.org>
+
+	Changed WORDS_BIGENDIAN to __BIG_ENDIAN__
+
+2015-10-07  jgallagher59701  <jgallagher at opendap.org>
+
+	One step closer to the tests working on big endian machines
+	D4MarshallerTest now works
+
+	Update to D4Marshaller/UnMarshaller tests - added baselines for
+	big-endian ...There's still an issue, however.
+
+2015-10-07  James Gallagher  <jgallagher at opendap.org>
+
+	D4UnMarshallerTest also needs two sets of baselines. Added
+	little-endian ones.
+
+	D4MarshallerTest need two sets of baselines...
+	One for big- and one for litte-endian machines. I made the little
+	endian set.
+
+2015-10-07  jgallagher59701  <jgallagher at opendap.org>
+
+	Changed to D4EnumTest to support changes for big-endian machines.
+
+2015-10-07  James Gallagher  <jgallagher at opendap.org>
+
+	The change to D4Enum::compute_checksum() was correct. This fixes
+	the last of the issues with Enum on big-endian machines. The
+	problems we caused by the assumption that 64-, 32-, 16- and 8-bit
+	integers would align on the LSB, which is the case for
+	little-endian machines (but not big...). In several places where
+	reinterpret_cast<>() was used I first assigned the Enum _value_ to
+	a temp variable of the correct size and then passed the address of
+	that to the checksum calculation function. High cost in one sense,
+	but really, scalar Enum variables will be rare and Arrays of Enums
+	are handled differently. I also have dropped the overly-complex
+	design that used a union. It eliminated some casts, but was based
+	on the erroneous assumption regarding alignment.
+
+	Test change in computing checksum for big-endian machines.
+
+	Debugging big-endian issues still..
+
+2015-10-07  James Gallagher  <jimg at idoru.local>
+
+	Merge branch 'endian_fixes' of https://github.com/opendap/libdap4
+	into endian_fixes
+
+	Cleanup of a version of this that should work on big and
+	little-endian machines.
+
+2015-10-06  jgallagher59701  <jgallagher at opendap.org>
+
+	Baselines for Enum tests on big endian machines
+	Now only the tests 54 and 55 fail on the big endian machines...
+
+2015-10-06  James Gallagher  <jimg at idoru.local>
+
+	Removed union in the D4Enum implementation
+	This is an attempt to fix the issues found on big endian machines.
+
+2015-10-01  James Gallagher  <jgallagher at opendap.org>
+
+	The DMR tests now work on little endian machines, mostly
+	There is an issue with D4Enum that causes some tests to fail.
+
+2015-10-01  jgallagher59701  <jgallagher at opendap.org>
+
+	Fixes for function/ce tests modified:   tests/DMRTest.at
+
+2015-09-30  jgallagher59701  <jgallagher at opendap.org>
+
+	Baselines for a big endian machine.
+
+2015-09-30  James Gallagher  <jgallagher at opendap.org>
+
+	Fail: fixed a syntax error that got pushed.
+
+	Added capability to build baselines that's sane
+
+	Continue with fixes for data + ce tests
+
+	DMRTest is dependent on word order - this is a trial fix.
+
+2015-09-29  James Gallagher  <jgallagher at opendap.org>
+
+	Fixed an issue in HTTPCacheTest; version number bump.
+	In HTTPCacheTest, a quirk of RCReader meant that when the tests
+	were run as part of distcheck they would fail if the user has set
+	USE_CACHE to 1 in their ~/.dodsrc. Version numbers bumped to 3.15.1.
+
+2015-09-23  James Gallagher  <jgallagher at opendap.org>
+
+	Merge branch 'master' of https://github.com/opendap/libdap4
+
+	Fixed a syntax error in cgi_util.h
+	... and added commentary to MarshallerThread.cc
+
+2015-09-20  James Gallagher  <jgallagher at opendap.org>
+
+	Version 3.15.1
+
 2015-09-18  James Gallagher  <jgallagher at opendap.org>
 
 	Added empty Coverity model file
@@ -56,7 +670,7 @@
 	pass. Commit 6b005387 introduced a change where set_read_p() no
 	longer tested the state of the is_synthesized property. Before, if
 	the property was set the method would not change the state of
-	is_read. The change made it so the is_read propery was changed
+	is_read. The change made it so the is_read property was changed
 	regardless of the state of is_synthesized. This broke the
 	'projection functions' in the FreeForm handler. I have reverted to
 	the old libdap behavior, and the tests now pass.
@@ -75,7 +689,7 @@
 
 2015-08-28  James Gallagher  <jgallagher at opendap.org>
 
-	Updated the versio number to 3.15
+	Updated the version number to 3.15
 	This because of the parallel IO code and pipelining support.
 
 2015-08-28  James Gallagher  <jgallagher at opendap.org>
@@ -101,7 +715,7 @@
 	We found that we could call clear_local_data() right after variables
 	were serialized and get a much flatter memory profile. However, putting
 	those calls in serialize() changed its behavior. I've moved them to
-	bes/dap/ResponseBuilder - but that is controllable using a comple-time
+	bes/dap/ResponseBuilder - but that is controllable using a compile-time
 	directive. Similarly, the compile-time switch USE_POSIX_THREADS
 	can be used to turn off that feature (#undef). See XDRStreamMarshaller.
 
@@ -110,7 +724,7 @@
 	put_vector() methods of the same/similar names. This cuts down on the
 	naming mess and means that other classes like XDFFileStream don't have
 	to include hacked methods that throw exceptions. This commit also
-	includes changes tha wrap the clear_local_data() calls in #ifdef
+	includes changes that wrap the clear_local_data() calls in #ifdef
 	CLEAR_LOCAL_DATA. Lastly, this refactor will also require a matching
 	edit to ncml_module.
 
@@ -126,22 +740,22 @@
 	Took advantage of the current XDRStreamMarshaller impl that copies
 	data before writing it out. This means our code can delete the original
 	data held by the object right after the thread used to send that data
-	hass been called (actually, it could delete it _before_ starting the
+	has been called (actually, it could delete it _before_ starting the
 	thread, but doing so afterward keeps that feature out of the marshaller
-	class, which may come in handly later on...). Later on we may switch
+	class, which may come in handy later on...). Later on we may switch
 	to reference counted pointers and then this issue will go away.
 
 	Removed call to clear_local_data() in Vector::Serialize()
 	This was colliding with the call to clear_local_data() in the thread
 	when put_vector_thread() was called. This showed up as a 'sometimes'
 	failure of expr test #21. The bug happens only when serializing an
-	array of strucutre that contains arrays.
+	array of structure that contains arrays.
 
 2015-08-22  James Gallagher  <jgallagher at opendap.org>
 
 	Corrected a spelling mistake with 'serialize_no_release'
 
-	I've added synchronization code to the XDRStreamMarshaller dotr
+	I've added synchronization code to the XDRStreamMarshaller dtor
 	This causes the XDRStreamMarshaller dtor to block on the d_out_mutex
 	until the child thread (possibly) writing to the output stream
 	completes.
@@ -176,7 +790,7 @@
 
 2015-08-17  Nathan Potter  <ndp at opendap.org>
 
-	Merged the new (template-less) version of Vector inot master branch
+	Merged the new (template-less) version of Vector into master branch
 
 2015-08-17  James Gallagher  <jgallagher at opendap.org>
 
@@ -192,7 +806,7 @@
 	Must still implement the parts for Arrays of int16, ..., types;
 	only byte arrays work now.
 
-	Checkpoint: Adding methods to allow serailization of Vectors in parts.
+	Checkpoint: Adding methods to allow serialization of Vectors in parts.
 	Missing methods in D4StreamMarshaller, XDRFileMarsahller and parts of
 	methods in XDRStreamMarshaller.
 
@@ -203,7 +817,7 @@
 2015-08-14  Nathan Potter  <ndp at opendap.org>
 
 	Replaced template methods in Vector.cc with more pedantic
-	implmentations. Made the templted methods private and used them in
+	implementations. Made the templed methods private and used them in
 	the implementations of the new pedantic methods.
 
 2015-08-10  James Gallagher  <jgallagher at opendap.org>
@@ -216,7 +830,7 @@
 
 	Added a serialize_no_release() method
 	This rounds out the serialize_n_release branch. The new behavior of
-	freeing the dynamic memory is very desireable, so it's the default,
+	freeing the dynamic memory is very desirable, so it's the default,
 	but if some code wants to serialize, do something else and then delete
 	the storage, the new serialize_no_release provides that option. All
 	of our libdap and bes/module tests pass. This will be merged to the
@@ -246,7 +860,7 @@
 
 	pulled from github and merged conflicts
 
-	Refactored use of the name() method in BaseType so that it is now overrideable
+	Refactored use of the name() method in BaseType so that it is now override-able
 
 2015-08-05  James Gallagher  <jgallagher at opendap.org>
 
@@ -255,7 +869,7 @@
 	BaseType (child of, really) that hold large amounts of data. It applies
 	to only a handful of the variable types (Vector, Sequence, D4Opaque and
 	D4Sequence). It is used to free memory right after data values are
-	sent to the client using serailize(). This means that data are no longer
+	sent to the client using serialize(). This means that data are no longer
 	held by the variable objects once serialize() returns - at least for
 	Array, Sequence, ... Other types like Byte, Int16, ..., will retain
 	their values because those values are not held in dynamically allocated
@@ -268,7 +882,7 @@
 	serialize() has been called. It seems that none of the handlers use
 	this 'feature' and we can change the code so that memory is freed right
 	after the bits are sent fir each variable. This means that only one
-	variabe's data are in memory at any given time.
+	variate's data are in memory at any given time.
 
 2015-08-03  Nathan Potter  <ndp at opendap.org>
 
@@ -276,7 +890,7 @@
 
 2015-07-14  James Gallagher  <jgallagher at opendap.org>
 
-	Removed the bisong version print out
+	Removed the bison version print out
 	...I think this is working fine now
 	[ci skip]
 
@@ -292,7 +906,7 @@
 
 	Removed odd ^S from install_libdap4_source_deps.sh
 
-	More travis hacks - addes sudo: false back in; remove tabs
+	More travis hacks - added sudo: false back in; remove tabs
 
 2015-07-12  James Gallagher  <jgallagher at opendap.org>
 
diff --git a/Connect.cc b/Connect.cc
index 84c726e..e326496 100644
--- a/Connect.cc
+++ b/Connect.cc
@@ -89,6 +89,9 @@ void Connect::process_data(DataDDS &data, Response *rs)
             throw InternalErr(__FILE__, __LINE__,
                     "An error was reported by the remote httpd; this should have been processed by HTTPConnect..");
 
+#if 0
+            // This code triggers a security warning from Coverity; since it is not used,
+            // I have removed it. jhrg 5/5/16
         case dods_data_ddx: {
             // Parse the DDX; throw an exception on error.
             DDXParser ddx_parser(data.get_factory());
@@ -123,6 +126,7 @@ void Connect::process_data(DataDDS &data, Response *rs)
             }
             return;
         }
+#endif
 
         case dods_data:
         default: {
@@ -145,35 +149,33 @@ void Connect::process_data(DataDDS &data, Response *rs)
 
 /** This private method process data from both local and remote sources. It
     exists to eliminate duplication of code. */
-void
-Connect::process_data(DDS &data, Response *rs)
+void Connect::process_data(DDS &data, Response *rs)
 {
     DBG(cerr << "Entering Connect::process_data" << endl);
 
-#if 0
-    data.set_version(rs->get_version());
-    data.set_protocol(rs->get_protocol());
-#endif
-    // TODO is this the correct info?
     data.set_dap_version(rs->get_protocol());
 
     DBG(cerr << "Entering process_data: d_stream = " << rs << endl);
     switch (rs->get_type()) {
     case dods_error: {
-            Error e;
-            if (!e.parse(rs->get_stream()))
-                throw InternalErr(__FILE__, __LINE__,
-                                  "Could not parse the Error object returned by the server!");
-            throw e;
-        }
+        Error e;
+        if (!e.parse(rs->get_stream()))
+            throw InternalErr(__FILE__, __LINE__, "Could not parse the Error object returned by the server!");
+        throw e;
+    }
 
     case web_error:
         // Web errors (those reported in the return document's MIME header)
         // are processed by the WWW library.
-        throw InternalErr(__FILE__, __LINE__, "An error was reported by the remote httpd; this should have been processed by HTTPConnect..");
+        throw InternalErr(__FILE__, __LINE__,
+            "An error was reported by the remote web server; this should have been processed by HTTPConnect.");
 
+#if 0
+        // FIXME: The following case is never used. There is no such response. jhrg 10/20/15
+        // This code triggers a security warning from Coverity; since it is not used,
+        // I have removed it. jhrg 5/5/16
     case dods_data_ddx: {
-            // Parse the DDX; throw an exception on error.
+        // Parse the DDX; throw an exception on error.
         DDXParser ddx_parser(data.get_factory());
 
         // Read the MPM boundary and then read the subsequent headers
@@ -192,58 +194,31 @@ Connect::process_data(DDS &data, Response *rs)
 
         // Read the data part's MPM part headers (boundary was read by
         // DDXParse::intern)
-        read_multipart_headers(rs->get_stream(),
-            "application/octet-stream", dap4_data, data_cid);
+        read_multipart_headers(rs->get_stream(), "application/octet-stream", dap4_data, data_cid);
 
         // Now read the data
-#if FILE_UN_MARSHALLER
-        XDRFileUnMarshaller um( rs->get_stream() ) ;
-#else
-        fpistream in ( rs->get_stream() );
-        XDRStreamUnMarshaller um( in ) ;
-#endif
-#if 0
-        try {
-#endif
-            for (DDS::Vars_iter i = data.var_begin(); i != data.var_end();
-                     i++) {
-                    (*i)->deserialize(um, &data);
-                }
-#if 0
-            }
-            catch (Error &e) {
-                throw ;
-            }
-#endif
-            return;
+        XDRFileUnMarshaller um(rs->get_stream());
+        for (DDS::Vars_iter i = data.var_begin(); i != data.var_end(); i++) {
+            (*i)->deserialize(um, &data);
         }
+        return;
+    }
+#endif
 
     case dods_data:
     default: {
-            // Parse the DDS; throw an exception on error.
-            data.parse(rs->get_stream());
-#if FILE_UN_MARSHALLER
-            XDRFileUnMarshaller um( rs->get_stream() ) ;
-#else
-           fpistream in ( rs->get_stream() );
-        XDRStreamUnMarshaller um( in ) ;
-#endif
-            // Load the DDS with data.
-#if 0
-            try {
-#endif
-                for (DDS::Vars_iter i = data.var_begin(); i != data.var_end();
-                     i++) {
-                    (*i)->deserialize(um, &data);
-                }
-#if 0
-            }
-            catch (Error &e) {
-                throw ;
-            }
-#endif
-            return;
+        // Parse the DDS; throw an exception on error.
+        data.parse(rs->get_stream());
+
+        XDRFileUnMarshaller um(rs->get_stream());
+
+        // Load the DDS with data.
+        for (DDS::Vars_iter i = data.var_begin(); i != data.var_end(); i++) {
+            (*i)->deserialize(um, &data);
         }
+
+        return;
+    }
     }
 }
 
@@ -937,6 +912,7 @@ void Connect::request_data_url(DataDDS &data)
     }
 }
 
+// FIXME Unused?
 void Connect::request_data_ddx(DataDDS &data, string expr)
 {
     string proj, sel;
@@ -971,6 +947,7 @@ void Connect::request_data_ddx(DataDDS &data, string expr)
     }
 }
 
+// FIXME Unused?
 void Connect::request_data_ddx_url(DataDDS &data)
 {
     string use_url = _URL + "?" + _proj + _sel;
@@ -1041,6 +1018,7 @@ static void divine_type_information(Response *rs)
         c = getc(rs->get_stream());
     }
 
+
     if (ferror(rs->get_stream()))
         throw Error("Error reading response type information: " + string(strerror(errno)));
     if (feof(rs->get_stream()))
diff --git a/ConstraintEvaluator.cc b/ConstraintEvaluator.cc
index 1332803..2d460a6 100644
--- a/ConstraintEvaluator.cc
+++ b/ConstraintEvaluator.cc
@@ -271,7 +271,7 @@ ConstraintEvaluator::eval_function_clauses(DDS &dds)
         }
         else {
             delete fdds;
-            throw Error("A function was called but failed to return a value.");
+            throw Error(internal_error, "A function was called but failed to return a value.");
         }
     }
 
@@ -300,7 +300,7 @@ ConstraintEvaluator::eval_function_clauses(DataDDS &dds)
         }
         else {
             delete fdds;
-            throw Error("A function was called but failed to return a value.");
+            throw Error(internal_error, "A function was called but failed to return a value.");
         }
     }
 
@@ -322,7 +322,7 @@ bool ConstraintEvaluator::boolean_expression()
 }
 
 /** @brief Evaluate a boolean-valued constraint expression.
- This is main method for the evaluator ans is called by the
+ This is main method for the evaluator and is called by the
  BaseType::serialize() methods.
 
  @param dds Use these variables when evaluating the expressions.
diff --git a/Constructor.cc b/Constructor.cc
index 8a1fdec..ff8e44a 100644
--- a/Constructor.cc
+++ b/Constructor.cc
@@ -32,6 +32,8 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG
+
 #include <string>
 #include <sstream>
 #include <algorithm>
@@ -39,8 +41,6 @@
 
 #include <stdint.h>
 
-//#define DODS_DEBUG
-
 #include "crc.h"
 
 #include "Constructor.h"
@@ -132,7 +132,7 @@ Constructor::operator=(const Constructor &rhs)
     return *this;
 }
 
-// A public method, but just barely..
+// A public method, but just barely...
 BaseType *
 Constructor::transform_to_dap4(D4Group *root, Constructor *dest)
 {
@@ -478,16 +478,17 @@ Constructor::intern_data(ConstraintEvaluator & eval, DDS & dds)
 bool
 Constructor::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     for (Vars_iter i = d_vars.begin(); i != d_vars.end(); i++) {
         if ((*i)->send_p()) {
 #ifdef CHECKSUMS
@@ -527,11 +528,11 @@ Constructor::compute_checksum(Crc32 &)
 }
 
 void
-Constructor::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator & eval*/)
+Constructor::intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator & eval*/)
 {
     for (Vars_iter i = d_vars.begin(); i != d_vars.end(); i++) {
         if ((*i)->send_p()) {
-            (*i)->intern_data(checksum/*, dmr, eval*/);
+            (*i)->intern_data(/*checksum, dmr, eval*/);
         }
     }
 }
@@ -637,8 +638,11 @@ Constructor::print_val(ostream &out, string space, bool print_decl_p)
     }
 
     out << "{ " ;
-    for (Vars_citer i = d_vars.begin(); i != d_vars.end();
-         i++, (void)(i != d_vars.end() && out << ", ")) {
+    for (Vars_citer i = d_vars.begin(), e = d_vars.end(); i != e;
+         i++, (void)(i != e && out << ", ")) {
+
+        DBG(cerr << (*i)->name() << " isa " << (*i)->type_name() << endl);
+
         (*i)->print_val(out, "", false);
     }
 
diff --git a/Constructor.h b/Constructor.h
index 995cca1..961c831 100644
--- a/Constructor.h
+++ b/Constructor.h
@@ -107,7 +107,7 @@ public:
 
     // DAP4
     virtual void compute_checksum(Crc32 &checksum);
-    virtual void intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/);
+    virtual void intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval*/);
     virtual void serialize(D4StreamMarshaller &m, DMR &dmr, /*ConstraintEvaluator &eval,*/ bool filter = false);
     virtual void deserialize(D4StreamUnMarshaller &um, DMR &dmr);
 
diff --git a/D4Attributes.cc b/D4Attributes.cc
index 4aee9d8..6ea2629 100644
--- a/D4Attributes.cc
+++ b/D4Attributes.cc
@@ -237,13 +237,13 @@ D4Attributes::transform_to_dap4(AttrTable &at)
 			break;
 		}
 		case Attr_float32: {
-			D4Attribute *a = new D4Attribute(name, attr_byte_c);
+			D4Attribute *a = new D4Attribute(name, attr_float32_c);
 			a->add_value_vector(*at.get_attr_vector(i));
 			add_attribute_nocopy(a);
 			break;
 		}
 		case Attr_float64: {
-			D4Attribute *a = new D4Attribute(name, attr_float32_c);
+			D4Attribute *a = new D4Attribute(name, attr_float64_c);
 			a->add_value_vector(*at.get_attr_vector(i));
 			add_attribute_nocopy(a);
 			break;
@@ -377,6 +377,29 @@ D4Attribute::print_dap4(XMLWriter &xml) const
         throw InternalErr(__FILE__, __LINE__, "Could not end Attribute element");
 }
 
+/** @brief dumps information about this object
+ *
+ * Displays the pointer value of this instance and then displays information
+ * about this base type.
+ *
+ * @param strm C++ i/o stream to dump the information to
+ * @return void
+ */
+void
+D4Attribute::dump(ostream &strm) const
+{
+    strm << DapIndent::LMarg << "D4Attribute::dump - (" << (void *)this << ")" << endl;
+
+    DapIndent::Indent() ;
+
+    XMLWriter xml;
+    print_dap4(xml);
+    strm << DapIndent::LMarg << xml.get_doc() << flush;
+
+    DapIndent::UnIndent() ;
+}
+
+
 void
 D4Attributes::print_dap4(XMLWriter &xml) const
 {
@@ -389,5 +412,28 @@ D4Attributes::print_dap4(XMLWriter &xml) const
     }
 }
 
+/** @brief dumps information about this object
+ *
+ * Displays the pointer value of this instance and then displays information
+ * about this base type.
+ *
+ * @param strm C++ i/o stream to dump the information to
+ * @return void
+ */
+void
+D4Attributes::dump(ostream &strm) const
+{
+    strm << DapIndent::LMarg << "D4Attributes::dump - (" << (void *)this << ")" << endl;
+
+    DapIndent::Indent() ;
+
+    XMLWriter xml;
+    print_dap4(xml);
+    strm << DapIndent::LMarg << xml.get_doc() << flush;
+
+    DapIndent::UnIndent() ;
+}
+
+
 } // namespace libdap
 
diff --git a/D4Attributes.h b/D4Attributes.h
index 1bdf320..d952c75 100644
--- a/D4Attributes.h
+++ b/D4Attributes.h
@@ -29,6 +29,7 @@
 #include <string>
 #include <vector>
 
+#include "DapObj.h"
 #include "D4AttributeType.h"
 #include "XMLWriter.h"
 
@@ -40,7 +41,7 @@ namespace libdap
 class AttrTable;
 class D4Attributes;
 
-class D4Attribute {
+class D4Attribute : public DapObj {
     string d_name;
     D4AttributeType d_type;    // Attributes are limited to the simple types
 
@@ -86,9 +87,11 @@ public:
     D4Attributes *attributes();
 
     void print_dap4(XMLWriter &xml) const;
+
+    virtual void dump(ostream &strm) const;
 };
 
-class D4Attributes {
+class D4Attributes : public DapObj {
 public:
     typedef vector<D4Attribute*>::iterator D4AttributesIter;
     typedef vector<D4Attribute*>::const_iterator D4AttributesCIter;
@@ -151,6 +154,8 @@ public:
     // Might add erase()
 
     void print_dap4(XMLWriter &xml) const;
+
+    virtual void dump(ostream &strm) const;
 };
 
 string D4AttributeTypeToString(D4AttributeType at);
diff --git a/D4Connect.cc b/D4Connect.cc
index ba3e0d4..f5725e0 100644
--- a/D4Connect.cc
+++ b/D4Connect.cc
@@ -33,9 +33,13 @@
 //      reza            Reza Nekovei <reza at intcomm.net>
 
 #include "config.h"
+// #define DODS_DEBUG 1
+
+
 
 #include <cassert>
 #include <cstring>
+#include <sstream>
 
 #include "D4Connect.h"
 #include "HTTPConnect.h"
@@ -52,147 +56,156 @@
 #include "mime_util.h"
 #include "debug.h"
 
+
+
 using namespace std;
 
 namespace libdap {
 
-
 /** This private method process data from both local and remote sources. It
-    exists to eliminate duplication of code. */
+ exists to eliminate duplication of code. */
 void D4Connect::process_dmr(DMR &dmr, Response &rs)
 {
-	DBG(cerr << "Entering D4Connect::process_dmr" << endl);
+    DBG(cerr << "Entering D4Connect::process_dmr" << endl);
 
-	dmr.set_dap_version(rs.get_protocol());
+    dmr.set_dap_version(rs.get_protocol());
 
-	DBG(cerr << "Entering process_data: d_stream = " << rs << endl);
-	switch (rs.get_type()) {
-	case dap4_error: {
+    DBG(cerr << "Entering process_data. Response.getVersion() = " << rs.get_version() << endl);
+    switch (rs.get_type()) {
+    case dap4_error: {
 #if 0
-		Error e;
-		if (!e.parse(rs.get_stream()))
-			throw InternalErr(__FILE__, __LINE__, "Could not parse the Error object returned by the server!");
-		throw e;
+        Error e;
+        if (!e.parse(rs.get_stream()))
+        throw InternalErr(__FILE__, __LINE__, "Could not parse the Error object returned by the server!");
+        throw e;
 #endif
-		throw InternalErr(__FILE__, __LINE__, "DAP4 errors not processed yet: FIXME!");
-	}
-
-	case web_error:
-		// Web errors (those reported in the return document's MIME header)
-		// are processed by the WWW library.
-		throw InternalErr(__FILE__, __LINE__,
-				"An error was reported by the remote httpd; this should have been processed by HTTPConnect..");
-
-	case dap4_dmr: {
-		// parse the DMR
-		try {
-			D4ParserSax2 parser;
-			parser.intern(*rs.get_cpp_stream(), &dmr, /*debug*/false);
-		}
-		catch (Error &e) {
-			cerr << "Exception: " << e.get_error_message() << endl;
-			return;
-		}
-		catch (std::exception &e) {
-			cerr << "Exception: " << e.what() << endl;
-			return;
-		}
-		catch (...) {
-			cerr << "Exception: unknown error" << endl;
-			return;
-		}
-
-		return;
-	}
-
-	default:
-		throw Error("Unknown response type");
-	}
+        throw InternalErr(__FILE__, __LINE__, "DAP4 errors not processed yet: FIXME!");
+    }
+
+    case web_error:
+        // Web errors (those reported in the return document's MIME header)
+        // are processed by the WWW library.
+        throw InternalErr(__FILE__, __LINE__,
+            "An error was reported by the remote httpd; this should have been processed by HTTPConnect..");
+
+    case dap4_dmr: {
+        // parse the DMR
+        try {
+            D4ParserSax2 parser;
+            // When parsing a data response, we use the permissive mode of the DMR parser
+            // (which allows Map elements to reference Arrays that are not in the DMR).
+            // Do not use that mode when parsing the DMR response - assume the DMR is
+            // valid. jhrg 4/13/16
+            parser.intern(*rs.get_cpp_stream(), &dmr);
+        }
+        catch (Error &e) {
+            cerr << "Exception: " << e.get_error_message() << endl;
+            return;
+        }
+        catch (std::exception &e) {
+            cerr << "Exception: " << e.what() << endl;
+            return;
+        }
+        catch (...) {
+            cerr << "Exception: unknown error" << endl;
+            return;
+        }
+
+        return;
+    }
+
+    default:
+        throw Error("Unknown response type");
+    }
 }
 
 /** This private method process data from both local and remote sources. It
-    exists to eliminate duplication of code. */
+ exists to eliminate duplication of code. */
 void D4Connect::process_data(DMR &data, Response &rs)
 {
-	DBG(cerr << "Entering D4Connect::process_data" << endl);
+    DBG(cerr << "Entering D4Connect::process_data" << endl);
 
-	assert(rs.get_cpp_stream());	// DAP4 code uses cpp streams
+    assert(rs.get_cpp_stream());	// DAP4 code uses cpp streams
 
-	data.set_dap_version(rs.get_protocol());
+    data.set_dap_version(rs.get_protocol());
 
-	DBG(cerr << "Entering process_data: d_stream = " << rs << endl);
-	switch (rs.get_type()) {
-	case dap4_error: {
+    DBG(cerr << "Entering process_data. Response.getVersion() = " << rs.get_version() << endl);
+    switch (rs.get_type()) {
+    case dap4_error: {
 #if 0
-		Error e;
-		if (!e.parse(rs.get_cpp_stream()))
-			throw InternalErr(__FILE__, __LINE__, "Could not parse the Error object returned by the server!");
-		throw e;
+        Error e;
+        if (!e.parse(rs.get_cpp_stream()))
+        throw InternalErr(__FILE__, __LINE__, "Could not parse the Error object returned by the server!");
+        throw e;
 #endif
-		throw InternalErr(__FILE__, __LINE__, "DAP4 errors not processed yet: FIXME!");
-	}
+        throw InternalErr(__FILE__, __LINE__, "DAP4 errors not processed yet: FIXME!");
+    }
 
-	case web_error:
-		// Web errors (those reported in the return document's MIME header)
-		// are processed by the WWW library.
-		throw InternalErr(__FILE__, __LINE__,
-				"An error was reported by the remote httpd; this should have been processed by HTTPConnect..");
+    case web_error:
+        // Web errors (those reported in the return document's MIME header)
+        // are processed by the WWW library.
+        throw InternalErr(__FILE__, __LINE__,
+            "An error was reported by the remote httpd; this should have been processed by HTTPConnect..");
 
-	case dap4_data: {
+    case dap4_data: {
 #if BYTE_ORDER_PREFIX
-		// Read the byte-order byte; used later on
-		char byte_order;
-		*rs.get_cpp_stream() >> byte_order;
-		//if (debug) cerr << "Byte order: " << ((byte_order) ? "big endian" : "little endian") << endl;
+        // Read the byte-order byte; used later on
+        char byte_order;
+        *rs.get_cpp_stream() >> byte_order;
+        //if (debug) cerr << "Byte order: " << ((byte_order) ? "big endian" : "little endian") << endl;
 #endif
-		// get a chunked input stream
+        // get a chunked input stream
 #if BYTE_ORDER_PREFIX
-		chunked_istream cis(*rs.get_cpp_stream(), 1024, byte_order);
+        chunked_istream cis(*rs.get_cpp_stream(), 1024, byte_order);
 #else
-		chunked_istream cis(*(rs.get_cpp_stream()), CHUNK_SIZE);
+        chunked_istream cis(*(rs.get_cpp_stream()), CHUNK_SIZE);
 #endif
-		// parse the DMR, stopping when the boundary is found.
-		try {
-			// force chunk read
-			// get chunk size
-			int chunk_size = cis.read_next_chunk();
-			if (chunk_size < 0)
+        // parse the DMR, stopping when the boundary is found.
+        try {
+            // force chunk read
+            // get chunk size
+            int chunk_size = cis.read_next_chunk();
+            if (chunk_size < 0)
                 throw Error("Found an unexpected end of input (EOF) while reading a DAP4 data response. (1)");
 
-			// get chunk
-			char chunk[chunk_size];
-			cis.read(chunk, chunk_size);
-			// parse char * with given size
-			D4ParserSax2 parser;
-			// '-2' to discard the CRLF pair
-			parser.intern(chunk, chunk_size - 2, &data, /*debug*/false);
-		}
-		catch (Error &e) {
-			cerr << "Exception: " << e.get_error_message() << endl;
-			return;
-		}
-		catch (std::exception &e) {
-			cerr << "Exception: " << e.what() << endl;
-			return;
-		}
-		catch (...) {
-			cerr << "Exception: unknown error" << endl;
-			return;
-		}
+            // get chunk
+            char chunk[chunk_size];
+            cis.read(chunk, chunk_size);
+            // parse char * with given size
+            D4ParserSax2 parser;
+            // permissive mode allows references to Maps that are not in the response.
+            // Use this mode when parsing a data response (but not the DMR). jhrg 4/13/16
+            parser.set_strict(false);
+
+            // '-2' to discard the CRLF pair
+            parser.intern(chunk, chunk_size - 2, &data);
+        }
+        catch (Error &e) {
+            cerr << "Exception: " << e.get_error_message() << endl;
+            return;
+        }
+        catch (std::exception &e) {
+            cerr << "Exception: " << e.what() << endl;
+            return;
+        }
+        catch (...) {
+            cerr << "Exception: unknown error" << endl;
+            return;
+        }
 
 #if BYTE_ORDER_PREFIX
-		D4StreamUnMarshaller um(cis, byte_order);
+        D4StreamUnMarshaller um(cis, byte_order);
 #else
-		D4StreamUnMarshaller um(cis, cis.twiddle_bytes());
+        D4StreamUnMarshaller um(cis, cis.twiddle_bytes());
 #endif
-		data.root()->deserialize(um, data);
+        data.root()->deserialize(um, data);
 
-		return;
-	}
+        return;
+    }
 
-	default:
-		throw Error("Unknown response type");
-	}
+    default:
+        throw Error("Unknown response type");
+    }
 }
 
 /** Use when you cannot use libcurl.
@@ -252,7 +265,7 @@ void D4Connect::parse_mime(Response &rs)
  @param password Password to use for authentication. Null by default.
  @brief Create an instance of Connect. */
 D4Connect::D4Connect(const string &url, string uname, string password) :
-        d_http(0), d_local(false), d_URL(""), d_dap4ce(""), d_server("unknown"), d_protocol("4.0")
+    d_http(0), d_local(false), d_URL(""), d_UrlQueryString(""), d_server("unknown"), d_protocol("4.0")
 {
     string name = prune_spaces(url);
 
@@ -263,14 +276,26 @@ D4Connect::D4Connect(const string &url, string uname, string password) :
         d_http = new HTTPConnect(RCReader::instance());
         d_http->set_use_cpp_streams(true);
 
+        d_URL = name;
+
         // Find and store any CE given with the URL.
         string::size_type dotpos = name.find('?');
-        if (dotpos != name.npos) {
+        if (dotpos != std::string::npos) { // Found a match.
             d_URL = name.substr(0, dotpos);
-            d_dap4ce = name.substr(dotpos + 1);
-        }
-        else {
-            d_URL = name;
+
+            d_UrlQueryString = name.substr(dotpos + 1);
+
+            if (d_UrlQueryString.find(DAP4_CE_QUERY_KEY) != std::string::npos) {
+                std::stringstream msg;
+                msg << endl;
+                msg << "WARNING: A DAP4 constraint expression key was found in the query string!" << endl;
+                msg << "The submitted dataset URL: " << name << endl;
+                msg << "Contains the query string: " << d_UrlQueryString << endl;
+                msg << "This will cause issues when making DAP4 requests that specify additional constraints. " << endl;
+                cerr << msg.str() << endl;
+                // throw Error(malformed_expr, msg.str());
+            }
+
         }
     }
     else {
@@ -283,55 +308,81 @@ D4Connect::D4Connect(const string &url, string uname, string password) :
 
 D4Connect::~D4Connect()
 {
-	if (d_http) delete d_http;
+    if (d_http) delete d_http;
+}
+
+std::string D4Connect::build_dap4_ce(const string requestSuffix, const string dap4ce)
+{
+    std::stringstream url;
+    bool needsAmpersand = false;
+
+    url << d_URL << requestSuffix << "?";
+
+    if (d_UrlQueryString.length() > 0) {
+        url << d_UrlQueryString;
+        needsAmpersand = true;
+    }
+
+    if (dap4ce.length() > 0) {
+        if (needsAmpersand) url << "&";
+
+        url << DAP4_CE_QUERY_KEY << "=" << id2www_ce(dap4ce);
+    }
+
+    DBG(cerr << "D4Connect::build_dap4_ce() - Source URL: " << d_URL << endl);
+    DBG(cerr << "D4Connect::build_dap4_ce() - Source URL Query String: " << d_UrlQueryString << endl);
+    DBG(cerr << "D4Connect::build_dap4_ce() - dap4ce: " << dap4ce << endl);
+    DBG(cerr << "D4Connect::build_dap4_ce() - request URL: " << url.str() << endl);
+
+    return url.str();
 }
 
 void D4Connect::request_dmr(DMR &dmr, const string expr)
 {
-	string url = d_URL + ".dmr" + "?" + id2www_ce(d_dap4ce + expr);
-
-	Response *rs = 0;
-	try {
-		rs = d_http->fetch_url(url);
-
-		d_server = rs->get_version();
-		d_protocol = rs->get_protocol();
-
-		switch (rs->get_type()) {
-		case unknown_type:			// FIXME Pure hackery!
-		    cerr << "Response type unknown, assuming it's a DMR response." << endl;
-		    /* no break */
-		case dap4_dmr: {
-			D4ParserSax2 parser;
-			parser.intern(*rs->get_cpp_stream(), &dmr, false /* debug */);
-			break;
-		}
-
-		case dap4_error:
-			throw InternalErr(__FILE__, __LINE__, "DAP4 errors are not processed yet.");
-
-		case web_error:
-			// We should never get here; a web error should be picked up read_url
-			// (called by fetch_url) and result in a thrown Error object.
-			throw InternalErr(__FILE__, __LINE__, "Web error found where it should never be.");
-			break;
-
-		default:
-			throw InternalErr(__FILE__, __LINE__, "Response type not handled (got "
-					+ long_to_string(rs->get_type()) + ").");
-		}
-	}
-	catch (...) {
-		delete rs;
-		throw;
-	}
-
-	delete rs;
+    string url = build_dap4_ce(".dmr", expr);
+
+    Response *rs = 0;
+    try {
+        rs = d_http->fetch_url(url);
+
+        d_server = rs->get_version();
+        d_protocol = rs->get_protocol();
+
+        switch (rs->get_type()) {
+        case unknown_type:
+            DBG(cerr << "Response type unknown, assuming it's a DMR response." << endl);
+            /* no break */
+        case dap4_dmr: {
+            D4ParserSax2 parser;
+            parser.intern(*rs->get_cpp_stream(), &dmr);
+            break;
+        }
+
+        case dap4_error:
+            throw InternalErr(__FILE__, __LINE__, "DAP4 errors are not processed yet.");
+
+        case web_error:
+            // We should never get here; a web error should be picked up read_url
+            // (called by fetch_url) and result in a thrown Error object.
+            throw InternalErr(__FILE__, __LINE__, "Web error found where it should never be.");
+            break;
+
+        default:
+            throw InternalErr(__FILE__, __LINE__,
+                "Response type not handled (got " + long_to_string(rs->get_type()) + ").");
+        }
+    }
+    catch (...) {
+        delete rs;
+        throw;
+    }
+
+    delete rs;
 }
 
 void D4Connect::request_dap4_data(DMR &dmr, const string expr)
 {
-    string url = d_URL + ".dap" + "?" + id2www_ce(d_dap4ce + expr);
+    string url = build_dap4_ce(".dap", expr);
 
     Response *rs = 0;
     try {
@@ -341,11 +392,10 @@ void D4Connect::request_dap4_data(DMR &dmr, const string expr)
         d_protocol = rs->get_protocol();
 
         switch (rs->get_type()) {
-        case unknown_type:          // FIXME Pure hackery!
-            cerr << "Response type unknown, assuming it's a DAP4 Data response." << endl;
+        case unknown_type:
+            DBG(cerr << "Response type unknown, assuming it's a DAP4 Data response." << endl);
             /* no break */
         case dap4_data: {
-            // TODO Move to a function 11/9/13 process_data()???
 #if BYTE_ORDER_PREFIX
             istream &in = *rs->get_cpp_stream();
             // Read the byte-order byte; used later on
@@ -355,9 +405,9 @@ void D4Connect::request_dap4_data(DMR &dmr, const string expr)
 
             // get a chunked input stream
 #if BYTE_ORDER_PREFIX
-		chunked_istream cis(*(rs->get_cpp_stream()), 1024, byte_order);
+            chunked_istream cis(*(rs->get_cpp_stream()), 1024, byte_order);
 #else
-		chunked_istream cis(*(rs->get_cpp_stream()), CHUNK_SIZE);
+            chunked_istream cis(*(rs->get_cpp_stream()), CHUNK_SIZE);
 #endif
 
             // parse the DMR, stopping when the boundary is found.
@@ -373,6 +423,8 @@ void D4Connect::request_dap4_data(DMR &dmr, const string expr)
             cis.read(chunk, chunk_size);
             // parse char * with given size
             D4ParserSax2 parser;
+            // permissive mode allows references to Maps that are not in the response.
+            parser.set_strict(false);
             // '-2' to discard the CRLF pair
             parser.intern(chunk, chunk_size - 2, &dmr, false /*debug*/);
 
@@ -397,8 +449,8 @@ void D4Connect::request_dap4_data(DMR &dmr, const string expr)
             break;
 
         default:
-            throw InternalErr(__FILE__, __LINE__, "Response type not handled (got "
-                    + long_to_string(rs->get_type()) + ").");
+            throw InternalErr(__FILE__, __LINE__,
+                "Response type not handled (got " + long_to_string(rs->get_type()) + ").");
         }
     }
     catch (...) {
@@ -409,22 +461,18 @@ void D4Connect::request_dap4_data(DMR &dmr, const string expr)
     delete rs;
 }
 
-void
-D4Connect::read_dmr(DMR &dmr, Response &rs)
+void D4Connect::read_dmr(DMR &dmr, Response &rs)
 {
     parse_mime(rs);
-    if (rs.get_type() == unknown_type)
-        throw Error("Unknown response type.");
+    if (rs.get_type() == unknown_type) throw Error("Unknown response type.");
 
     read_dmr_no_mime(dmr, rs);
 }
 
-void
-D4Connect::read_dmr_no_mime(DMR &dmr, Response &rs)
+void D4Connect::read_dmr_no_mime(DMR &dmr, Response &rs)
 {
-	// Assume callers know what they are doing
-    if (rs.get_type() == unknown_type)
-        rs.set_type(dap4_dmr);
+    // Assume callers know what they are doing
+    if (rs.get_type() == unknown_type) rs.set_type(dap4_dmr);
 
     switch (rs.get_type()) {
     case dap4_dmr:
@@ -437,21 +485,18 @@ D4Connect::read_dmr_no_mime(DMR &dmr, Response &rs)
     }
 }
 
-void
-D4Connect::read_data(DMR &data, Response &rs)
+void D4Connect::read_data(DMR &data, Response &rs)
 {
     parse_mime(rs);
-    if (rs.get_type() == unknown_type)
-        throw Error("Unknown response type.");
+    if (rs.get_type() == unknown_type) throw Error("Unknown response type.");
 
     read_data_no_mime(data, rs);
 }
 
 void D4Connect::read_data_no_mime(DMR &data, Response &rs)
 {
-	// Assume callers know what they are doing
-    if (rs.get_type() == unknown_type)
-        rs.set_type(dap4_data);
+    // Assume callers know what they are doing
+    if (rs.get_type() == unknown_type) rs.set_type(dap4_data);
 
     switch (rs.get_type()) {
     case dap4_data:
@@ -471,8 +516,7 @@ void D4Connect::read_data_no_mime(DMR &data, Response &rs)
  @see extract_auth_info() */
 void D4Connect::set_credentials(string u, string p)
 {
-    if (d_http)
-        d_http->set_credentials(u, p);
+    if (d_http) d_http->set_credentials(u, p);
 }
 
 /** Set the \e accept deflate property.
@@ -480,8 +524,7 @@ void D4Connect::set_credentials(string u, string p)
  otherwise. */
 void D4Connect::set_accept_deflate(bool deflate)
 {
-    if (d_http)
-        d_http->set_accept_deflate(deflate);
+    if (d_http) d_http->set_accept_deflate(deflate);
 }
 
 /** Set the \e XDAP-Accept property/header. This is used to send to a server
@@ -491,8 +534,7 @@ void D4Connect::set_accept_deflate(bool deflate)
  @param minor The client dap protocol minor version */
 void D4Connect::set_xdap_protocol(int major, int minor)
 {
-    if (d_http)
-        d_http->set_xdap_protocol(major, minor);
+    if (d_http) d_http->set_xdap_protocol(major, minor);
 }
 
 /** Disable any further use of the client-side cache. In a future version
@@ -500,8 +542,7 @@ void D4Connect::set_xdap_protocol(int major, int minor)
  not initialized with the cache running by default. */
 void D4Connect::set_cache_enabled(bool cache)
 {
-    if (d_http)
-        d_http->set_cache_enabled(cache);
+    if (d_http) d_http->set_cache_enabled(cache);
 }
 
 bool D4Connect::is_cache_enabled()
diff --git a/D4Connect.h b/D4Connect.h
index 7a5d864..40fb2e3 100644
--- a/D4Connect.h
+++ b/D4Connect.h
@@ -28,6 +28,8 @@
 
 #include <string>
 
+#define DAP4_CE_QUERY_KEY "dap4.ce"
+
 namespace libdap
 {
 
@@ -42,7 +44,7 @@ private:
 
     bool d_local;  // Is this a local connection?
     std::string d_URL;  // URL to remote dataset (minus CE)
-    std::string d_dap4ce; 	// CE
+    std::string d_UrlQueryString; 	// CE
 
     std::string d_server; // Server implementation information (the XDAP-Server header)
     std::string d_protocol; // DAP protocol from the server (XDAP)
@@ -53,6 +55,8 @@ private:
     // Use when you cannot use but have a complete response with MIME headers
     void parse_mime(Response &rs);
 
+    std::string build_dap4_ce(const std::string requestSuffix, const std::string expr);
+
 protected:
     /** @name Suppress the C++ defaults for these. */
     D4Connect();
@@ -67,7 +71,7 @@ public:
     bool is_local() const { return d_local; }
 
     virtual std::string URL() const { return d_URL; }
-    virtual std::string CE() const { return d_dap4ce; }
+    virtual std::string CE() const { return d_UrlQueryString; }
 
     void set_credentials(std::string u, std::string p);
     void set_accept_deflate(bool deflate);
diff --git a/D4Enum.cc b/D4Enum.cc
index b6df872..36d0688 100644
--- a/D4Enum.cc
+++ b/D4Enum.cc
@@ -25,9 +25,13 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG 1
+
 #include <cassert>
 #include <sstream>
 
+#include <libxml/encoding.h>
+
 #include "Byte.h"           // synonymous with UInt8 and Char
 #include "Int8.h"
 #include "Int16.h"
@@ -48,6 +52,8 @@
 
 #include "Operators.h"
 #include "InternalErr.h"
+#include "dods-datatypes.h"
+#include "dods-limits.h"
 #include "util.h"
 #include "debug.h"
 
@@ -61,17 +67,102 @@ void D4Enum::m_duplicate(const D4Enum &src)
 {
     d_buf = src.d_buf;
     d_element_type = src.d_element_type;
+    d_enum_def = src.d_enum_def;
+#if 0
+    // The enum_def is a weak pointer managed by D4Group. We just copy it
+    // and do not delete it. jhrg 1019/15
     d_enum_def = src.d_enum_def == 0 ? 0 : new D4EnumDef(*(src.d_enum_def));
+#endif
     d_is_signed = src.d_is_signed;
 }
 
+void D4Enum::m_check_value(int64_t v) const
+{
+	switch (d_element_type) {
+	case dods_byte_c:
+	case dods_uint8_c:
+		if ((uint64_t)v > DODS_UCHAR_MAX || v < 0) {
+			ostringstream oss;
+			oss << "The value " << v << " will not fit in an unsigned byte. (" << __func__ << ")";
+			throw Error(oss.str());
+		}
+		break;
+	case dods_uint16_c:
+		if ((uint64_t)v > DODS_USHRT_MAX || v < 0) {
+			ostringstream oss;
+			oss << "The value " << v << " will not fit in an unsigned 16-bit integer. (" << __func__ << ")";
+			throw Error(oss.str());
+		}
+		break;
+	case dods_uint32_c:
+		if ((uint64_t)v > DODS_UINT_MAX || v < 0) {
+			ostringstream oss;
+			oss << "The value " << v << " will not fit in an unsigned 32-bit integer. (" << __func__ << ")";
+			throw Error(oss.str());
+		}
+		break;
+	case dods_uint64_c:
+		// If 'v' can never be bigger than ULLONG_MAX
+		break;
+
+		case dods_int8_c:
+		if (v > DODS_SCHAR_MAX || v < DODS_SCHAR_MIN) {
+			ostringstream oss;
+			oss << "The value " << v << " will not fit in an unsigned byte. (" << __func__ << ")";
+			throw Error(oss.str());
+		}
+
+		break;
+	case dods_int16_c:
+		if (v > DODS_SHRT_MAX || v < DODS_SHRT_MIN) {
+			ostringstream oss;
+			oss << "The value " << v << " will not fit in an unsigned byte. (" << __func__ << ")";
+			throw Error(oss.str());
+		}
+		break;
+	case dods_int32_c:
+		if (v > DODS_INT_MAX || v < DODS_INT_MIN) {
+			ostringstream oss;
+			oss << "The value " << v << " will not fit in an unsigned byte. (" << __func__ << ")";
+			throw Error(oss.str());
+		}
+		break;
+	case dods_int64_c:
+		// There's no value 'v' can have that won't fit into a 64-bit int.
+		break;
+	default:
+		assert(!"illegal type for D4Enum");
+	}
+}
+
+D4Enum::D4Enum(const string &name, const string &enum_type) :
+    BaseType(name, dods_enum_c, true /*is_dap4*/), d_buf(0), d_element_type(dods_null_c), d_enum_def(0)
+{
+    d_element_type = get_type(enum_type.c_str());
+
+    if (!is_integer_type(d_element_type)) d_element_type = dods_uint64_c;
+    set_is_signed(d_element_type);
+}
+
+D4Enum::D4Enum(const string &name, Type type) :
+    BaseType(name, dods_enum_c, true /*is_dap4*/), d_buf(0), d_element_type(type), d_enum_def(0)
+{
+    if (!is_integer_type(d_element_type)) d_element_type = dods_uint64_c;
+    set_is_signed(d_element_type);
+}
+
+D4Enum::D4Enum(const string &name, const string &dataset, Type type) :
+    BaseType(name, dataset, dods_enum_c, true /*is_dap4*/), d_buf(0), d_element_type(type), d_enum_def(0)
+{
+    if (!is_integer_type(d_element_type)) d_element_type = dods_uint64_c;
+    set_is_signed(d_element_type);
+}
+
 // Explicit instantiation of the template member function 'value(T *)'.
 // This is required in order to have the library contain these member
-// function when its own code does not use them. Normally, C++ instantiates
+// functions when its own code does not use them. Normally, C++ instantiates
 // templates when they are used, and this forces that process so the
 // library file contains the various versions of the member function.
-//
-// NB: I could not get this syntax to work in the header file. jhrg 8/19/13
 template void D4Enum::value<dods_byte>(dods_byte *v) const;
 template void D4Enum::value<dods_int16>(dods_int16 *v) const;
 template void D4Enum::value<dods_uint16>(dods_uint16 *v) const;
@@ -80,13 +171,13 @@ template void D4Enum::value<dods_uint32>(dods_uint32 *v) const;
 template void D4Enum::value<dods_int64>(dods_int64 *v) const;
 template void D4Enum::value<dods_uint64>(dods_uint64 *v) const;
 
-template void D4Enum::set_value<dods_byte>(dods_byte v);
-template void D4Enum::set_value<dods_int16>(dods_int16 v);
-template void D4Enum::set_value<dods_uint16>(dods_uint16 v);
-template void D4Enum::set_value<dods_int32>(dods_int32 v);
-template void D4Enum::set_value<dods_uint32>(dods_uint32 v);
-template void D4Enum::set_value<dods_int64>(dods_int64 v);
-template void D4Enum::set_value<dods_uint64>(dods_uint64 v);
+template void D4Enum::set_value<dods_byte>(dods_byte v, bool check_value);
+template void D4Enum::set_value<dods_int16>(dods_int16 v, bool check_value);
+template void D4Enum::set_value<dods_uint16>(dods_uint16 v, bool check_value);
+template void D4Enum::set_value<dods_int32>(dods_int32 v, bool check_value);
+template void D4Enum::set_value<dods_uint32>(dods_uint32 v, bool check_value);
+template void D4Enum::set_value<dods_int64>(dods_int64 v, bool check_value);
+template void D4Enum::set_value<dods_uint64>(dods_uint64 v, bool check_value);
 
 void
 D4Enum::set_enumeration(D4EnumDef *enum_def) {
@@ -97,23 +188,31 @@ D4Enum::set_enumeration(D4EnumDef *enum_def) {
 void
 D4Enum::compute_checksum(Crc32 &checksum)
 {
+	DBG(cerr << __func__ << ": element type: " << ::libdap::type_name(d_element_type) << endl);
+
     switch (d_element_type) {
     case dods_byte_c:
     case dods_uint8_c:
-    case dods_int8_c:
-        checksum.AddData(reinterpret_cast<uint8_t*>(&d_buf.ui8), sizeof(uint8_t));
+    case dods_int8_c: {
+    	dods_byte v = static_cast<dods_byte>(d_buf);
+        checksum.AddData(reinterpret_cast<uint8_t*>(&v), sizeof(uint8_t));
         break;
+    }
     case dods_uint16_c:
-    case dods_int16_c:
-        checksum.AddData(reinterpret_cast<uint8_t*>(&d_buf.ui16), sizeof(uint16_t));
+    case dods_int16_c: {
+    	dods_int16 v = static_cast<dods_int16>(d_buf);
+        checksum.AddData(reinterpret_cast<uint8_t*>(&v), sizeof(uint16_t));
         break;
+    }
     case dods_uint32_c:
-    case dods_int32_c:
-        checksum.AddData(reinterpret_cast<uint8_t*>(&d_buf.ui32), sizeof(uint32_t));
+    case dods_int32_c: {
+    	dods_int32 v = static_cast<dods_int32>(d_buf);
+        checksum.AddData(reinterpret_cast<uint8_t*>(&v), sizeof(uint32_t));
         break;
+    }
     case dods_uint64_c:
     case dods_int64_c:
-        checksum.AddData(reinterpret_cast<uint8_t*>(&d_buf.ui64), sizeof(uint64_t));
+        checksum.AddData(reinterpret_cast<uint8_t*>(&d_buf), sizeof(uint64_t));
         break;
 
     default:
@@ -121,6 +220,31 @@ D4Enum::compute_checksum(Crc32 &checksum)
     }
 }
 
+void
+D4Enum::set_is_signed(Type t)
+{
+	switch (t) {
+	case dods_byte_c:
+	case dods_uint8_c:
+	case dods_uint16_c:
+	case dods_uint32_c:
+	case dods_uint64_c:
+		d_is_signed = false;
+		break;
+
+	case dods_int8_c:
+	case dods_int16_c:
+	case dods_int32_c:
+	case dods_int64_c:
+		d_is_signed =  true;
+		break;
+
+	default:
+		assert(!"illegal type for D4Enum");
+		throw InternalErr(__FILE__, __LINE__, "Illegal type");
+	}
+}
+
 
 /**
  * @brief Serialize a D4Enum
@@ -143,29 +267,29 @@ D4Enum::serialize(D4StreamMarshaller &m, DMR &, /*ConstraintEvaluator &,*/ bool)
 	switch (d_element_type) {
 	case dods_byte_c:
 	case dods_uint8_c:
-		m.put_byte(d_buf.ui8);
+		m.put_byte(d_buf);
 		break;
 	case dods_uint16_c:
-		m.put_uint16(d_buf.ui16);
+		m.put_uint16(d_buf);
 		break;
 	case dods_uint32_c:
-		m.put_uint32(d_buf.ui32);
+		m.put_uint32(d_buf);
 		break;
 	case dods_uint64_c:
-		m.put_uint64(d_buf.ui64);
+		m.put_uint64(d_buf);
 		break;
 
 	case dods_int8_c:
-		m.put_int8(d_buf.i8);
+		m.put_int8(d_buf);
 		break;
 	case dods_int16_c:
-		m.put_int16(d_buf.i16);
+		m.put_int16(d_buf);
 		break;
 	case dods_int32_c:
-		m.put_int32(d_buf.i32);
+		m.put_int32(d_buf);
 		break;
 	case dods_int64_c:
-		m.put_int64(d_buf.i64);
+		m.put_int64(d_buf);
 		break;
 	default:
 		assert(!"illegal type for D4Enum");
@@ -177,31 +301,55 @@ D4Enum::deserialize(D4StreamUnMarshaller &um, DMR &)
 {
 	switch (d_element_type) {
 	case dods_byte_c:
-	case dods_uint8_c:
-		um.get_byte(d_buf.ui8);
+	case dods_uint8_c: {
+		dods_byte v;
+		um.get_byte(v);
+		d_buf = v;
 		break;
-	case dods_uint16_c:
-		um.get_uint16(d_buf.ui16);
+	}
+	case dods_uint16_c: {
+		dods_uint16 v;
+		um.get_uint16(v);
+		d_buf = v;
 		break;
-	case dods_uint32_c:
-		um.get_uint32(d_buf.ui32);
+	}
+	case dods_uint32_c: {
+		dods_uint32 v;
+		um.get_uint32(v);
+		d_buf = v;
 		break;
-	case dods_uint64_c:
-		um.get_uint64(d_buf.ui64);
+	}
+	case dods_uint64_c: {
+		dods_uint64 v;
+		um.get_uint64(v);
+		d_buf = v;
 		break;
+	}
 
-	case dods_int8_c:
-		um.get_int8(d_buf.i8);
+	case dods_int8_c: {
+		dods_int8 v;
+		um.get_int8(v);
+		d_buf = v;
 		break;
-	case dods_int16_c:
-		um.get_int16(d_buf.i16);
+	}
+	case dods_int16_c: {
+		dods_int16 v;
+		um.get_int16(v);
+		d_buf = v;
 		break;
-	case dods_int32_c:
-		um.get_int32(d_buf.i32);
+	}
+	case dods_int32_c: {
+		dods_int32 v;
+		um.get_int32(v);
+		d_buf = v;
 		break;
-	case dods_int64_c:
-		um.get_int64(d_buf.i64);
+	}
+	case dods_int64_c: {
+		dods_int64 v;
+		um.get_int64(v);
+		d_buf = v;
 		break;
+	}
 	default:
 		assert(!"illegal type for D4Enum");
 	}
@@ -215,29 +363,29 @@ unsigned int D4Enum::val2buf(void *val, bool)
     switch (d_element_type) {
      case dods_byte_c:
      case dods_uint8_c:
-         d_buf.ui8 = *(dods_byte*)val;
+         d_buf = *(dods_byte*)val;
          break;
      case dods_uint16_c:
-         d_buf.ui16 = *(dods_uint16*)val;
+         d_buf = *(dods_uint16*)val;
          break;
      case dods_uint32_c:
-         d_buf.ui32 = *(dods_uint32*)val;
+         d_buf = *(dods_uint32*)val;
          break;
      case dods_uint64_c:
-         d_buf.ui64 = *(dods_uint64*)val;
+         d_buf = *(dods_uint64*)val;
          break;
 
      case dods_int8_c:
-         d_buf.i8 = *(dods_int8*)val;
+         d_buf = *(dods_int8*)val;
          break;
      case dods_int16_c:
-         d_buf.i16 = *(dods_int16*)val;
+         d_buf = *(dods_int16*)val;
          break;
      case dods_int32_c:
-         d_buf.i32 = *(dods_int32*)val;
+         d_buf = *(dods_int32*)val;
          break;
      case dods_int64_c:
-         d_buf.i64 = *(dods_int64*)val;
+         d_buf = *(dods_int64*)val;
          break;
      default:
          assert(!"illegal type for D4Enum");
@@ -255,36 +403,36 @@ unsigned int D4Enum::buf2val(void **val)
      case dods_byte_c:
      case dods_uint8_c:
          if (!*val) *val = new dods_byte;
-         *(dods_byte *) * val = d_buf.ui8;
+         *(dods_byte *) * val = d_buf;
          break;
      case dods_uint16_c:
          if (!*val) *val = new dods_uint16;
-         *(dods_uint16 *) * val = d_buf.ui16;
+         *(dods_uint16 *) * val = d_buf;
          break;
      case dods_uint32_c:
          if (!*val) *val = new dods_uint32;
-         *(dods_uint32 *) * val = d_buf.ui32;
+         *(dods_uint32 *) * val = d_buf;
          break;
      case dods_uint64_c:
          if (!*val) *val = new dods_uint64;
-         *(dods_uint64 *) * val = d_buf.ui64;
+         *(dods_uint64 *) * val = d_buf;
          break;
 
      case dods_int8_c:
          if (!*val) *val = new dods_int8;
-         *(dods_int8*) * val = d_buf.i8;
+         *(dods_int8*) * val = d_buf;
          break;
      case dods_int16_c:
          if (!*val) *val = new dods_int16;
-         *(dods_int16 *) * val = d_buf.i16;
+         *(dods_int16 *) * val = d_buf;
          break;
      case dods_int32_c:
          if (!*val) *val = new dods_int32;
-         *(dods_int32 *) * val = d_buf.i32;
+         *(dods_int32 *) * val = d_buf;
          break;
      case dods_int64_c:
          if (!*val) *val = new dods_int64;
-         *(dods_int64 *) * val = d_buf.i64;
+         *(dods_int64 *) * val = d_buf;
          break;
      default:
          assert(!"illegal type for D4Enum");
@@ -300,6 +448,8 @@ void D4Enum::print_val(ostream &out, string space, bool print_decl_p)
         out << " = ";
     }
 
+    DBG(cerr << "Enum union value: " << hex << d_buf << dec << endl);
+
     if (is_signed()) {
     	int64_t v;
     	value(&v);
@@ -412,7 +562,7 @@ D4Enum::dump(ostream &strm) const
     strm << DapIndent::LMarg << "D4Enum::dump - (" << (void *) this << ")" << endl;
     DapIndent::Indent();
     BaseType::dump(strm);
-    strm << DapIndent::LMarg << "value: " << d_buf.ui64 << endl;
+    strm << DapIndent::LMarg << "value: " << d_buf << endl;
     DapIndent::UnIndent();
 }
 
diff --git a/D4Enum.h b/D4Enum.h
index f95e713..e5d2517 100644
--- a/D4Enum.h
+++ b/D4Enum.h
@@ -29,10 +29,14 @@
 #include <cassert>
 
 #include "BaseType.h"
+#include "dods-datatypes.h"
 
+#if 0
 #include "InternalErr.h"
 #include "dods-datatypes.h"
+#include "dods-limits.h"
 #include "util.h"
+#endif
 
 namespace libdap
 {
@@ -51,60 +55,25 @@ class UnMarshaller;
  * Enumeration XML element in the DMR - that information is stored
  * in additional fields and used for checking values and printing the
  * variable's declaration, but not for the internal storage of values.
+ *
+ * @todo Note the hack to remove the union...
  */
 class D4Enum: public BaseType
 {
 	friend class D4EnumTest;
 
-public:
-    union enum_value {
-    	int8_t i8;
-    	uint8_t ui8;
-    	int16_t i16;
-    	uint16_t ui16;
-    	int32_t i32;
-    	uint32_t ui32;
-    	int64_t i64;
-    	uint64_t ui64;
-
-    	enum_value() : ui64(0) { }
-
-    	enum_value(int8_t i) : i8(i) {}
-    	enum_value(uint8_t i) : ui8(i) {}
-    	enum_value(int16_t i) : i16(i) {}
-    	enum_value(uint16_t i) : ui16(i) {}
-    	enum_value(int32_t i) : i32(i) {}
-    	enum_value(uint32_t i) : ui32(i) {}
-    	enum_value(int64_t i) : i64(i) {}
-    	enum_value(uint64_t i) : ui64(i) {}
-
-    	// cast operators; use by set_value()
-    	operator int8_t() const { return i8; }
-    	operator uint8_t() const { return ui8; }
-    	operator int16_t() const { return i16; }
-    	operator uint16_t() const { return ui16; }
-    	operator int32_t() const { return i32; }
-    	operator uint32_t() const { return ui32; }
-    	operator int64_t() const { return i64; }
-    	operator uint64_t() const { return ui64; }
-    };
+protected:
+    // Use an unsigned 64-bit int. the value() and set_value()
+    // accessors cast to other types as needed, including signed ones.
+    uint64_t d_buf;
 
 private:
-    enum_value d_buf;
-
     Type d_element_type;
-    D4EnumDef *d_enum_def;	// The enumeration defined in the DMR, not an integer type
+    D4EnumDef *d_enum_def;	// This is a weak pointer; don't delete
     bool d_is_signed;
 
     void m_duplicate(const D4Enum &src);
-#if 0
-    {
-        d_buf = src.d_buf;
-        d_element_type = src.d_element_type;
-        d_enum_def = new D4EnumDef(src.d_enum_def);
-        d_is_signed = src.d_is_signed;
-    }
-#endif
+    void m_check_value(int64_t v) const;
 
     unsigned int m_type_width() const {
         switch(d_element_type) {
@@ -131,29 +100,11 @@ private:
     D4Enum();	// No empty constructor
 
 public:
-	// TODO add a way to set the EnumDef to these
-    D4Enum(const string &name, const string &enum_type) :
-        BaseType(name, dods_enum_c, true /*is_dap4*/), d_buf((uint64_t) 0), d_element_type(dods_null_c), d_enum_def(0)
-    {
-        d_element_type = get_type(enum_type.c_str());
+    D4Enum(const string &name, const string &enum_type);
 
-        if (!is_integer_type(d_element_type)) d_element_type = dods_uint64_c;
-        set_is_signed(d_element_type);
-    }
+    D4Enum(const string &name, Type type);
 
-    D4Enum(const string &name, Type type) :
-        BaseType(name, dods_enum_c, true /*is_dap4*/), d_buf((uint64_t) 0), d_element_type(type), d_enum_def(0)
-    {
-        if (!is_integer_type(d_element_type)) d_element_type = dods_uint64_c;
-        set_is_signed(d_element_type);
-    }
-
-    D4Enum(const string &name, const string &dataset, Type type) :
-        BaseType(name, dataset, dods_enum_c, true /*is_dap4*/), d_buf((uint64_t) 0), d_element_type(type), d_enum_def(0)
-    {
-        if (!is_integer_type(d_element_type)) d_element_type = dods_uint64_c;
-        set_is_signed(d_element_type);
-    }
+    D4Enum(const string &name, const string &dataset, Type type);
 
     D4Enum(const D4Enum &src) : BaseType(src) { m_duplicate(src); }
 
@@ -176,71 +127,18 @@ public:
     void set_element_type(Type type) { d_element_type = type; }
 
     bool is_signed() const { return d_is_signed; }
-    void set_is_signed(Type t) {
-    	switch (t) {
-    	case dods_byte_c:
-    	case dods_uint8_c:
-    	case dods_uint16_c:
-    	case dods_uint32_c:
-    	case dods_uint64_c:
-    		d_is_signed = false;
-    		break;
-
-    	case dods_int8_c:
-    	case dods_int16_c:
-    	case dods_int32_c:
-    	case dods_int64_c:
-    		d_is_signed =  true;
-    		break;
-
-    	default:
-    		assert(!"illegal type for D4Enum");
-    		throw InternalErr(__FILE__, __LINE__, "Illegal type");
-    	}
-    }
-
-    /**
-     * @brief Copy the value of this Enum into \c v.
-     * Template member function that can be used to read the value of the
-     * Enum. This template is explicitly instantiated so libdap includes
-     * D4Enum::value(dods_byte* v), ..., value(dods_uint64) (i.e., all
-     * of the integer types).
-     *
-     * @param v Value-result parameter; return the value of the Enum
-     * in this variable.
-     */
-	template<typename T> void value(T *v) const
-	{
-		switch (d_element_type) {
-		case dods_byte_c:
-		case dods_uint8_c:
-			*v = static_cast<T>(d_buf.ui8);
-			break;
-		case dods_uint16_c:
-			*v = static_cast<T>(d_buf.ui16);
-			break;
-		case dods_uint32_c:
-			*v = static_cast<T>(d_buf.ui32);
-			break;
-		case dods_uint64_c:
-			*v = static_cast<T>(d_buf.ui64);
-			break;
-
-		case dods_int8_c:
-			*v = static_cast<T>(d_buf.i8);
-			break;
-		case dods_int16_c:
-			*v = static_cast<T>(d_buf.i16);
-			break;
-		case dods_int32_c:
-			*v = static_cast<T>(d_buf.i32);
-			break;
-		case dods_int64_c:
-			*v = static_cast<T>(d_buf.i64);
-			break;
-		default:
-			assert(!"illegal type for D4Enum");
-		}
+    void set_is_signed(Type t);
+
+	/**
+	 * @brief Get the value of an Enum
+	 * Get the value of this instance. The caller is responsible
+	 * for using a type T than can hold the value.
+	 *
+	 * @param v Value-result parameter; return the value of the Enum
+	 * in this variable.
+	 */
+	template<typename T> void value(T *v) const {
+		*v = static_cast<T>(d_buf);
 	}
 
     /**
@@ -250,19 +148,31 @@ public:
      * types for the parameter \c v.
      *
      * @param v Set the Enum to this value.
+     * @param check_value If true test the value 'v' against the type of the
+     * Enum. Defaults to true.
      */
-    template <typename T> void set_value(T v) { d_buf = v; }
+    template <typename T> void set_value(T v, bool check_value = true)
+    {
+    	if (check_value) m_check_value(v);
+    	d_buf = static_cast<int64_t>(v);
+    }
 
     /**
      * @brief Return the number of bytes in an instance of an Enum.
      * This returns the number of bytes an instance of Enum will use
-     * either in memory or on the wire (i.e., in a serialization of
-     * the type).
+     * in memory or on the wire (i.e., in a serialization of
+     * the type). On the wire this type uses the minimum number of
+     * bytes for the given Enum type - an Enum with type Byte uses
+     * one byte, Int16 uses two, and so on. In memory, a single instance
+     * uses 64-bits but a vector of these will use the same number of
+     * bytes per value as the on-the-wire representation.
+     *
+     * @note The private method m_type_width() returns the byte width
+     * used for the on-the-wire representation of values.
      *
-     * @note This version of the method works for scalar Enums only.
      * @return The number of bytes used by a value.
      */
-    virtual unsigned int width(bool /* constrained */ = false) const { return m_type_width(); }
+    virtual unsigned int width(bool /* constrained */ = false) const { return /*sizeof(int64_t);*/ m_type_width();}
 
     // DAP4
     virtual void compute_checksum(Crc32 &checksum);
diff --git a/D4FilterClause.cc b/D4FilterClause.cc
new file mode 100644
index 0000000..8ae68e2
--- /dev/null
+++ b/D4FilterClause.cc
@@ -0,0 +1,212 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+// (c) COPYRIGHT URI/MIT 1996,1998,1999
+// Please first read the full copyright statement in the file COPYRIGHT_URI.
+//
+// Authors:
+// jhrg,jimg James Gallagher <jgallagher at gso.uri.edu>
+
+// Implementation for the CE Clause class.
+
+
+#include "config.h"
+
+#include "D4RValue.h"
+#include "D4FilterClause.h"
+
+using namespace std;
+
+namespace libdap {
+
+void
+D4FilterClauseList::m_duplicate(const D4FilterClauseList &src)
+{
+    //D4FilterClauseList &non_c_src = const_cast<D4FilterClauseList &>(src);
+
+    for (D4FilterClauseList::citer i = src.cbegin(), e = src.cend(); i != e; ++i) {
+        D4FilterClause *fc = *i;
+        d_clauses.push_back(new D4FilterClause(*fc));
+    }
+}
+
+D4FilterClauseList::~D4FilterClauseList()
+{
+    for (D4FilterClauseList::iter i = d_clauses.begin(), e = d_clauses.end(); i != e; ++i) {
+        delete *i;
+    }
+}
+
+/**
+ * @brief Evaluate the list of clauses
+ *
+ * Evaluate the list of clauses and return false when/if one is found to be false.
+ * This evaluates the clauses in the order they are stored and stops evaluation a
+ * the first false clause.
+ *
+ * @param dmr Use this DMR when evaluating clauses - for clauses that contain functions,
+ * not currently in the DAP4 specification.
+ * @return True if each of the clauses' value is true, otherwise false
+ */
+bool
+D4FilterClauseList::value(DMR &dmr)
+{
+    for (D4FilterClauseList::iter i = d_clauses.begin(), e = d_clauses.end(); i != e; ++i) {
+        if ((*i)->value(dmr) == false)
+            return false;
+    }
+
+    return true;
+}
+
+/**
+ * @brief Evaluate the list of clauses
+ *
+ * This version of value() does not need a DMR parameter (but will not work
+ * if the clauses contain a function call (which is not currently supported
+ * by the spec).
+ *
+ * @return True if each clauses' value is true, false otherwise
+ * @see D4FilterClauseList::value(DMR &dmr)
+ */
+bool
+D4FilterClauseList::value()
+{
+    for (D4FilterClauseList::iter i = d_clauses.begin(), e = d_clauses.end(); i != e; ++i) {
+        if ((*i)->value() == false)
+            return false;
+    }
+
+    return true;
+}
+
+void D4FilterClause::m_duplicate(const D4FilterClause &rhs) {
+    d_op = rhs.d_op;
+
+    d_arg1 = new D4RValue(*rhs.d_arg1);
+    d_arg2 = new D4RValue(*rhs.d_arg2);
+
+#if 0
+    // Copy the D4RValue pointer if the 'value_kind' is a basetype,
+    // but build a new D4RValue if it is a constant (because the
+    // basetype is a weak pointer.
+    switch (rhs.d_arg1->get_kind()) {
+    case D4RValue::basetype:
+        d_arg1 = rhs.d_arg1;
+        break;
+    case D4RValue::constant:
+        d_arg1 = new D4RValue(*(rhs.d_arg1));
+        break;
+    default:
+        throw Error(malformed_expr, "found a filter clause with a function call.");
+    }
+
+    switch (rhs.d_arg2->get_kind()) {
+    case D4RValue::basetype:
+        d_arg2 = rhs.d_arg2;
+        break;
+    case D4RValue::constant:
+        d_arg2 = new D4RValue(*(rhs.d_arg2));
+        break;
+    default:
+        throw Error(malformed_expr, "found a filter clause with a function call.");
+    }
+#endif
+}
+
+/**
+ * @brief Get the value of this relational expression.
+ * This version of value() works for function clauses, although that's
+ * not supported by the syntax at this time.
+ * @param dmr The DMR to use when evaluating a function
+ * @return True if the clause is true, false otherwise.
+ */
+bool D4FilterClause::value(DMR &dmr)
+{
+	switch (d_op) {
+	case null:
+		throw InternalErr(__FILE__, __LINE__, "While evaluating a constraint filter clause: Found a null operator");
+
+	case less:
+	case greater:
+	case less_equal:
+	case greater_equal:
+	case equal:
+	case not_equal:
+	case match:
+		return cmp(d_op, d_arg1->value(dmr), d_arg2->value(dmr));
+
+	case ND:
+	case map:
+		throw InternalErr(__FILE__, __LINE__, "While evaluating a constraint filter clause: Filter operator not implemented");
+
+	default:
+		throw InternalErr(__FILE__, __LINE__, "While evaluating a constraint filter clause: Unrecognized operator");
+	}
+}
+
+/**
+ * @brief Get the value of this relational expression.
+ * This version of value() will not work for clauses where one of the
+ * rvalues is a function call. This is not currently supported by the
+ * DAP4 specification, so it's probably no great loss.
+ * @return True if the clause is true, false otherwise.
+ */
+bool D4FilterClause::value()
+{
+    switch (d_op) {
+    case null:
+        throw InternalErr(__FILE__, __LINE__, "While evaluating a constraint filter clause: Found a null operator");
+
+    case less:
+    case greater:
+    case less_equal:
+    case greater_equal:
+    case equal:
+    case not_equal:
+    case match:
+        return cmp(d_op, d_arg1->value(), d_arg2->value());
+
+    case ND:
+    case map:
+        throw InternalErr(__FILE__, __LINE__, "While evaluating a constraint filter clause: Filter operator not implemented");
+
+    default:
+        throw InternalErr(__FILE__, __LINE__, "While evaluating a constraint filter clause: Unrecognized operator");
+    }
+}
+
+// It may be better to use the code in the Byte, ..., classes that was
+// impl'd for DAP2 (with extensions). For now, test this and build the
+// rest of the filter implementation. But there is certainly a more _compact_
+// way to code this!
+//
+// Optimize the extraction of constant values.
+bool D4FilterClause::cmp(ops op, BaseType *arg1, BaseType *arg2)
+{
+    return arg1->d4_ops(arg2, op);
+}
+
+} // namespace libdap
diff --git a/D4FilterClause.h b/D4FilterClause.h
new file mode 100644
index 0000000..9b64327
--- /dev/null
+++ b/D4FilterClause.h
@@ -0,0 +1,202 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2015 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#ifndef _d4_filter_clause_h
+#define _d4_filter_clause_h
+
+#include <cassert>
+#include <vector>
+
+#include "ce_expr.tab.hh"   // Use the same codes for D4 as we use in DAP2
+
+namespace libdap
+{
+
+class D4Rvalue;
+class D4FilterClause;
+
+/**
+ * @brief List of DAP4 Filter Clauses
+ *
+ */
+class D4FilterClauseList
+{
+private:
+    std::vector<D4FilterClause *> d_clauses;
+
+    void m_duplicate(const D4FilterClauseList &src);
+
+public:
+    typedef std::vector<D4FilterClause *>::iterator iter;
+    typedef std::vector<D4FilterClause *>::const_iterator citer;
+
+    D4FilterClauseList() { }
+    D4FilterClauseList(const D4FilterClauseList &src) { m_duplicate(src); }
+
+    D4FilterClauseList(D4FilterClause *c) { add_clause(c); }
+
+    virtual ~D4FilterClauseList();
+
+    D4FilterClauseList &operator=(const D4FilterClauseList &rhs) {
+        if (this == &rhs)
+            return *this;
+
+        m_duplicate(rhs);
+
+        return *this;
+    }
+
+    void add_clause(D4FilterClause *c) {
+        d_clauses.push_back(c);
+    }
+
+    D4FilterClause *get_clause(unsigned int i) {
+        return d_clauses.at(i);
+    }
+
+    citer cbegin() const { return d_clauses.begin(); }
+    citer cend() const { return d_clauses.end(); }
+
+    unsigned int size() const { return d_clauses.size(); }
+
+    // get the clause value; this version supports functional clauses
+    bool value(DMR &dmr);
+
+    bool value();
+};
+
+/**
+ * @brief DAP4 filter clauses
+ *
+ * The DAP4 constraint expression provides a way to filter the values of
+ * Sequences (and possibly arrays and coverages, although those are still
+ * more ideas than anything at this point). This class holds the operator
+ * and operands of one DAP4 constraint's filter clause. The object is built
+ * during the parse phase of the constraint evaluation but is not evaluated
+ * until the data are sent or interned (read into the DAP4 variable object
+ * so that they can be used as input to some process other than directly
+ * being sent to a remote client).
+ *
+ * For filter clauses that are to be applied to a Sequence, each D4RValue
+ * will either be a constant or a BaseType* that will reference one of the
+ * Sequences fields. The method 'value()' is effectively the evaluator for
+ * the clause and nominally reads values from the rvalue objects.
+ *
+ * @note Potential optimization: Because Sequences might have an optimized
+ * representation as a STL vector of some built in types, there could be a
+ * value() method that takes a value and compares it to the clause's constant
+ * value using the supplied op.
+ *
+ * @note The 'ND' and 'map' ops are 'still just an idea' parts.
+ */
+class D4FilterClause
+{
+public:
+	enum ops {
+		// Stock relops
+		null = 0,
+		less = SCAN_LESS,
+		greater = SCAN_GREATER,
+		less_equal = SCAN_LESS_EQL,
+		greater_equal = SCAN_GREATER_EQL,
+		equal = SCAN_EQUAL,
+		not_equal = SCAN_NOT_EQUAL,
+		// Regex match for strings
+		match = SCAN_REGEXP,
+		// The mapping operator; not sure if this will be implemented
+		map,
+		// No Data 'operator' for array filtering; may not be impl'd
+		ND
+	};
+
+private:
+    /** The operator */
+    ops d_op;
+
+    D4RValue *d_arg1, *d_arg2;
+
+    D4FilterClause() : d_op(null), d_arg1(0), d_arg2(0) { }
+
+    void m_duplicate(const D4FilterClause &rhs);
+
+    // These methods factor out first the first argument and then the
+    // second. I could write one really large cmp() for all of this...
+    //template<typename T> bool cmp(ops op, BaseType *arg1, T arg2);
+    bool cmp(ops op, BaseType *arg1, BaseType *arg2);
+
+    friend class D4FilterClauseList;
+
+public:
+    /**
+     * Build a D4FilterClause. The clause will take ownership of
+     * the two pointer arguments and delete them.
+     *
+     * @note When comparing an unsigned variable (UInt16) with a constant,
+     * at parse time (i.e., when the D4FilterClause is made) check that the
+     * constant is >= 0 and store it in an unsigned value at that time. This
+     * will avoid having to make the test repeatedly during filter evaluation.
+     *
+     * @note When parsing a constant, extract the value from the BaseType and
+     * store it in a local field, to avoid the overhead of extracting the
+     * value and looking up its type over an over.
+     *
+     * @param op The operator
+     * @param arg1 The left-hand operand
+     * @param arg2 The right-hand operand
+     */
+    D4FilterClause(const ops op, D4RValue *arg1, D4RValue *arg2) :
+    	d_op(op), d_arg1(arg1), d_arg2(arg2) {
+    	assert(op != null && "null operator");
+    	assert(arg1 && "null arg1");
+    	assert(arg2 && "null arg2");
+    }
+
+    D4FilterClause(const D4FilterClause &src) {
+        m_duplicate(src);
+    }
+
+    D4FilterClause &operator=(const D4FilterClause &rhs) {
+        if (this == &rhs)
+            return *this;
+
+        m_duplicate(rhs);
+
+        return *this;
+    }
+
+    virtual ~D4FilterClause() {
+    	delete d_arg1;
+    	delete d_arg2;
+    }
+
+    // get the clause value; this version supports functional clauses
+    bool value(DMR &dmr);
+
+    bool value();
+};
+
+} // namespace libdap
+
+#endif // _clause_h
diff --git a/D4Group.cc b/D4Group.cc
index 0b45e1f..b9f2757 100644
--- a/D4Group.cc
+++ b/D4Group.cc
@@ -23,6 +23,7 @@
 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
 
 #include "config.h"
+// #define DODS_DEBUG 1
 
 #include <iostream>
 #include <sstream>
@@ -30,8 +31,6 @@
 
 #include <stdint.h>
 
-//#define DODS_DEBUG
-
 #include "crc.h"
 
 #include "BaseType.h"
@@ -48,6 +47,13 @@
 
 #include "debug.h"
 
+/**
+ * Define this symbol iff we decide to include information about the
+ * byte order of the response (as sent from the server) so that the
+ * client can determine the correct CRC32 hash code. jhrg 1/4/16
+ */
+#undef INCLUDE_SOURCE_BYTE_ORDER
+
 namespace libdap {
 
 void D4Group::m_duplicate(const D4Group &g)
@@ -100,6 +106,10 @@ void D4Group::m_duplicate(const D4Group &g)
     to be created. The name may be omitted, which will create a
     nameless variable. This may be adequate for some applications.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Groups
+
+
     @param n A string containing the name of the variable.
 */
 D4Group::D4Group(const string &name)
@@ -110,6 +120,9 @@ D4Group::D4Group(const string &name)
     to be created and the dataset name from which this variable is being
     created. Used on server-side handlers.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Groups
+
     @param n A string containing the name of the variable.
     @param d A string containing the name of the dataset.
 */
@@ -430,11 +443,11 @@ D4Group::set_send_p(bool state)
 }
 
 void
-D4Group::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/)
+D4Group::intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval*/)
 {
     groupsIter g = d_groups.begin();
     while (g != d_groups.end())
-        (*g++)->intern_data(checksum/*, dmr, eval*/);
+        (*g++)->intern_data(/*checksum, dmr, eval*/);
 
     // Specialize how the top-level variables in any Group are sent; include
     // a checksum for them. A subset operation might make an interior set of
@@ -446,17 +459,26 @@ D4Group::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/)
 	for (Vars_iter i = d_vars.begin(); i != d_vars.end(); i++) {
 		// Only send the stuff in the current subset.
 		if ((*i)->send_p()) {
-			checksum.Reset();
-
-			(*i)->intern_data(checksum/*, dmr, eval*/);
-
+#if 0
+		    checksum.Reset();
+#endif
+			(*i)->intern_data(/*checksum, dmr, eval*/);
+#if 0
 			D4Attribute *a = new D4Attribute("DAP4_Checksum_CRC32", attr_str_c);
-		    ostringstream oss;
+
+			ostringstream oss;
 		    oss.setf(ios::hex, ios::basefield);
 		    oss << setfill('0') << setw(8) << checksum.GetCrc32();
-		    a->add_value(oss.str());
-			(*i)->attributes()->add_attribute_nocopy(a);
+            a->add_value(oss.str());
+#if INCLUDE_SOURCE_BYTE_ORDER
+	        if (um.is_source_big_endian())
+	            a->add_value("source:big-endian");
+	        else
+	            a->add_value("source:little-endian");
+#endif
+	        (*i)->attributes()->add_attribute_nocopy(a);
 			DBG(cerr << "CRC32: " << oss.str() << " for " << (*i)->name() << endl);
+#endif
 		}
 	}
 }
@@ -503,6 +525,7 @@ D4Group::serialize(D4StreamMarshaller &m, DMR &dmr, /*ConstraintEvaluator &eval,
 		if ((*i)->send_p()) {
 			m.reset_checksum();
 
+	        DBG(cerr << "Serializing variable " << (*i)->type_name() << " " << (*i)->name() << endl);
 			(*i)->serialize(m, dmr, /*eval,*/ filter);
 
 			DBG(cerr << "Wrote CRC32: " << m.get_checksum() << " for " << (*i)->name() << endl);
@@ -514,17 +537,25 @@ D4Group::serialize(D4StreamMarshaller &m, DMR &dmr, /*ConstraintEvaluator &eval,
 void D4Group::deserialize(D4StreamUnMarshaller &um, DMR &dmr)
 {
 	groupsIter g = d_groups.begin();
-	while (g != d_groups.end())
+	while (g != d_groups.end()) {
+        DBG(cerr << "Deserializing group " << (*g)->name() << endl);
 		(*g++)->deserialize(um, dmr);
-
+	}
 	// Specialize how the top-level variables in any Group are received; read
 	// their checksum and store the value in a magic attribute of the variable
 	for (Vars_iter i = d_vars.begin(); i != d_vars.end(); i++) {
+        DBG(cerr << "Deserializing variable " << (*i)->type_name() << " " << (*i)->name() << endl);
 		(*i)->deserialize(um, dmr);
 
 		D4Attribute *a = new D4Attribute("DAP4_Checksum_CRC32", attr_str_c);
 		string crc = um.get_checksum_str();
 		a->add_value(crc);
+#if INCLUDE_SOURCE_BYTE_ORDER
+		if (um.is_source_big_endian())
+		    a->add_value("source:big-endian");
+		else
+		    a->add_value("source:little-endian");
+#endif
 		DBG(cerr << "Read CRC32: " << crc << " for " << (*i)->name() << endl);
 		(*i)->attributes()->add_attribute_nocopy(a);
 	}
diff --git a/D4Group.h b/D4Group.h
index 2dfec5c..e99d509 100644
--- a/D4Group.h
+++ b/D4Group.h
@@ -132,7 +132,7 @@ public:
     virtual void set_read_p(bool state);
 
     // DAP4
-    virtual void intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/);
+    virtual void intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval*/);
     virtual void serialize(D4StreamMarshaller &m, DMR &dmr, /*ConstraintEvaluator &eval,*/ bool filter = false);
     virtual void deserialize(D4StreamUnMarshaller &um, DMR &dmr);
 
diff --git a/D4Maps.h b/D4Maps.h
index 5abce4a..cb782b8 100644
--- a/D4Maps.h
+++ b/D4Maps.h
@@ -35,6 +35,22 @@ namespace libdap {
 class Array;
 class XMLWriter;
 
+/**
+ * A 'Map' in DAP4 is an Array in the dataset that is used to provide the
+ * domain values for a Coverage (aka a Grid). These Maps are a more
+ * general case of the DAP2 'Map vectors' because a DAP4 Map can have N
+ * dimensions.
+ *
+ * Because the Maps can be shared by any or all of the Arrays in a dataset,
+ * they also correspond to the NetCDF/CF notion of a Shared Dimension.
+ *
+ * In this implementation of the D4Map, each Map has a name and two weak
+ * pointers, one to the Array that holds the domain values and one to the
+ * Array that uses the Map. Note that while Maps can be shared by Arrays,
+ * each Array has it's own collection f these D4Map objects. This makes
+ * processing constraints possible (because it is possible to write
+ * different constraints for two arrays that share Maps).
+ */
 class D4Map {
     std::string d_name;
     Array *d_array;		// the actual map data; weak pointer
@@ -62,10 +78,8 @@ public:
 };
 
 /**
- * Maps in DAP4 are simply the names of Dimensions. When a dimensioned
- * variable (i.e., an array) also has one or more 'maps,' then that
- * array is a 'grid' (the 'maps' define the domain of a sampled function
- * or a 'coverage').
+ * The D4Maps object holds pointers to all of the Maps used by
+ * a given Array.
  */
 class D4Maps {
 public:
@@ -94,6 +108,10 @@ public:
 
     D4Maps &operator=(const D4Maps &rhs);
 
+    /**
+     * Add a map. This does not test for duplicate names or Array pointers;
+     * It assumes that the caller has done that!
+     */
     void add_map(D4Map *map) {
     	d_maps.push_back(map);
     	// if the Map parent is not set, do so now
@@ -101,6 +119,20 @@ public:
     		d_maps.back()->set_parent(d_parent);
     }
 
+    void remove_map(D4Map *map) {
+        for (D4MapsIter i = d_maps.begin(), e = d_maps.end(); i != e; ++i) {
+            /* && (*i)->parent() == map->parent() */
+            // Don't test if the map->parent() matches - we only care about the name and array.
+            // This method is intended for processing CE array slices that are edge cases and
+            // is only called from code where we know map->parent() matches *i->parent().
+            // jhrg 4/12/16
+            if ((*i)->name() == map->name() && (*i)->array() == map->array()) {
+                d_maps.erase(i);
+                break;
+            }
+        }
+    }
+
     D4Map* get_map(int i) { return d_maps.at(i); }
 
     D4MapsIter map_begin() { return d_maps.begin(); }
diff --git a/D4Opaque.h b/D4Opaque.h
index e8dd220..8eea695 100644
--- a/D4Opaque.h
+++ b/D4Opaque.h
@@ -44,8 +44,8 @@ protected:
     dods_opaque d_buf;
 
 public:
-    D4Opaque(const std::string &n) : BaseType(n, dods_opaque_c), d_buf(0) { }
-    D4Opaque(const std::string &n, const std::string &d)  : BaseType(n, d, dods_opaque_c), d_buf(0) { }
+    D4Opaque(const std::string &n) : BaseType(n, dods_opaque_c, true /*is_dap4*/), d_buf(0) { }
+    D4Opaque(const std::string &n, const std::string &d)  : BaseType(n, d, dods_opaque_c, true /*is_dap4*/), d_buf(0) { }
 
     virtual ~D4Opaque()  { }
 
diff --git a/XMLWriter.h b/D4ParseError.h
similarity index 60%
copy from XMLWriter.h
copy to D4ParseError.h
index 4c80cca..c8eeda7 100644
--- a/XMLWriter.h
+++ b/D4ParseError.h
@@ -1,8 +1,10 @@
 
+// -*- mode: c++; c-basic-offset:4 -*-
+
 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
 // Access Protocol.
 
-// Copyright (c) 2010 OPeNDAP, Inc.
+// Copyright (c) 2012 OPeNDAP, Inc.
 // Author: James Gallagher <jgallagher at opendap.org>
 //
 // This library is free software; you can redistribute it and/or
@@ -20,44 +22,26 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 //
 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
-/*
- * XMLWriter.h
- *
- *  Created on: Jul 28, 2010
- *      Author: jimg
- */
-
-#ifndef XMLWRITER_H_
-#define XMLWRITER_H_
-
-#include <libxml/encoding.h>
-#include <libxml/xmlwriter.h>
 
-#include <string>
+#ifndef d4_parse_error_h
+#define d4_parse_error_h
 
-namespace libdap {
+#include "Error.h"
 
-class XMLWriter {
-private:
-    // Various xml writer stuff
-    xmlTextWriterPtr d_writer;
-    xmlBufferPtr d_doc_buf;
-    bool d_started;
-    bool d_ended;
-
-    std::string d_doc;
-
-    void m_cleanup() ;
+namespace libdap
+{
 
+/** Thrown when the DMR document cannot be parsed. */
+class D4ParseError : public Error
+{
 public:
-    XMLWriter(const std::string &pad = "    ");
-    virtual ~XMLWriter();
-
-    xmlTextWriterPtr get_writer() { return d_writer; }
-    const char *get_doc();
-    unsigned int get_doc_size();
+    D4ParseError() : Error("The DMR response document parse failed.")
+    {}
+    D4ParseError(const string &msg) :
+            Error(string("The DMR response document parse failed: ") + msg)
+    {}
 };
 
 } // namespace libdap
 
-#endif /* XMLWRITER_H_ */
+#endif // d4_parse_error_h
diff --git a/D4ParserSax2.cc b/D4ParserSax2.cc
index 7c2903e..abdee2d 100644
--- a/D4ParserSax2.cc
+++ b/D4ParserSax2.cc
@@ -330,7 +330,13 @@ bool D4ParserSax2::process_map(const char *name, const xmlChar **attrs, int nb_a
 	else					// get enclosing Group and lookup Map there
 		map_source = top_group()->find_map_source(map_name);
 
-	if (!map_source)
+	// Change: If the parser is in 'strict' mode (the default) and the Array named by
+	// the Map cannot be fond, it is an error. If 'strict' mode is false (permissive
+	// mode), then this is not an error. However, the Array referenced by the Map will
+	// be null. This is a change in the parser's behavior to accommodate requests for
+	// Arrays that include Maps that do not also include the Map(s) in the request.
+	// See https://opendap.atlassian.net/browse/HYRAX-98. jhrg 4/13/16
+	if (!map_source && d_strict)
 		throw Error("The Map '" + map_name + "' was not found while parsing the variable '" + a->name() + "'.");
 
 	a->maps()->add_map(new D4Map(map_name, map_source));
diff --git a/D4ParserSax2.h b/D4ParserSax2.h
index 2f123ce..2a75885 100644
--- a/D4ParserSax2.h
+++ b/D4ParserSax2.h
@@ -149,22 +149,10 @@ private:
 
     D4EnumDef *d_enum_def;
     D4EnumDef *enum_def();
-#if 0
-    {
-        if (!d_enum_def) d_enum_def = new D4EnumDef;
-        return d_enum_def;
-    }
-#endif
     void clear_enum_def() { d_enum_def = 0; }
 
     D4Dimension *d_dim_def;
     D4Dimension *dim_def();
-#if 0
-    {
-        if (!d_dim_def) d_dim_def = new D4Dimension;
-        return d_dim_def;
-    }
-#endif
     void clear_dim_def() { d_dim_def = 0; }
 
     // Accumulate stuff inside an 'OtherXML' DAP attribute here
@@ -188,6 +176,8 @@ private:
     bool d_debug;
     bool debug() const { return d_debug; }
 
+    bool d_strict;
+
     class XMLAttribute {
         public:
         string prefix;
@@ -267,7 +257,7 @@ public:
         other_xml(""), other_xml_depth(0), unknown_depth(0),
         error_msg(""), context(0),
         dods_attr_name(""), dods_attr_type(""),
-        char_data(""), root_ns(""), d_debug(false)
+        char_data(""), root_ns(""), d_debug(false), d_strict(true)
     {
         //xmlSAXHandler ddx_sax_parser;
         memset(&ddx_sax_parser, 0, sizeof(xmlSAXHandler));
@@ -290,6 +280,25 @@ public:
     void intern(const string &document, DMR *dest_dmr, bool debug = false);
     void intern(const char *buffer, int size, DMR *dest_dmr, bool debug = false);
 
+    /**
+     * @defgroup strict The 'strict' mode
+     * @{
+     * The strict mode of the parser is the default. In this mode any error
+     * will result in an exception and parsing will stop. When strict mode
+     * is set to false (forgiving mode?), some errors will be silently ignored.
+     * The list of allowed errors is:
+     *     The Array named by a Map element is not required to be in the DMR.
+     *     There are no other allowed errors at this time (4/13/16)
+     */
+
+    /** @brief Set the 'strict' mode to true or false. */
+    void set_strict(bool s) { d_strict = s; }
+    /** @brief Get the setting of the 'strict' mode.
+     * @return True or False.
+     */
+    bool get_strict() const { return d_strict; }
+    /** @} */
+
     static void dmr_start_document(void *parser);
     static void dmr_end_document(void *parser);
 
diff --git a/D4RValue.cc b/D4RValue.cc
index 629e7e4..e1ece71 100644
--- a/D4RValue.cc
+++ b/D4RValue.cc
@@ -25,7 +25,6 @@
 
 #include "config.h"
 
-#include <cassert>
 #include <iostream>
 
 #include "BaseType.h"
@@ -47,16 +46,39 @@
 
 #include "dods-datatypes.h"
 #include "dods-limits.h"
+#include "parser-util.h"
 #include "util.h"
 
 using namespace std;
 
 namespace libdap {
 
+void
+D4RValueList::m_duplicate(const D4RValueList &src)
+{
+    for (std::vector<D4RValue *>::const_iterator i = src.d_rvalues.begin(), e = src.d_rvalues.end(); i != e; ++i) {
+        D4RValue *rv = *i;
+        d_rvalues.push_back(new D4RValue(*rv));
+    }
+}
+
 D4RValueList::~D4RValueList()
 {
-	for (std::vector<D4RValue *>::iterator i = d_rvalues.begin(), e = d_rvalues.end(); i != e; ++i)
-		delete *i;
+    for (std::vector<D4RValue *>::iterator i = d_rvalues.begin(), e = d_rvalues.end(); i != e; ++i)
+        delete *i;
+}
+
+void
+D4RValue::m_duplicate(const D4RValue &src)
+{
+    d_value_kind = src.d_value_kind;
+
+    d_variable = src.d_variable;    // weak pointers
+
+    d_func = src.d_func;
+    d_args = (src.d_args != 0) ? new D4RValueList(*src.d_args) : 0; // deep copy these
+
+    d_constant = (src.d_constant != 0) ? src.d_constant->ptr_duplicate() : 0;
 }
 
 template<typename T, class DAP_TYPE>
@@ -183,7 +205,51 @@ D4RValue::~D4RValue() {
 	delete d_constant;
 }
 
-/** Return the BaseType * for a given RValue.
+/**
+ * @brief Build an appropriate RValue
+ *
+ * Look at the value in the string parameter and build an appropriate
+ * BaseType, use that as a constant and build an RValue. This can be used
+ * by the DAP4 parser directly to build the constants in filter clauses.
+ *
+ * @param cpps The string argument read by the parser.
+ * @return A D4RValue pointer.
+ */
+D4RValue *D4RValueFactory(std::string cpps)
+{
+    char *ptr;
+
+    // First check if the string is a uint64, ..., then convert it.
+    // Since the check_* function use the strtoull() functions, no
+    // need to test for errors when building the actual values.
+    if (check_uint64(cpps.c_str())) {
+        return new D4RValue(strtoull(cpps.c_str(), &ptr, 0));
+    }
+    else if (check_int64(cpps.c_str())) {
+        return new D4RValue(strtoll(cpps.c_str(), &ptr, 0));
+    }
+    else if (check_float64(cpps.c_str())) {
+#ifdef WIN32
+        return new D4RValue(w32strtod(cpps.c_str(), &ptr));
+#else
+        return new D4RValue(strtod(cpps.c_str(), &ptr));
+#endif
+    }
+    else {
+        return new D4RValue(cpps);
+    }
+}
+
+/**
+ * @brief Get the value for a RValue object
+ * Return the BaseType * for a given RValue. For a dataset variable, read the
+ * variable's value and, for a function, evaluate that function. Since read()
+ * is called for a dataset variable each time this method is called, if the
+ * variable is part of a Sequence, the next value in the sequence will be returned.
+ * However, since this code also sets the read_p property after calling read(),
+ * if the variable does not have a new value, read() will not be called (using the
+ * read_p property, the read() method is called only when the variable has a new
+ * value to be read.
  *
  * @note Unlike the DAP2 functions, we have an easier-to-follow memory model for
  * function values. The values (BaseType*) returned by this method will be packaged
@@ -191,6 +257,12 @@ D4RValue::~D4RValue() {
  * function result values will be deleted at that time; variables will not. Thus
  * Server Functions should always allocate storage for their return values.
  *
+ * @todo Could move the operation that wraps a constant in a BaseType to this method
+ * while providing other ways to access the value(s) (methods to determine if the
+ * rvalue is a constant and what DAP type it is, e.g.). This would provide an optimization
+ * for the filter evaluator which may access the values many times. We might also
+ * modify the server side functions so they could access constant values more efficiently.
+ *
  * @param dmr The DMR to pass to a function.
  * @return A BaseType* that holds the value.
  */
@@ -211,7 +283,41 @@ D4RValue::value(DMR &dmr)
 
 	default:
 		throw InternalErr(__FILE__, __LINE__, "Unknown rvalue type.");
-	};
+	}
+
+	return 0; // nullptr; added return to quiet warning. jhrg 3/24/15
+}
+
+/**
+ * @brief Get the value for a RValue object
+ *
+ * This version of value() will not work for function RValues, but has the advantage that
+ * it can be used more easily for the D4RValue objects built for, and stored in, D4Filter-
+ * Clause instances.
+ *
+ * @see D4RValue::value(DMR&)
+ * @return The value wrapped in a BaseType*
+ */
+BaseType *
+D4RValue::value()
+{
+    switch (d_value_kind) {
+    case basetype:
+        d_variable->read();
+        d_variable->set_read_p(true);
+        return d_variable;
+
+    case function:
+        throw Error(malformed_expr, "An expression that included a function call was used in a place where that won't work.");
+
+    case constant:
+        return d_constant;
+
+    default:
+        throw InternalErr(__FILE__, __LINE__, "Unknown rvalue type.");
+    }
+
+    return 0; // nullptr; added return to quiet warning. jhrg 3/24/15
 }
 
 } // namespace libdap
diff --git a/D4RValue.h b/D4RValue.h
index 845c398..826c4b1 100644
--- a/D4RValue.h
+++ b/D4RValue.h
@@ -27,6 +27,7 @@
 #define _D4RValue_h
 
 #include <vector>
+#include <string>
 
 #include <dods-datatypes.h>
 #include <D4Function.h>
@@ -35,21 +36,26 @@ namespace libdap
 {
 
 class BaseType;
-class D4Constant;
 class D4RValue;
 
+// Factory class to build RValue objects. User by the parser/ce-evaluator
+D4RValue *D4RValueFactory(std::string cpps);
+
 class D4RValueList
 {
 private:
 	std::vector<D4RValue *> d_rvalues;
 
+	void m_duplicate(const D4RValueList &src);
+
 public:
 	typedef std::vector<D4RValue *>::iterator iter;
 
 	D4RValueList() { }
+	D4RValueList(const D4RValueList &src) { m_duplicate(src); }
 	D4RValueList(D4RValue *rv) { add_rvalue(rv); }
 
-	~D4RValueList();
+	virtual ~D4RValueList();
 
 	void add_rvalue(D4RValue *rv) {
 		d_rvalues.push_back(rv);
@@ -66,33 +72,38 @@ public:
 
 };
 
-/** Holds the RValues for the D4 function parser
- *
+/**
+ * Holds the RValues for the D4 function parser and for the filter
+ * expression evaluator.
  */
 class D4RValue
 {
-private:
-    BaseType *d_variable;	// This is a weak pointer
+public:
+    enum value_kind {
+        unknown,
+        basetype,
+        function,
+        constant
+    };
 
-    D4Function d_func;  	// (weak) Pointer to a function returning BaseType *
-    D4RValueList *d_args;  	// Strong pointer to arguments to the function; delete
+private:
+    BaseType *d_variable;	// This is a weak pointer; do not delete
 
-    BaseType *d_constant;	// Strong pointer; delete
+    D4Function d_func;  	// (weak) pointer to a function returning BaseType *
+    D4RValueList *d_args;  	// pointer to arguments to the function; delete
 
-    enum value_kind {
-    	unknown,
-    	basetype,
-    	function,
-    	constant
-    };
+    BaseType *d_constant;	// pointer; delete.
 
     value_kind d_value_kind;
 
+    /** @brief Clone 'src' to 'this'. */
+    void m_duplicate(const D4RValue &src);
+
     friend class D4RValueList;
 
 public:
     D4RValue() : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(unknown) { }
-
+    D4RValue(const D4RValue &src) { m_duplicate(src); }
     D4RValue(BaseType *btp)  : d_variable(btp), d_func(0), d_args(0), d_constant(0), d_value_kind(basetype) { }
     D4RValue(D4Function f, D4RValueList *args)  : d_variable(0), d_func(f), d_args(args), d_constant(0), d_value_kind(function) { }
 
@@ -113,9 +124,31 @@ public:
 
     virtual ~D4RValue();
 
+    D4RValue &operator=(D4RValue &rhs) {
+        if (this == &rhs)
+            return *this;
+
+        m_duplicate(rhs);
+
+        return *this;
+    }
+
+    /**
+     * @brief What kind of thing holds the value
+     * Values in DAP4 constraints are either constants, dataset variables
+     * or function results. It might be nice to know the source of a
+     * given value in order to optimize the evaluation of certain kinds of
+     * expressions.
+     * @return The 'value_kind' of this value.
+     */
+    value_kind get_kind() const { return d_value_kind; }
+
     // This is the call that will be used to return the value of a function.
     // jhrg 3/10/14
-    BaseType *value(DMR &dmr);
+    virtual BaseType *value(DMR &dmr);
+    // And this optimizes value() for filters, where functions are not supported.
+    virtual BaseType *value();
+
 };
 
 } // namespace libdap
diff --git a/D4Sequence.cc b/D4Sequence.cc
index 4df1b92..7a9abd0 100644
--- a/D4Sequence.cc
+++ b/D4Sequence.cc
@@ -24,29 +24,20 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG
+
 #include <algorithm>
 #include <string>
 #include <sstream>
 
-//#define DODS_DEBUG
-//#define DODS_DEBUG2
-
-#include "Byte.h"
-#include "Int16.h"
-#include "UInt16.h"
-#include "Int32.h"
-#include "UInt32.h"
-#include "Float32.h"
-#include "Float64.h"
-#include "Str.h"
-#include "Url.h"
-#include "Array.h"
-#include "Structure.h"
 #include "D4Sequence.h"
 
 #include "D4StreamMarshaller.h"
 #include "D4StreamUnMarshaller.h"
 
+#include "D4RValue.h"
+#include "D4FilterClause.h"     // also contains D4FilterClauseList
+
 #include "debug.h"
 #include "Error.h"
 #include "InternalErr.h"
@@ -126,6 +117,9 @@ void D4Sequence::m_duplicate(const D4Sequence &s)
 
         d_values.push_back(dest);
     }
+
+    d_copy_clauses = s.d_copy_clauses;
+    d_clauses = (s.d_clauses != 0) ? new D4FilterClauseList(*s.d_clauses) : 0;    // deep copy if != 0
 }
 
 // Public member functions
@@ -139,7 +133,7 @@ void D4Sequence::m_duplicate(const D4Sequence &s)
 
  @brief The Sequence constructor. */
 D4Sequence::D4Sequence(const string &n) :
-        Constructor(n, dods_sequence_c, true /* is dap4 */), d_length(0) // , d_starting_row_number(-1), d_row_stride(1), d_ending_row_number(-1)
+        Constructor(n, dods_sequence_c, true /* is dap4 */), d_clauses(0), d_copy_clauses(true), d_length(0)
 {
 }
 
@@ -154,13 +148,12 @@ D4Sequence::D4Sequence(const string &n) :
 
  @brief The Sequence server-side constructor. */
 D4Sequence::D4Sequence(const string &n, const string &d) :
-        Constructor(n, d, dods_sequence_c, true /* is dap4 */), d_length(0) //, d_starting_row_number(-1), d_row_stride(1), d_ending_row_number(-1)
+        Constructor(n, d, dods_sequence_c, true /* is dap4 */), d_clauses(0), d_copy_clauses(true), d_length(0)
 {
 }
 
 /** @brief The Sequence copy constructor. */
-D4Sequence::D4Sequence(const D4Sequence &rhs) :
-        Constructor(rhs)
+D4Sequence::D4Sequence(const D4Sequence &rhs) : Constructor(rhs)
 {
     m_duplicate(rhs);
 }
@@ -186,6 +179,7 @@ static inline void delete_rows(D4SeqRow *bt_row_ptr)
 D4Sequence::~D4Sequence()
 {
     clear_local_data();
+    delete d_clauses;
 }
 
 void D4Sequence::clear_local_data()
@@ -214,7 +208,7 @@ D4Sequence::operator=(const D4Sequence &rhs)
  * @brief Read the next instance of the sequence
  * While the rest of the variables' read() methods are assumed to return the entire
  * variable in one call (modulo enhancements of the library to support streaming
- * large variables), this class assumes that the underlying data store is return
+ * large variables), this class assumes that the underlying data store is returning
  * data from a table of unknown size. Thus, D4Sequence::read() is assumed to return
  * one instance (or element or row) of the sequence per call and return true when the
  * EOF (end of the sequence) is reached.
@@ -225,7 +219,7 @@ D4Sequence::operator=(const D4Sequence &rhs)
  * This method always returns the next instance that satisfies the CE when 'filter'
  * is true.
  *
- * @note this method is called by D4Sequence::serialize() and it will evaluate the
+ * @note This method is called by D4Sequence::serialize() and it will evaluate the
  * CE for each set of values read.
  *
  * @param dmr
@@ -233,57 +227,42 @@ D4Sequence::operator=(const D4Sequence &rhs)
  * @param filter
  * @return False when read() indicates that the EOF was found, true otherwise.
  */
-bool D4Sequence::read_next_instance(/*DMR &dmr, ConstraintEvaluator &eval,*/bool filter)
+bool D4Sequence::read_next_instance(bool filter)
 {
     bool eof = false;
     bool done = false;
 
     do {
         eof = read();
-        // Advance the row number if ce_eval is false (we're not supposed to
-        // evaluate the selection) or both filter and the selection are
-        // true.
-        // FIXME CE's not supported for DAP4 yet. jhrg 10/11/13
-        filter = false;
-        if (!eof && (!filter /*|| eval.eval_selection(dmr, dataset()*/)) {
+        if (eof) {  // bail if EOF
+            continue;
+        }
+        // if we are supposed to filter and the clauses eval to true, we're done
+        else if (filter && d_clauses && d_clauses->value()) {
+            d_length++;
+            done = true;
+        }
+        // else if we're not supposed to filter or there are no clauses, we're done
+        else if (!filter || !d_clauses) {
             d_length++;
             done = true;
         }
+
+        // Set up the next call to get another row's worth of data
+        set_read_p(false);
+
     } while (!eof && !done);
 
-    DBG(cerr << "D4Sequence::read_next_instance eof: " << eof << endl);
     return !eof;
 }
 
-#if 0
-// Used the version in Constructor, which throws an exception because we should
-// not compute these for constructor types. In the case of Sequence, it requires
-// that the values all get read.
-/**
- * @brief Compute the checksum for a D4Sequence
- *
- * @param checksum
- * @param dmr
- * @param eval
- */
-void
-D4Sequence::compute_checksum(Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval)
+void D4Sequence::intern_data()
 {
-    // Read the data values, then serialize.
-    while (read_next_instance(dmr, eval, true)) {
-        for (Vars_iter i = d_vars.begin(), e = d_vars.end(); i != e; i++) {
-            if ((*i)->send_p()) {
-                (*i)->compute_checksum(checksum);
-            }
-        }
-    }
-}
-#endif
+    read_sequence_values(true);
 
-void D4Sequence::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/)
-{
+#if 0
     // Read the data values, then serialize.
-    while (read_next_instance(/*dmr, eval,*/true /*filter*/)) {
+    while (read_next_instance(true /*filter*/)) {
         D4SeqRow *row = new D4SeqRow;
         for (Vars_iter i = d_vars.begin(), e = d_vars.end(); i != e; i++) {
             if ((*i)->send_p()) {
@@ -293,14 +272,78 @@ void D4Sequence::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &e
                 // below in the nested for loops from triggering a second call to
                 // read().
                 row->back()->set_read_p(true);
-                // Do not compute the checksum for constructor types; those
-                // types will compute the checksum on the values they contain.
-                // TODO Check on this
-                if (!row->back()->is_constructor_type()) row->back()->compute_checksum(checksum);
             }
         }
         d_values.push_back(row);
     }
+
+    set_length(d_values.size());
+#endif
+}
+
+/**
+ * @brief Read a Sequence's value into memory
+ *
+ * This is a helper method for serialize() that enables the code
+ * to recursively read values for child sequences. This method assumes
+ * that the D4Sequence::read() method does not call itself recursively
+ * for child sequences, as is the case with DAP2 sequences. If you
+ * have a data store that requires the outer-most sequence to read
+ * values for its child sequences, you will need to specialize this
+ * method. See also the methods associated with the sequence values
+ * because unlike DAP2 sequences, in DAP4 the sequences hold all their
+ * values in memory before writing them out.
+ *
+ * @note We may revisit the idea that values must be held in memory
+ * before being written. That is a consequence of using a length prefix
+ * instead of a series of sentinel values.
+ *
+ * @param filter True if the/a file expression bound to this sequence
+ * should be evaluated.
+ * @see set_value()
+ */
+void D4Sequence::read_sequence_values(bool filter)
+{
+    DBG(cerr << __PRETTY_FUNCTION__ << " BEGIN" << endl);
+
+    if (read_p()) return;
+
+    // Read the data values, then serialize. NB: read_next_instance sets d_length
+    // evaluates the filter expression
+    while (read_next_instance(filter)) {
+        DBG(cerr << "read_sequence_values() - Adding row" << endl);
+        D4SeqRow* row = new D4SeqRow;
+        for (Vars_iter i = d_vars.begin(), e = d_vars.end(); i != e; i++) {
+            if ((*i)->send_p()) {
+                DBG(cerr << ":serialize() - reading data for " << (*i)->type_name() << " "  << (*i)->name() << endl);
+                if ((*i)->type() == dods_sequence_c) {
+                    DBG(cerr << "Reading child sequence values for " << (*i)->name() << endl);
+                    D4Sequence *d4s = static_cast<D4Sequence*>(*i);
+                    d4s->read_sequence_values(filter);
+                    d4s->d_copy_clauses = false;
+                    row->push_back(d4s->ptr_duplicate());
+                    d4s->d_copy_clauses = true;  // Must be sure to not break the object in general
+                    row->back()->set_read_p(true);
+                }
+                else {
+                    // store the variable's value.
+                    row->push_back((*i)->ptr_duplicate());
+                    // the copy should have read_p true to prevent the serialize() call
+                    // below in the nested for loops from triggering a second call to
+                    // read().
+                    row->back()->set_read_p(true);
+                }
+            }
+        }
+
+        // When specializing this, use set_value()
+        d_values.push_back(row);
+        DBG(cerr << " read_sequence_values() - Row completed" << endl);
+    }
+
+    set_length(d_values.size());
+
+    DBGN(cerr << __PRETTY_FUNCTION__ << " END added " << d_values.size() << endl);
 }
 
 /**
@@ -324,79 +367,31 @@ void D4Sequence::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &e
  */
 void D4Sequence::serialize(D4StreamMarshaller &m, DMR &dmr, bool filter)
 {
-    // Read the data values, then serialize. NB: read_next_instance sets d_length.
-    while (read_next_instance(filter)) {
-        D4SeqRow *row = new D4SeqRow;
-        for (Vars_iter i = d_vars.begin(), e = d_vars.end(); i != e; i++) {
-            if ((*i)->send_p()) {
-                // store the variable's value.
-                row->push_back((*i)->ptr_duplicate());
-                // the copy should have read_p true to prevent the serialize() call
-                // below in the nested for loops from triggering a second call to
-                // read().
-                row->back()->set_read_p(true);
-            }
-        }
-        d_values.push_back(row);
-        DBG(cerr << "D4Sequence::serialize Added row" << endl);
-    }
+    DBGN(cerr << __PRETTY_FUNCTION__ << " BEGIN" << endl);
 
-    // write D4Sequecne::length(); don't include the length in the checksum
-    m.put_count(d_length);
-    DBG(cerr << "D4Sequence::serialize count: " << d_length << endl);
-
-    // By this point the d_values object holds all and only the values to be sent;
-    // use the serialize methods to send them (but no need to test send_p).
-    for (D4SeqValues::iterator i = d_values.begin(), e = d_values.end(); i != e; ++i) {
-        for (D4SeqRow::iterator j = (*i)->begin(), f = (*i)->end(); j != f; ++j) {
-            (*j)->serialize(m, dmr, /*eval,*/false);
-        }
-    }
-
-#ifdef CLEAR_LOCAL_DATA
-    clear_local_data();
-#endif
-
-}
-
-#if 0
-void D4Sequence::serialize_no_release(D4StreamMarshaller &m, DMR &dmr, bool filter)
-{
-    // Read the data values, then serialize. NB: read_next_instance sets d_length.
-    while (read_next_instance(filter)) {
-        D4SeqRow *row = new D4SeqRow;
-        for (Vars_iter i = d_vars.begin(), e = d_vars.end(); i != e; i++) {
-            if ((*i)->send_p()) {
-                // store the variable's value.
-                row->push_back((*i)->ptr_duplicate());
-                // the copy should have read_p true to prevent the serialize() call
-                // below in the nested for loops from triggering a second call to
-                // read().
-                row->back()->set_read_p(true);
-            }
-        }
-        d_values.push_back(row);
-        DBG(cerr << "D4Sequence::serialize Added row" << endl);
-    }
+    // Read the data values, then serialize. NB: read_next_instance sets d_length
+    // evaluates the filter expression
+    read_sequence_values(filter);
 
     // write D4Sequecne::length(); don't include the length in the checksum
     m.put_count(d_length);
-    DBG(cerr << "D4Sequence::serialize count: " << d_length << endl);
 
     // By this point the d_values object holds all and only the values to be sent;
     // use the serialize methods to send them (but no need to test send_p).
     for (D4SeqValues::iterator i = d_values.begin(), e = d_values.end(); i != e; ++i) {
         for (D4SeqRow::iterator j = (*i)->begin(), f = (*i)->end(); j != f; ++j) {
-            (*j)->serialize(m, dmr, /*eval,*/false);
+           (*j)->serialize(m, dmr, /*eval,*/false);
         }
     }
+
+    DBGN(cerr << __PRETTY_FUNCTION__ << " END" << endl);
 }
-#endif
 
 void D4Sequence::deserialize(D4StreamUnMarshaller &um, DMR &dmr)
 {
-    set_length(um.get_count());
-    DBG(cerr << "D4Sequence::deserialize count: " << d_length << endl);
+    int64_t um_count = um.get_count();
+
+    set_length(um_count);
 
     for (int64_t i = 0; i < d_length; ++i) {
         D4SeqRow *row = new D4SeqRow;
@@ -408,6 +403,23 @@ void D4Sequence::deserialize(D4StreamUnMarshaller &um, DMR &dmr)
     }
 }
 
+/**
+ * @brief Access the filter clauses for this D4Sequence
+ *
+ * When a filter is supplied with a DAP4 constraint, the expression is
+ * parsed and one or more D4FilterClause objects are built and stored in
+ * a D4FilterClauseList bound to the D4Sequence to be filtered.
+ *
+ * @return A reference to this D4Sequence's filter clause list
+ * @see D4FilterClauseList
+ */
+D4FilterClauseList & D4Sequence::clauses()
+{
+    if (!d_clauses) d_clauses = new D4FilterClauseList();
+    return *d_clauses;
+}
+
+
 #if INDEX_SUBSETTING
 /** Set the start, stop and stride for a row-number type constraint.
  This should be used only when the sequence is constrained using the
@@ -542,6 +554,8 @@ void D4Sequence::print_val_by_rows(ostream &out, string space, bool print_decl_p
 
 void D4Sequence::print_val(ostream &out, string space, bool print_decl_p)
 {
+    DBG(cerr << name() << " isa " << type_name() << endl);
+
     print_val_by_rows(out, space, print_decl_p, false);
 }
 
diff --git a/D4Sequence.h b/D4Sequence.h
index 26006c0..4b606f5 100644
--- a/D4Sequence.h
+++ b/D4Sequence.h
@@ -36,6 +36,7 @@ class Crc32;
 namespace libdap
 {
 class BaseType;
+class D4FilterClauseList;
 
 /** The type BaseTypeRow is used to store single rows of values in an
     instance of D4Sequence. Values are stored in instances of BaseType. */
@@ -44,6 +45,14 @@ typedef vector<BaseType *> D4SeqRow;
 /** This type holds all of the values of a D4Sequence. */
 typedef vector<D4SeqRow *> D4SeqValues;
 
+/** The type BaseTypeRow is used to store single rows of values in an
+ instance of Sequence. Values are stored in instances of BaseType. */
+typedef vector<BaseType *> BaseTypeRow;
+
+/** This type holds all of the values of a Sequence. */
+typedef vector<BaseTypeRow *> SequenceValues;
+
+
 /** This is the interface for the class D4Sequence. A sequence contains
     a single set of variables, all at the same lexical level just like
     a Structure.  Like a Structure, a D4Sequence may contain other
@@ -124,6 +133,16 @@ typedef vector<D4SeqRow *> D4SeqValues;
 class D4Sequence: public Constructor
 {
 private:
+    // This may be zero (nullptr) but the accessor (clauses()) allocates an
+    // instance if that is the case.
+    D4FilterClauseList *d_clauses;
+
+    // Use this to control if ptr_duplicate(), ..., copy the filter clauses.
+    // Because the values of a child sequence are held in copies of the Seq
+    // object they clauses will bound to the 'master' instance will be copied
+    // but the copies will never be used. This field can be used to control
+    // that. ...purely an optimization.
+    bool d_copy_clauses;
 
 protected:
     // This holds the values of the sequence. Values are stored in
@@ -142,6 +161,10 @@ protected:
 
     void m_duplicate(const D4Sequence &s);
 
+    // Specialize this if you have a data source that requires read()
+    // recursively call itself for child sequences.
+    void read_sequence_values(bool filter);
+
     friend class D4SequenceTest;
 
 public:
@@ -175,7 +198,7 @@ public:
      */
     virtual void set_length(int count) { d_length = (int64_t)count; }
 
-    virtual bool read_next_instance(/*DMR &dmr, ConstraintEvaluator &eval,*/ bool filter);
+    virtual bool read_next_instance(bool filter);
 
     virtual void intern_data(ConstraintEvaluator &, DDS &) {
     	throw InternalErr(__FILE__, __LINE__, "Not implemented for DAP4");
@@ -188,13 +211,12 @@ public:
     }
 
     // DAP4
-    virtual void intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/);
+    virtual void intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval*/);
     virtual void serialize(D4StreamMarshaller &m, DMR &dmr, /*ConstraintEvaluator &eval,*/ bool filter = false);
-#if 0
-    virtual void serialize_no_release(D4StreamMarshaller &m, DMR &dmr, bool filter = false);
-#endif
     virtual void deserialize(D4StreamUnMarshaller &um, DMR &dmr);
 
+    D4FilterClauseList &clauses();
+
 #if INDEX_SUBSETTING
     /** Return the starting row number if the sequence was constrained using
         row numbers (instead of, or in addition to, a relational constraint).
@@ -250,13 +272,24 @@ public:
 
     /**
      * @brief Get the values for this D4Sequence
-     * This method does not perform a deep copy of the values so the caller
-     * should not free the BaseType*s in this vector of vectors since this
-     * object will free those in its destructor.
-     * @return The entire vector of vector of BaseType*
+     * This method returns a reference to the values held by the instance.
+     * You should make sure that the instance really holds values before
+     * calling it! Do not free the BaseType*s contained in the vector of
+     * vectors.
+     * @return A reference tp the vector of vector of BaseType*
      */
     virtual D4SeqValues value() const { return d_values; }
 
+    /**
+     * @brief Get the sequence values by reference
+     * This method returns a reference to the D4Sequence's values,
+     * eliminating the copy of all the pointers. For large sequences,
+     * that could be a substantial number of values (even though
+     * they are 'just' pointers).
+     * @return A reference to the vector of vector of BaseType*
+     */
+    virtual D4SeqValues &value_ref() { return d_values; }
+
     virtual D4SeqRow *row_value(size_t row);
     virtual BaseType *var_value(size_t row, const string &name);
     virtual BaseType *var_value(size_t row, size_t i);
diff --git a/D4StreamMarshaller.cc b/D4StreamMarshaller.cc
index 076bfc6..d881b28 100644
--- a/D4StreamMarshaller.cc
+++ b/D4StreamMarshaller.cc
@@ -28,6 +28,7 @@
 
 #include <byteswap.h>
 #include <cassert>
+#include <cstring>
 
 #include <iostream>
 #include <sstream>
@@ -36,7 +37,14 @@
 
 //#define DODS_DEBUG 1
 
+#ifdef HAVE_PTHREAD_H
+#include <pthread.h>
+#endif
+
 #include "D4StreamMarshaller.h"
+#ifdef USE_POSIX_THREADS
+#include "MarshallerThread.h"
+#endif
 
 #if USE_XDR_FOR_IEEE754_ENCODING
 #include "XDRUtils.h"
@@ -127,16 +135,11 @@ inline uint8_t* WriteVarint64ToArrayInline(uint64_t value, uint8_t* target) {
 #endif
 
 #if USE_XDR_FOR_IEEE754_ENCODING
-/**
- * @todo recode this so that it does not copy data to a new buffer but
- * serializes directly to the stream (element by element) and compare the
- * run times.
- */
 void D4StreamMarshaller::m_serialize_reals(char *val, unsigned int num, int width, Type type)
 {
     dods_uint64 size = num * width;
-    // char *buf = (char*)malloc(size); jhrg 7/23/13
-    vector<char> buf(size);
+
+    char *buf = new char[size];
     XDR xdr;
     xdrmem_create(&xdr, &buf[0], size, XDR_ENCODE);
     try {
@@ -164,14 +167,26 @@ void D4StreamMarshaller::m_serialize_reals(char *val, unsigned int num, int widt
                 }
             }
         }
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, size);
 
+        // The child thread will delete buf when it's done
+        xdr_destroy(&xdr);
+#else
         d_out.write(&buf[0], size);
+        xdr_destroy(&xdr);
+        delete [] buf;
+#endif
     }
     catch (...) {
         xdr_destroy(&xdr);
+        delete [] buf;
+
         throw;
     }
-    xdr_destroy(&xdr);
 }
 #endif
 
@@ -183,7 +198,7 @@ void D4StreamMarshaller::m_serialize_reals(char *val, unsigned int num, int widt
  * @param write_data If true, write data values. True by default
  */
 D4StreamMarshaller::D4StreamMarshaller(ostream &out, bool write_data) :
-        d_out(out), d_write_data(write_data)
+        d_out(out), d_write_data(write_data), tm(0)
 {
 	assert(sizeof(std::streamsize) >= sizeof(int64_t));
 
@@ -194,6 +209,10 @@ D4StreamMarshaller::D4StreamMarshaller(ostream &out, bool write_data) :
     xdrmem_create(&d_scalar_sink, d_ieee754_buf, sizeof(dods_float64), XDR_ENCODE);
 #endif
 
+#ifdef USE_POSIX_THREADS
+    tm = new MarshallerThread;
+#endif
+
     // This will cause exceptions to be thrown on i/o errors. The exception
     // will be ostream::failure
     out.exceptions(ostream::failbit | ostream::badbit);
@@ -204,6 +223,8 @@ D4StreamMarshaller::~D4StreamMarshaller()
 #if USE_XDR_FOR_IEEE754_ENCODING
     xdr_destroy(&d_scalar_sink);
 #endif
+
+    delete tm;
 }
 
 /** Initialize the checksum buffer. This resets the checksum calculation.
@@ -241,9 +262,16 @@ string D4StreamMarshaller::get_checksum()
 void D4StreamMarshaller::put_checksum()
 {
     Crc32::checksum chk = d_checksum.GetCrc32();
+#ifdef USE_POSIX_THREADS
+    Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
     d_out.write(reinterpret_cast<char*>(&chk), sizeof(Crc32::checksum));
 }
 
+/**
+ * Update the current CRC 32 checksum value. Calling this with len equal to
+ * zero has no effect on the checksum value.
+ */
 void D4StreamMarshaller::checksum_update(const void *data, unsigned long len)
 {
     d_checksum.AddData(reinterpret_cast<const uint8_t*>(data), len);
@@ -255,7 +283,10 @@ void D4StreamMarshaller::put_byte(dods_byte val)
 
     if (d_write_data) {
         DBG( std::cerr << "put_byte: " << val << std::endl );
-
+#ifdef USE_POSIX_THREADS
+        // make sure that a child thread is not writing to d_out.
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_byte));
     }
 }
@@ -266,7 +297,9 @@ void D4StreamMarshaller::put_int8(dods_int8 val)
 
     if (d_write_data) {
         DBG( std::cerr << "put_int8: " << val << std::endl );
-
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_int8));
     }
 }
@@ -275,24 +308,36 @@ void D4StreamMarshaller::put_int16(dods_int16 val)
 {
     checksum_update(&val, sizeof(dods_int16));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_int16));
+    }
 }
 
 void D4StreamMarshaller::put_int32(dods_int32 val)
 {
     checksum_update(&val, sizeof(dods_int32));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_int32));
+    }
 }
 
 void D4StreamMarshaller::put_int64(dods_int64 val)
 {
     checksum_update(&val, sizeof(dods_int64));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<const char*>(&val), sizeof(dods_int64));
+    }
 }
 
 void D4StreamMarshaller::put_float32(dods_float32 val)
@@ -302,8 +347,12 @@ void D4StreamMarshaller::put_float32(dods_float32 val)
 
     checksum_update(&val, sizeof(dods_float32));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
     	d_out.write(reinterpret_cast<const char*>(&val), sizeof(dods_float32));
+    }
 
 #else
     // This code uses XDR to convert from a local representation to IEEE754;
@@ -313,6 +362,9 @@ void D4StreamMarshaller::put_float32(dods_float32 val)
 
     if (d_write_data) {
         if (std::numeric_limits<float>::is_iec559 ) {
+#ifdef USE_POSIX_THREADS
+            Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
             d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_float32));
         }
         else {
@@ -331,7 +383,9 @@ void D4StreamMarshaller::put_float32(dods_float32 val)
                 dods_int32 *i = reinterpret_cast<dods_int32*>(&d_ieee754_buf);
                 *i = bswap_32(*i);
             }
-
+#ifdef USE_POSIX_THREADS
+            Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
             d_out.write(d_ieee754_buf, sizeof(dods_float32));
         }
     }
@@ -345,14 +399,22 @@ void D4StreamMarshaller::put_float64(dods_float64 val)
 
     checksum_update(&val, sizeof(dods_float64));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
     	d_out.write(reinterpret_cast<const char*>(&val), sizeof(dods_float64));
+    }
 
 #else
     // See the comment above in put_float32()
     if (d_write_data) {
-        if (std::numeric_limits<double>::is_iec559)
-            d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_float64));
+        if (std::numeric_limits<double>::is_iec559) {
+#ifdef USE_POSIX_THREADS
+            Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
+            d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_float64));}
+    }
         else {
             if (!xdr_setpos(&d_scalar_sink, 0))
                 throw InternalErr(__FILE__, __LINE__, "Error serializing a Float64 variable");
@@ -370,6 +432,9 @@ void D4StreamMarshaller::put_float64(dods_float64 val)
                 *i = bswap_64(*i);
             }
 
+#ifdef USE_POSIX_THREADS
+            Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
             d_out.write(d_ieee754_buf, sizeof(dods_float64));
         }
     }
@@ -380,24 +445,36 @@ void D4StreamMarshaller::put_uint16(dods_uint16 val)
 {
     checksum_update(&val, sizeof(dods_uint16));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_uint16));
+    }
 }
 
 void D4StreamMarshaller::put_uint32(dods_uint32 val)
 {
     checksum_update(&val, sizeof(dods_uint32));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_uint32));
+    }
 }
 
 void D4StreamMarshaller::put_uint64(dods_uint64 val)
 {
     checksum_update(&val, sizeof(dods_uint64));
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
         d_out.write(reinterpret_cast<char*>(&val), sizeof(dods_uint64));
+    }
 }
 
 /**
@@ -410,6 +487,9 @@ void D4StreamMarshaller::put_uint64(dods_uint64 val)
  */
 void D4StreamMarshaller::put_count(int64_t count)
 {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
 	d_out.write(reinterpret_cast<const char*>(&count), sizeof(int64_t));
 }
 
@@ -419,7 +499,9 @@ void D4StreamMarshaller::put_str(const string &val)
 
     if (d_write_data) {
     	int64_t len = val.length();
-
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+#endif
     	d_out.write(reinterpret_cast<const char*>(&len), sizeof(int64_t));
         d_out.write(val.data(), val.length());
     }
@@ -432,11 +514,26 @@ void D4StreamMarshaller::put_url(const string &val)
 
 void D4StreamMarshaller::put_opaque_dap4(const char *val, int64_t len)
 {
+    assert(val);
+    assert(len >= 0);
+
     checksum_update(val, len);
 
     if (d_write_data) {
-    	d_out.write(reinterpret_cast<const char*>(&len), sizeof(int64_t));
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        d_out.write(reinterpret_cast<const char*>(&len), sizeof(int64_t));
+
+        char *byte_buf = new char[len];
+        memcpy(byte_buf, val, len);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, byte_buf, len);
+#else
+        d_out.write(reinterpret_cast<const char*>(&len), sizeof(int64_t));
         d_out.write(val, len);
+#endif
     }
 }
 
@@ -447,10 +544,24 @@ void D4StreamMarshaller::put_opaque_dap4(const char *val, int64_t len)
  */
 void D4StreamMarshaller::put_vector(char *val, int64_t num_bytes)
 {
+    assert(val);
+    assert(num_bytes >= 0);
+
     checksum_update(val, num_bytes);
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        char *buf = new char[num_bytes];
+        memcpy(buf, val, num_bytes);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, num_bytes);
+#else
         d_out.write(val, num_bytes);
+#endif
+    }
 }
 
 void D4StreamMarshaller::put_vector(char *val, int64_t num_elem, int elem_size)
@@ -486,8 +597,19 @@ void D4StreamMarshaller::put_vector(char *val, int64_t num_elem, int elem_size)
 
     checksum_update(val, bytes);
 
-    if (d_write_data)
-    	d_out.write(val, bytes);
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        char *buf = new char[bytes];
+        memcpy(buf, val, bytes);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, bytes);
+#else
+        d_out.write(val, bytes);
+#endif
+    }
 }
 
 /**
@@ -516,8 +638,19 @@ void D4StreamMarshaller::put_vector_float32(char *val, int64_t num_elem)
 
     checksum_update(val, num_elem);
 
-    if (d_write_data)
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        char *buf = new char[num_elem];
+        memcpy(buf, val, num_elem);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, num_elem);
+#else
     	d_out.write(val, num_elem);
+#endif
+    }
 
 #else
 	assert(val);
@@ -538,7 +671,17 @@ void D4StreamMarshaller::put_vector_float32(char *val, int64_t num_elem)
             m_serialize_reals(val, num_elem, 4, type);
         }
         else {
-            d_out.write(val, bytes);
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        char *buf = new char[bytes];
+        memcpy(buf, val, bytes);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, bytes);
+#else
+        d_out.write(val, bytes);
+#endif
         }
     }
 #endif
@@ -566,8 +709,19 @@ void D4StreamMarshaller::put_vector_float64(char *val, int64_t num_elem)
 
     checksum_update(val, num_elem);
 
-    if (d_write_data)
-    	d_out.write(val, num_elem);
+    if (d_write_data) {
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        char *buf = new char[num_elem];
+        memcpy(buf, val, num_elem);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, num_elem);
+#else
+        d_out.write(val, num_elem);
+#endif
+    }
 #else
 	assert(val);
 	assert(num_elem >= 0);
@@ -587,7 +741,17 @@ void D4StreamMarshaller::put_vector_float64(char *val, int64_t num_elem)
             m_serialize_reals(val, num_elem, 8, type);
         }
         else {
-            d_out.write(val, bytes);
+#ifdef USE_POSIX_THREADS
+        Locker lock(tm->get_mutex(), tm->get_cond(), tm->get_child_thread_count());
+
+        char *buf = new char[bytes];
+        memcpy(buf, val, bytes);
+
+        tm->increment_child_thread_count();
+        tm->start_thread(MarshallerThread::write_thread, d_out, buf, bytes);
+#else
+        d_out.write(val, bytes);
+#endif
         }
     }
 #endif
@@ -596,6 +760,10 @@ void D4StreamMarshaller::put_vector_float64(char *val, int64_t num_elem)
 
 void D4StreamMarshaller::put_vector_part(char *val, unsigned int num, int width, Type type)
 {
+    assert(val);
+    assert(num >= 0);
+    assert(width > 0);
+
     switch(type) {
     case dods_byte_c:
     case dods_char_c:
diff --git a/D4StreamMarshaller.h b/D4StreamMarshaller.h
index 3fc0701..3d2247c 100644
--- a/D4StreamMarshaller.h
+++ b/D4StreamMarshaller.h
@@ -56,6 +56,7 @@
 namespace libdap {
 
 class Vector;
+class MarshallerThread;
 
 /** @brief Marshaller that knows how to marshal/serialize dap data objects
  * to a C++ iostream using DAP4's receiver-makes-right scheme. This code
@@ -80,6 +81,7 @@ private:
 
     Crc32 d_checksum;
 
+    MarshallerThread *tm;
 
     // These are private so they won't ever get used.
     D4StreamMarshaller();
diff --git a/D4StreamUnMarshaller.h b/D4StreamUnMarshaller.h
index f21d01f..310158b 100644
--- a/D4StreamUnMarshaller.h
+++ b/D4StreamUnMarshaller.h
@@ -51,6 +51,7 @@
 #include "UnMarshaller.h"
 #include "InternalErr.h"
 
+#include "util.h"
 #include "debug.h"
 
 using std::istream;
@@ -90,6 +91,19 @@ public:
 
     void set_twiddle_bytes(bool twiddle) { d_twiddle_bytes = twiddle; }
 
+    /**
+     * @brief Is the data source we are reading from a big-endian machine?
+     * We need this because the value of the CRC32 checksum is dependent on
+     * byte order.
+     *
+     * @note This is somewhat tortured logic, but if this host is big-endian and
+     * twiddle_bytes is not true, then the remote host must be big-endian. Similarly,
+     * if this host is not big-endian and twiddle_bytes is true, then the remote
+     * host must be big-endian
+     */
+    bool is_source_big_endian() const { return (is_host_big_endian() && !d_twiddle_bytes)
+                                               || (!is_host_big_endian() && d_twiddle_bytes); }
+
     Crc32::checksum get_checksum();
     string get_checksum_str();
     int64_t get_count();
diff --git a/DAPCache3.cc b/DAPCache3.cc
new file mode 100644
index 0000000..d0dadd0
--- /dev/null
+++ b/DAPCache3.cc
@@ -0,0 +1,1003 @@
+// DAPCache3.cc
+
+// This file was originally part of bes, A C++ back-end server
+// implementation framework for the OPeNDAP Data Access Protocol.
+// Copied to libdap. This is used to cache responses built from
+// functional CE expressions.
+
+// Copyright (c) 2012 OPeNDAP, Inc
+// Author: James Gallagher <jgallagher at opendap.org>
+// Patrick West <pwest at ucar.edu> and Jose Garcia <jgarcia at ucar.edu>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact University Corporation for Atmospheric Research at
+// 3080 Center Green Drive, Boulder, CO 80301
+
+#include "config.h"
+
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <fcntl.h>
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <string>
+#include <sstream>
+#include <vector>
+#include <cstring>
+#include <cerrno>
+
+#include "DAPCache3.h"
+
+//#define DODS_DEBUG
+
+#include "InternalErr.h"
+#include "DapIndent.h"
+#include "debug.h"
+
+#if 0
+#include "BESSyntaxUserError.h"
+#include "BESInternalError.h"
+
+#include "TheBESKeys.h"
+#include "BESDebug.h"
+#include "BESLog.h"
+#endif
+using namespace std;
+using namespace libdap;
+
+namespace libdap {
+
+// conversion factor
+static const unsigned long long BYTES_PER_MEG = 1048576ULL;
+
+// Max cache size in megs, so we can check the user input and warn.
+// 2^64 / 2^20 == 2^44
+static const unsigned long long MAX_CACHE_SIZE_IN_MEGABYTES = (1ULL << 44);
+
+DAPCache3 *DAPCache3::d_instance = 0;
+
+
+/** @brief Private constructor that takes as arguments keys to the cache directory,
+ * file prefix, and size of the cache to be looked up a configuration file
+ *
+ * The keys specified are looked up in the specified keys object. If not
+ * found or not set correctly then an exception is thrown. I.E., if the
+ * cache directory is empty, the size is zero, or the prefix is empty.
+ *
+ * @param cache_dir_key key to look up in the keys file to find cache dir
+ * @param prefix_key key to look up in the keys file to find the cache prefix
+ * @param size_key key to look up in the keys file to find the cache size (in MBytes)
+ * @throws BESSyntaxUserError if keys not set, cache dir or prefix empty,
+ * size is 0, or if cache dir does not exist.
+ */
+DAPCache3::DAPCache3(const string &cache_dir, const string &prefix, unsigned long long size) :
+        d_cache_dir(cache_dir), d_prefix(prefix), d_max_cache_size_in_bytes(size)
+{
+    m_initialize_cache_info();
+}
+
+void DAPCache3::delete_instance() {
+    DBG(cerr << "DAPCache3::delete_instance() - Deleting singleton DAPCache3 instance." << endl);
+    delete d_instance;
+    d_instance = 0;
+}
+
+#if 0
+// The BESCache3 code is a singleton that assumes it's running in the absence of threads but that
+// the cache is shared by several processes, each of which have their own instance of BESCache3.
+/** Get an instance of the BESCache3 object. This class is a singleton, so the
+ * first call to any of three 'get_instance()' methods makes an instance and subsequent call
+ * return a pointer to that instance.
+ *
+ * @param keys The DAPKeys object (hold various configuration parameters)
+ * @param cache_dir_key Key to use to get the value of the cache directory
+ * @param prefix_key Key for the item/file prefix. Each file added to the cache uses this
+ * as a prefix so cached items can be easily identified when /tmp is used for the cache.
+ * @param size_key How big should the cache be, in megabytes
+ * @return A pointer to a BESCache3 object
+ */
+BESCache3 *
+BESCache3::get_instance(BESKeys *keys, const string &cache_dir_key, const string &prefix_key, const string &size_key)
+{
+    if (d_instance == 0)
+        d_instance = new BESCache3(keys, cache_dir_key, prefix_key, size_key);
+
+    return d_instance;
+}
+#endif
+/** Get an instance of the DAPCache3 object. This class is a singleton, so the
+ * first call to any of three 'get_instance()' methods makes an instance and subsequent calls
+ * return a pointer to that instance.
+ *
+ *
+ * @param cache_dir_key Key to use to get the value of the cache directory
+ * @param prefix_key Key for the item/file prefix. Each file added to the cache uses this
+ * as a prefix so cached items can be easily identified when /tmp is used for the cache.
+ * @param size_key How big should the cache be, in megabytes
+ * @return A pointer to a DAPCache3 object
+ */
+DAPCache3 *
+DAPCache3::get_instance(const string &cache_dir, const string &prefix, unsigned long long size)
+{
+    if (d_instance == 0){
+        d_instance = new DAPCache3(cache_dir, prefix, size);
+#if HAVE_ATEXIT
+        atexit(delete_instance);
+#endif
+    }
+    return d_instance;
+}
+
+/** Get an instance of the DAPCache3 object. This version is used when there's no
+ * question that the cache has been instantiated.
+ */
+DAPCache3 *
+DAPCache3::get_instance()
+{
+    if (d_instance == 0)
+        throw InternalErr(__FILE__, __LINE__, "Tried to get the DAPCache3 instance, but it hasn't been created yet");
+
+    return d_instance;
+}
+
+static inline string get_errno() {
+	char *s_err = strerror(errno);
+	if (s_err)
+		return s_err;
+	else
+		return "Unknown error.";
+}
+
+// Build a lock of a certain type.
+static inline struct flock *lock(int type) {
+    static struct flock lock;
+    lock.l_type = type;
+    lock.l_whence = SEEK_SET;
+    lock.l_start = 0;
+    lock.l_len = 0;
+    lock.l_pid = getpid();
+
+    return &lock;
+}
+
+inline void DAPCache3::m_record_descriptor(const string &file, int fd) {
+    DBG(cerr << "DAP Cache: recording descriptor: " << file << ", " << fd << endl);
+    d_locks.insert(std::pair<string, int>(file, fd));
+}
+
+inline int DAPCache3::m_get_descriptor(const string &file) {
+    FilesAndLockDescriptors::iterator i = d_locks.find(file);
+    int fd = i->second;
+    DBG(cerr << "DAP Cache: getting descriptor: " << file << ", " << fd << endl);
+    d_locks.erase(i);
+    return fd;
+}
+
+/** Unlock and close the file descriptor.
+ *
+ * @param fd The file descriptor to close.
+ * @throws BESInternalError if either fnctl(2) or open(2) return an error.
+ */
+static void unlock(int fd)
+{
+    if (fcntl(fd, F_SETLK, lock(F_UNLCK)) == -1) {
+        throw InternalErr(__FILE__, __LINE__, "An error occurred trying to unlock the file" + get_errno());
+    }
+
+    if (close(fd) == -1)
+        throw InternalErr(__FILE__, __LINE__, "Could not close the (just) unlocked file.");
+}
+
+/** Get a shared read lock on an existing file.
+
+ @param file_name The name of the file.
+ @param ref_fp if successful, the file descriptor of the file on which we
+ have a shared read lock. This is used to release the lock.
+
+ @return If the file does not exist, return immediately indicating
+ failure (false), otherwise block until a shared read-lock can be
+ obtained and then return true.
+
+ @exception Error is thrown to indicate a number of untoward
+ events. */
+static bool getSharedLock(const string &file_name, int &ref_fd)
+{
+	DBG(cerr << "getSharedLock: " << file_name <<endl);
+
+    int fd;
+    if ((fd = open(file_name.c_str(), O_RDONLY)) < 0) {
+        switch (errno) {
+        case ENOENT:
+            return false;
+
+        default:
+            throw InternalErr(__FILE__, __LINE__, get_errno());
+        }
+    }
+
+    struct flock *l = lock(F_RDLCK);
+    if (fcntl(fd, F_SETLKW, l) == -1) {
+        close(fd);
+    	ostringstream oss;
+    	oss << "cache process: " << l->l_pid << " triggered a locking error: " << get_errno();
+        throw InternalErr(__FILE__, __LINE__, oss.str());
+    }
+
+    DBG(cerr << "getSharedLock exit: " << file_name <<endl);
+
+    // Success
+    ref_fd = fd;
+    return true;
+}
+
+/** Get an exclusive read/write lock on an existing file.
+
+ @param file_name The name of the file.
+ @param ref_fp if successful, the file descriptor of the file on which we
+ have an exclusive read/write lock.
+
+ @return If the file does not exist, return immediately indicating
+ failure (false), otherwise block until an exclusive read/write
+ lock can be obtained and then return true.
+
+ @exception Error is thrown to indicate a number of untoward
+ events. */
+static bool getExclusiveLock(string file_name, int &ref_fd)
+{
+	DBG(cerr << "getExclusiveLock: " << file_name <<endl);
+
+    int fd;
+    if ((fd = open(file_name.c_str(), O_RDWR)) < 0) {
+        switch (errno) {
+        case ENOENT:
+            return false;
+
+        default:
+            throw InternalErr(__FILE__, __LINE__, get_errno());
+        }
+    }
+
+    struct flock *l = lock(F_WRLCK);
+    if (fcntl(fd, F_SETLKW, l) == -1) {
+        close(fd);
+    	ostringstream oss;
+    	oss << "cache process: " << l->l_pid << " triggered a locking error: " << get_errno();
+        throw InternalErr(__FILE__, __LINE__, oss.str());
+    }
+
+    DBG(cerr << "getExclusiveLock exit: " << file_name <<endl);
+
+    // Success
+    ref_fd = fd;
+    return true;
+}
+
+/** Get an exclusive read/write lock on an existing file without blocking.
+
+ @param file_name The name of the file.
+ @param ref_fp if successful, the file descriptor of the file on which we
+ have an exclusive read/write lock.
+
+ @return If the file does not exist or if the file is locked,
+ return immediately indicating failure (false), otherwise return true.
+
+ @exception Error is thrown to indicate a number of untoward
+ events. */
+static bool getExclusiveLockNB(string file_name, int &ref_fd)
+{
+	DBG(cerr << "getExclusiveLock_nonblocking: " << file_name <<endl);
+
+    int fd;
+    if ((fd = open(file_name.c_str(), O_RDWR)) < 0) {
+        switch (errno) {
+        case ENOENT:
+            return false;
+
+        default:
+            throw InternalErr(__FILE__, __LINE__, get_errno());
+        }
+    }
+
+    struct flock *l = lock(F_WRLCK);
+    if (fcntl(fd, F_SETLK, l) == -1) {
+        switch (errno) {
+        case EAGAIN:
+            DBG(cerr << "getExclusiveLock_nonblocking exit (false): " << file_name << " by: " << l->l_pid << endl);
+            close(fd);
+            return false;
+
+        default: {
+            close(fd);
+        	ostringstream oss;
+        	oss << "cache process: " << l->l_pid << " triggered a locking error: " << get_errno();
+        	throw InternalErr(__FILE__, __LINE__, oss.str());
+        }
+        }
+    }
+
+    DBG(cerr << "getExclusiveLock_nonblocking exit (true): " << file_name <<endl);
+
+    // Success
+    ref_fd = fd;
+    return true;
+}
+
+/** Create a new file and get an exclusive read/write lock on it. If
+ the file already exists, this call fails.
+
+ @param file_name The name of the file.
+ @param ref_fp if successful, the file descriptor of the file on which we
+ have an exclusive read/write lock.
+
+ @return If the file exists, return immediately indicating failure
+ (false), otherwise block until the file is created and an
+ exclusive read/write lock can be obtained, then return true.
+
+ @exception Error is thrown to indicate a number of untoward
+ events. */
+static bool createLockedFile(string file_name, int &ref_fd)
+{
+	DBG(cerr << "createLockedFile: " << file_name <<endl);
+
+    int fd;
+    if ((fd = open(file_name.c_str(), O_CREAT | O_EXCL | O_RDWR, 0666)) < 0) {
+        switch (errno) {
+        case EEXIST:
+            return false;
+
+        default:
+            throw InternalErr(__FILE__, __LINE__, get_errno());
+        }
+    }
+
+    struct flock *l = lock(F_WRLCK);
+    if (fcntl(fd, F_SETLKW, l) == -1) {
+        close(fd);
+    	ostringstream oss;
+    	oss << "cache process: " << l->l_pid << " triggered a locking error: " << get_errno();
+        throw InternalErr(__FILE__, __LINE__, oss.str());
+    }
+
+    DBG(cerr << "createLockedFile exit: " << file_name <<endl);
+
+    // Success
+    ref_fd = fd;
+    return true;
+}
+
+/** Private method */
+void DAPCache3::m_check_ctor_params()
+{
+    if (d_cache_dir.empty()) {
+        string err = "The cache directory was not specified, must be non-empty";
+        throw InternalErr(__FILE__, __LINE__, err);
+    }
+
+    // TODO New feature: Makes the directory f it does not exist
+    struct stat buf;
+    int statret = stat(d_cache_dir.c_str(), &buf);
+    if (statret != 0 || !S_ISDIR(buf.st_mode)) {
+        // Try to make the directory
+        int status = mkdir(d_cache_dir.c_str(), 0775);
+        if (status != 0) {
+            string err = "The cache directory " + d_cache_dir + " does not exist or could not be created.";
+            throw InternalErr(__FILE__, __LINE__, err);
+        }
+    }
+
+    if (d_prefix.empty()) {
+        string err = "The cache file prefix was not specified, must not be empty";
+        throw InternalErr(__FILE__, __LINE__, err);
+    }
+
+    if (d_max_cache_size_in_bytes <= 0) {
+        string err = "The cache size was not specified, must be greater than zero";
+        throw InternalErr(__FILE__, __LINE__, err);
+    }
+#if 0
+    // redundant check
+
+    // If the user specifies a cache that is too large,
+    // it is a user exception and we should tell them.
+    if (d_max_cache_size_in_bytes > MAX_CACHE_SIZE_IN_MEGABYTES) {
+        std::ostringstream msg;
+        msg << "The specified cache size was larger than the max cache size of: " << MAX_CACHE_SIZE_IN_MEGABYTES
+                << " (was " << d_max_cache_size_in_bytes << ").";
+        throw InternalErr(__FILE__, __LINE__, msg.str());
+    }
+#endif
+    DBG(cerr << "DAP Cache: directory " << d_cache_dir << ", prefix " << d_prefix
+            << ", max size " << d_max_cache_size_in_bytes << endl );
+}
+
+/** Private method. */
+void DAPCache3::m_initialize_cache_info()
+{
+    // The value set in configuration files, etc., is the size in megabytes. The private
+    // variable holds the size in bytes (converted below).
+    d_max_cache_size_in_bytes = min(d_max_cache_size_in_bytes, MAX_CACHE_SIZE_IN_MEGABYTES);
+    d_max_cache_size_in_bytes *= BYTES_PER_MEG;
+    d_target_size = d_max_cache_size_in_bytes * 0.8;
+
+    m_check_ctor_params(); // Throws InternalErr on error.
+
+    d_cache_info = d_cache_dir + "/dap.cache.info";
+
+    // See if we can create it. If so, that means it doesn't exist. So make it and
+    // set the cache initial size to zero.
+    if (createLockedFile(d_cache_info, d_cache_info_fd)) {
+		// initialize the cache size to zero
+		unsigned long long size = 0;
+		if (write(d_cache_info_fd, &size, sizeof(unsigned long long)) != sizeof(unsigned long long))
+			throw InternalErr(__FILE__, __LINE__, "Could not write size info to the cache info file in startup!");
+
+		// This leaves the d_cache_info_fd file descriptor open
+		unlock_cache();
+	}
+	else {
+		if ((d_cache_info_fd = open(d_cache_info.c_str(), O_RDWR)) == -1) {
+			throw InternalErr(__FILE__, __LINE__, get_errno());
+		}
+	}
+
+    DBG(cerr << "d_cache_info_fd: " << d_cache_info_fd << endl);
+}
+
+#if 0
+/** @brief Private constructor that takes as arguments keys to the cache directory,
+ * file prefix, and size of the cache to be looked up a configuration file
+ *
+ * The keys specified are looked up in the specified keys object. If not
+ * found or not set correctly then an exception is thrown. I.E., if the
+ * cache directory is empty, the size is zero, or the prefix is empty.
+ *
+ * @param keys BESKeys object used to look up the keys
+ * @param cache_dir_key key to look up in the keys file to find cache dir
+ * @param prefix_key key to look up in the keys file to find the cache prefix
+ * @param size_key key to look up in the keys file to find the cache size (in MBytes)
+ * @throws BESSyntaxUserError if keys not set, cache dir or prefix empty,
+ * size is 0, or if cache dir does not exist.
+ */
+BESCache3::BESCache3(BESKeys *keys, const string &cache_dir_key, const string &prefix_key, const string &size_key) :
+        d_max_cache_size_in_bytes(0)
+{
+    bool found = false;
+    keys->get_value(cache_dir_key, d_cache_dir, found);
+    if (!found)
+        throw BESSyntaxUserError("The cache directory key " + cache_dir_key + " was not found in the BES configuration file", __FILE__, __LINE__);
+
+    found = false;
+    keys->get_value(prefix_key, d_prefix, found);
+    if (!found)
+        throw BESSyntaxUserError("The prefix key " + prefix_key + " was not found in the BES configuration file", __FILE__, __LINE__);
+
+    found = false;
+    string cache_size_str;
+    keys->get_value(size_key, cache_size_str, found);
+    if (!found)
+        throw BESSyntaxUserError("The size key " + size_key + " was not found in the BES configuration file", __FILE__, __LINE__);
+
+    std::istringstream is(cache_size_str);
+    is >> d_max_cache_size_in_bytes;
+
+    m_initialize_cache_info();
+}
+#endif
+
+
+/** Build the name of file that will holds the uncompressed data from
+ * 'src' in the cache.
+ *
+ * @note How names are mangled: 'src' is the full name of the file to be
+ * cached.Tthe file name passed has an extension on the end that will be
+ * stripped once the file is cached. For example, if the full path to the
+ * file name is /usr/lib/data/fnoc1.nc.gz then the resulting file name
+ * will be \#<prefix>\#usr\#lib\#data\#fnoc1.nc.
+ *
+ * @param src The source name to cache
+ * @param mangle if True, assume the name is a file pathname and mangle it.
+ * If false, do not mangle the name (assume the caller has sent a suitable
+ * string) but do turn the string into a pathname located in the cache directory
+ * with the cache prefix. the 'mangle' param is true by default.
+ */
+string DAPCache3::get_cache_file_name(const string &src, bool mangle)
+{
+    string target = src;
+
+    if (mangle) {
+        if (target.at(0) == '/') {
+            target = src.substr(1, target.length() - 1);
+        }
+        string::size_type slash = 0;
+        while ((slash = target.find('/')) != string::npos) {
+            target.replace(slash, 1, 1, DAPCache3::DAP_CACHE_CHAR);
+        }
+        string::size_type last_dot = target.rfind('.');
+        if (last_dot != string::npos) {
+            target = target.substr(0, last_dot);
+        }
+    }
+    DBG(cerr << "  d_cache_dir: '" << d_cache_dir << "'" << endl);
+    DBG(cerr << "  d_prefix:    '" << d_prefix << "'" << endl);
+    DBG(cerr << "  target:      '" << target  << "'" << endl);
+
+    return d_cache_dir + "/" + d_prefix + DAPCache3::DAP_CACHE_CHAR + target;
+}
+
+/** @brief Get a read-only lock on the file if it exists.
+ *
+ * Try to get a read-only lock on the file, blocking until we can get it.
+ * If the file does not exist, return false.
+ *
+ * @note If this code returns false, that means the file did not exist
+ * in the cache at the time of the test. by the time the caller gets
+ * the result, the file may have been added to the cache by another
+ * process.
+ *
+ * @param src src file that will be cached eventually
+ * @param target a value-result parameter set to the resulting cached file
+ * @return true if the file is in the cache and has been locked, false if
+ * the file is/was not in the cache.
+ * @throws Error if the attempt to get the (shared) lock failed for any
+ * reason other than that the file does/did not exist.
+ */
+bool DAPCache3::get_read_lock(const string &target, int &fd)
+{
+	lock_cache_read();
+
+    bool status = getSharedLock(target, fd);
+
+    DBG(cerr << "DAP Cache: read_lock: " << target << "(" << status << ")" << endl);
+
+    if (status)
+    	m_record_descriptor(target, fd);
+
+    unlock_cache();
+
+    return status;
+}
+
+/** @brief Create a file in the cache and lock it for write access.
+ * If the file does not exist, make it, open it for read-write access and
+ * get an exclusive lock on it. The locking operation blocks, although that
+ * should never happen.
+ * @param target The name of the file to make/open/lock
+ * @param fd Value-result param that holds the file descriptor of the opened
+ * file
+ * @return True if the operation was successful, false otherwise. This method will
+ * return false if the file already existed (the file won't be locked and the
+ * descriptor reference is undefined - but likely -1).
+ * @throws BESInternalError if any error except EEXIST is returned by open(2) or
+ * if fcntl(2) returns an error. */
+bool DAPCache3::create_and_lock(const string &target, int &fd)
+{
+	lock_cache_write();
+
+    bool status = createLockedFile(target, fd);
+
+    DBG(cerr << "DAP Cache: create_and_lock: " << target << "(" << status << ")" << endl);
+
+    if (status)
+    	m_record_descriptor(target, fd);
+
+    unlock_cache();
+
+    return status;
+
+}
+
+/** @brief Transfer from an exclusive lock to a shared lock.
+ * If the file has an exclusive write lock on it, change that to a shared
+ * read lock. This is an atomic operation. If the call to fcntl(2) is
+ * protected by locking the cache, a dead lock will result given typical use
+ * of this class. This method exists to help with the situation where one
+ * process has the cache locked and is blocking on a shared read lock for
+ * a file that a second process has locked exclusively (for writing). By
+ * changing the exclusive lock to a shared lock, the first process can get
+ * its shared lock and then release the cache.
+ *
+ * @param fd The file descriptor that is exclusively locked and which, on
+ * exit, will have a shared lock.
+ */
+void DAPCache3::exclusive_to_shared_lock(int fd)
+{
+    struct flock lock;
+    lock.l_type = F_RDLCK;
+    lock.l_whence = SEEK_SET;
+    lock.l_start = 0;
+    lock.l_len = 0;
+    lock.l_pid = getpid();
+
+    if (fcntl(fd, F_SETLKW, &lock) == -1) {
+        throw InternalErr(__FILE__, __LINE__, get_errno());
+    }
+}
+
+/** Get an exclusive lock on the 'cache info' file. The 'cache info' file
+ * is used to control certain cache actions, ensuring that they are atomic.
+ * These include making sure that the create_and_lock() and read_and_lock()
+ * operations are atomic as well as the purge and related operations.
+ *
+ * @note This is intended to be used internally only but might be useful in
+ * some settings.
+ */
+void DAPCache3::lock_cache_write()
+{
+    DBG(cerr << "lock_cache - d_cache_info_fd: " << d_cache_info_fd << endl);
+
+    if (fcntl(d_cache_info_fd, F_SETLKW, lock(F_WRLCK)) == -1) {
+        throw InternalErr(__FILE__, __LINE__, "An error occurred trying to lock the cache-control file" + get_errno());
+    }
+}
+
+/** Get a shared lock on the 'cache info' file.
+ *
+ */
+void DAPCache3::lock_cache_read()
+{
+    DBG(cerr << "lock_cache - d_cache_info_fd: " << d_cache_info_fd << endl);
+
+    if (fcntl(d_cache_info_fd, F_SETLKW, lock(F_RDLCK)) == -1) {
+        throw InternalErr(__FILE__, __LINE__, "An error occurred trying to lock the cache-control file" + get_errno());
+    }
+}
+
+/** Unlock the cache info file.
+ *
+ * @note This is intended to be used internally only bt might be useful in
+ * some settings.
+ */
+void DAPCache3::unlock_cache()
+{
+    DBG(cerr << "DAP Cache: unlock: cache_info (fd: " << d_cache_info_fd << ")" << endl);
+
+    if (fcntl(d_cache_info_fd, F_SETLK, lock(F_UNLCK)) == -1) {
+        throw InternalErr(__FILE__, __LINE__, "An error occurred trying to unlock the cache-control file" + get_errno());
+    }
+}
+
+/** Unlock the named file. This does not do any name mangling; it
+ * just unlocks whatever is named (or throws BESInternalError if the file
+ * cannot be closed).
+ *
+ * @note This method assumes that the file was opend/locked using one of
+ * read_and_lock() or create_and_lock(). Those methods record the name/file-
+ * descriptor pairs so that the files can be properly closed and locks
+ * released.
+ *
+ * @param file_name The name of the file to unlock.
+ * @throws BESInternalError */
+void DAPCache3::unlock_and_close(const string &file_name)
+{
+    DBG(cerr << "DAP Cache: unlock file: " << file_name << endl);
+
+    unlock(m_get_descriptor(file_name));
+}
+
+/** Unlock the file. This does not do any name mangling; it
+ * just unlocks whatever is named (or throws BESInternalError if the file
+ * cannot be closed).
+ * @param fd The descriptor of the file to unlock.
+ * @throws BESInternalError */
+void DAPCache3::unlock_and_close(int fd)
+{
+    DBG(cerr << "DAP Cache: unlock fd: " << fd << endl);
+
+    unlock(fd);
+
+    DBG(cerr << "DAP Cache: unlock " << fd << " Success" << endl);
+}
+
+/** @brief Update the cache info file to include 'target'
+ *
+ * Add the size of the named file to the total cache size recorded in the
+ * cache info file. The cache info file is exclusively locked by this
+ * method for its duration. This updates the cache info file and returns
+ * the new size.
+ *
+ * @param target The name of the file
+ * @return The new size of the cache
+ */
+unsigned long long DAPCache3::update_cache_info(const string &target)
+{
+	try {
+		lock_cache_write();
+
+		if (lseek(d_cache_info_fd, 0, SEEK_SET) == -1)
+			throw InternalErr(__FILE__, __LINE__, "Could not rewind to front of cache info file.");
+
+		// read the size from the cache info file
+		unsigned long long current_size;
+		if (read(d_cache_info_fd, &current_size, sizeof(unsigned long long)) != sizeof(unsigned long long))
+			throw InternalErr(__FILE__, __LINE__, "Could not get read size info from the cache info file!");
+
+		struct stat buf;
+		int statret = stat(target.c_str(), &buf);
+		if (statret == 0)
+			current_size += buf.st_size;
+		else
+			throw InternalErr(__FILE__, __LINE__, "Could not read the size of the new file: " + target + " : " + get_errno());
+
+		DBG(cerr << "DAP Cache: cache size updated to: " << current_size << endl);
+
+		if (lseek(d_cache_info_fd, 0, SEEK_SET) == -1)
+			throw InternalErr(__FILE__, __LINE__, "Could not rewind to front of cache info file.");
+
+		if(write(d_cache_info_fd, &current_size, sizeof(unsigned long long)) != sizeof(unsigned long long))
+			throw InternalErr(__FILE__, __LINE__, "Could not write size info from the cache info file!");
+
+		unlock_cache();
+		return current_size;
+	}
+	catch (...) {
+		unlock_cache();
+		throw;
+	}
+}
+
+/** @brief look at the cache size; is it too large?
+ * Look at the cache size and see if it is too big.
+ *
+ * @return True if the size is too big, false otherwise. */
+bool DAPCache3::cache_too_big(unsigned long long current_size) const
+{
+    return current_size > d_max_cache_size_in_bytes;
+}
+
+/** @brief Get the cache size.
+ * Read the size information from the cache info file and return it.
+ * This methods locks the cache.
+ *
+ *
+ * @return The size of the cache.
+ */
+unsigned long long DAPCache3::get_cache_size()
+{
+	try {
+		lock_cache_read();
+
+		if (lseek(d_cache_info_fd, 0, SEEK_SET) == -1)
+	        throw InternalErr(__FILE__, __LINE__, "Could not rewind to front of cache info file.");
+		// read the size from the cache info file
+		unsigned long long current_size;
+		if(read(d_cache_info_fd, &current_size, sizeof(unsigned long long)) != sizeof(unsigned long long))
+		    throw InternalErr(__FILE__, __LINE__, "Could not get read size info from the cache info file!");
+
+		unlock_cache();
+	    return current_size;
+	}
+	catch(...) {
+		unlock_cache();
+		throw;
+	}
+}
+
+
+static bool entry_op(cache_entry &e1, cache_entry &e2)
+{
+    return e1.time < e2.time;
+}
+
+/** Private. Get info about all of the files (size and last use time). */
+unsigned long long DAPCache3::m_collect_cache_dir_info(CacheFiles &contents)
+{
+    DIR *dip = opendir(d_cache_dir.c_str());
+    if (!dip)
+        throw InternalErr(__FILE__, __LINE__, "Unable to open cache directory " + d_cache_dir);
+
+    struct dirent *dit;
+    vector<string> files;
+    // go through the cache directory and collect all of the files that
+    // start with the matching prefix
+    while ((dit = readdir(dip)) != NULL) {
+        string dirEntry = dit->d_name;
+        if (dirEntry.compare(0, d_prefix.length(), d_prefix) == 0) {
+            files.push_back(d_cache_dir + "/" + dirEntry);
+        }
+    }
+
+    closedir(dip);
+
+    unsigned long long current_size = 0;
+    struct stat buf;
+    for (vector<string>::iterator file = files.begin(); file != files.end(); ++file) {
+        if (stat(file->c_str(), &buf) == 0) {
+            current_size += buf.st_size;
+            cache_entry entry;
+            entry.name = *file;
+            entry.size = buf.st_size;
+            entry.time = buf.st_atime;
+            // Sanity check; Removed after initial testing since some files might be zero bytes
+#if 0
+            if (entry.size == 0)
+                throw InternalErr(__FILE__, __LINE__, "Zero-byte file found in cache. " + *file);
+#endif
+            contents.push_back(entry);
+        }
+    }
+
+    // Sort so smaller (older) times are first.
+    contents.sort(entry_op);
+
+    return current_size;
+}
+
+/** @brief Purge files from the cache
+ *
+ * Purge files, oldest to newest, if the current size of the cache exceeds the
+ * size of the cache specified in the constructor. This method uses an exclusive
+ * lock on the cache for the duration of the purge process.
+ *
+ * @param new_file The name of a file this process just added to the cache. Using
+ * fcntl(2) locking there is no way this process can detect its own lock, so the
+ * shared read lock on the new file won't keep this process from deleting it (but
+ * will keep other processes from deleting it).
+ */
+void DAPCache3::update_and_purge(const string &new_file)
+{
+    DBG(cerr << "purge - starting the purge" << endl);
+
+    try {
+        lock_cache_write();
+
+        CacheFiles contents;
+        unsigned long long computed_size = m_collect_cache_dir_info(contents);
+#if 0
+        if (BESISDEBUG( "cache_contents" )) {
+            DBG(endl << "BEFORE Purge " << computed_size/BYTES_PER_MEG << endl );
+            CacheFiles::iterator ti = contents.begin();
+            CacheFiles::iterator te = contents.end();
+            for (; ti != te; ti++) {
+                DBG((*ti).time << ": " << (*ti).name << ": size " << (*ti).size/BYTES_PER_MEG << endl );
+            }
+        }
+#endif
+        DBG(cerr << "purge - current and target size (in MB) " << computed_size/BYTES_PER_MEG  << ", " << d_target_size/BYTES_PER_MEG << endl );
+
+        // This deletes files and updates computed_size
+        if (cache_too_big(computed_size)) {
+
+            // d_target_size is 80% of the maximum cache size.
+            // Grab the first which is the oldest in terms of access time.
+            CacheFiles::iterator i = contents.begin();
+            while (i != contents.end() && computed_size > d_target_size) {
+                // Grab an exclusive lock but do not block - if another process has the file locked
+                // just move on to the next file. Also test to see if the current file is the file
+                // this process just added to the cache - don't purge that!
+                int cfile_fd;
+                if (i->name != new_file && getExclusiveLockNB(i->name, cfile_fd)) {
+                    DBG(cerr << "purge: " << i->name << " removed." << endl );
+
+                    if (unlink(i->name.c_str()) != 0)
+                        throw InternalErr(__FILE__, __LINE__, "Unable to purge the file " + i->name + " from the cache: " + get_errno());
+
+                    unlock(cfile_fd);
+                    computed_size -= i->size;
+                }
+#if 0
+                else {
+                    // This information is useful when debugging... Might comment out for production
+                    DBG(cerr << "purge: " << i->name << " is in use." << endl );
+                }
+#endif
+                ++i;
+
+                DBG(cerr << "purge - current and target size (in MB) " << computed_size/BYTES_PER_MEG << ", " << d_target_size/BYTES_PER_MEG << endl );
+            }
+
+        }
+
+        if (lseek(d_cache_info_fd, 0, SEEK_SET) == -1)
+            throw InternalErr(__FILE__, __LINE__, "Could not rewind to front of cache info file.");
+
+        if(write(d_cache_info_fd, &computed_size, sizeof(unsigned long long)) != sizeof(unsigned long long))
+            throw InternalErr(__FILE__, __LINE__, "Could not write size info to the cache info file!");
+#if 0
+        if (BESISDEBUG( "cache_contents" )) {
+            contents.clear();
+            computed_size = m_collect_cache_dir_info(contents);
+            DBG(endl << "AFTER Purge " << computed_size/BYTES_PER_MEG << endl );
+            CacheFiles::iterator ti = contents.begin();
+            CacheFiles::iterator te = contents.end();
+            for (; ti != te; ti++) {
+                DBG((*ti).time << ": " << (*ti).name << ": size " << (*ti).size/BYTES_PER_MEG << endl );
+            }
+        }
+#endif
+        unlock_cache();
+    }
+    catch(...) {
+        unlock_cache();
+        throw;
+    }
+}
+
+/** @brief Purge a single file from the cache
+ *
+ * Purge a single file from the cache. The file might be old, etc., and need to
+ * be removed. Don't use this to shrink the cache when it gets too big, use
+ * update_and_purge() instead since that file optimizes accesses to the cache
+ * control file for several changes in a row.
+ *
+ * @todo This is a new feature; add to BESCache3
+ *
+ * @param file The name of the file to purge.
+ */
+void DAPCache3::purge_file(const string &file)
+{
+    DBG(cerr << "purge_file - starting the purge" << endl);
+
+    try {
+        lock_cache_write();
+
+        // Grab an exclusive lock on the file
+        int cfile_fd;
+        if (getExclusiveLock(file, cfile_fd)) {
+            // Get the file's size
+            unsigned long long size = 0;
+            struct stat buf;
+            if (stat(file.c_str(), &buf) == 0) {
+                size = buf.st_size;
+            }
+
+            DBG(cerr << "purge_file: " << file << " removed." << endl );
+
+            if (unlink(file.c_str()) != 0)
+                throw InternalErr(__FILE__, __LINE__,
+                        "Unable to purge the file " + file + " from the cache: " + get_errno());
+
+            unlock(cfile_fd);
+
+            unsigned long long cache_size = get_cache_size() - size;
+
+            if (lseek(d_cache_info_fd, 0, SEEK_SET) == -1)
+                throw InternalErr(__FILE__, __LINE__, "Could not rewind to front of cache info file.");
+
+            if (write(d_cache_info_fd, &cache_size, sizeof(unsigned long long)) != sizeof(unsigned long long))
+                throw InternalErr(__FILE__, __LINE__, "Could not write size info to the cache info file!");
+        }
+
+        unlock_cache();
+    }
+    catch (...) {
+        unlock_cache();
+        throw;
+    }
+}
+
+/** @brief dumps information about this object
+ *
+ * Displays the pointer value of this instance along with information about
+ * this cache.
+ *
+ * @param strm C++ i/o stream to dump the information to
+ */
+void DAPCache3::dump(ostream &strm) const
+{
+    strm << DapIndent::LMarg << "DAPCache3::dump - (" << (void *) this << ")" << endl;
+    DapIndent::Indent();
+    strm << DapIndent::LMarg << "cache dir: " << d_cache_dir << endl;
+    strm << DapIndent::LMarg << "prefix: " << d_prefix << endl;
+    strm << DapIndent::LMarg << "size (bytes): " << d_max_cache_size_in_bytes << endl;
+    DapIndent::UnIndent();
+}
+
+} // namespace libdap
diff --git a/DAPCache3.h b/DAPCache3.h
new file mode 100644
index 0000000..9f9cef7
--- /dev/null
+++ b/DAPCache3.h
@@ -0,0 +1,160 @@
+// DAPCache3.h
+
+// This file was originally part of bes, A C++ back-end server
+// implementation framework for the OPeNDAP Data Access Protocol.
+// Copied to libdap. This is used to cache responses built from
+// functional CE expressions.
+
+// Copyright (c) 2012 OPeNDAP, Inc
+// Author: James Gallagher <jgallagher at opendap.org>,
+// Patrick West <pwest at ucar.edu> and Jose Garcia <jgarcia at ucar.edu>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact University Corporation for Atmospheric Research at
+// 3080 Center Green Drive, Boulder, CO 80301
+
+#ifndef DAPCache3_h_
+#define DAPCache3_h_ 1
+
+// #include <algorithm>
+#include <map>
+#include <string>
+#include <list>
+// #include <sstream>
+
+#include "DapObj.h"
+
+#if 0
+#include "BESObj.h"
+#include "BESDebug.h"
+
+class BESKeys;
+#endif
+
+namespace libdap {
+
+// These typedefs are used to record information about the files in the cache.
+// See DAPCache3.cc and look at the purge() method.
+typedef struct {
+    string name;
+    unsigned long long size;
+    time_t time;
+} cache_entry;
+
+typedef std::list<cache_entry> CacheFiles;
+
+/** @brief Implementation of a caching mechanism for compressed data.
+ * This cache uses simple advisory locking found on most modern unix file systems.
+ * Compressed files are decompressed and stored in a cache where they can be
+ * used over and over until removed from the cache. Several processes can
+ * share the cache with each reading from files. At the same time, new files
+ * can be added and the cache can be purged, without disrupting the existing
+ * read operations.
+ *
+ * How it works. When a file is added to the cache, the cache is locked - no
+ * other processes can add, read or remove files. Once a file has been added,
+ * the cache size is examined and, if needed, the cache is purged so that its
+ * size is 80% of the maximum size. Then the cache is unlocked. When a process
+ * looks to see if a file is already in the cache, the entire cache is locked.
+ * If the file is present, a shared read lock is obtained and the cache is unlocked.
+ *
+ * Methods: create_and_lock() and get_read_lock() open and lock files; the former
+ * creates the file and locks it exclusively iff it does not exist, while the
+ * latter obtains a shared lock iff the file already exists. The unlock()
+ * methods unlock a file. The lock_cache_info() and unlock_cache_info() are
+ * used to control access to the whole cache - with the open + lock and
+ * close + unlock operations performed atomically. Other methods that operate
+ * on the cache info file must only be called when the lock has been obtained.
+ */
+class DAPCache3: public libdap::DapObj {
+
+private:
+    static DAPCache3 * d_instance;
+
+    static const char DAP_CACHE_CHAR = '#';
+
+    string d_cache_dir;  /// pathname of the cache directory
+    string d_prefix;     /// tack this on the front of cache file name
+
+    /// How many megabytes can the cache hold before we have to purge
+    unsigned long long d_max_cache_size_in_bytes;
+    // When we purge, how much should we throw away. Set in the ctor to 80% of the max size.
+    unsigned long long d_target_size;
+#if 0
+    // This class implements a singleton, so the constructor is hidden.
+    BESCache3(BESKeys *keys, const string &cache_dir_key, const string &prefix_key, const string &size_key);
+#endif
+    // Testing
+    DAPCache3(const string &cache_dir, const string &prefix, unsigned long long size);
+
+    // Suppress the assignment operator and default copy ctor, ...
+    DAPCache3();
+    DAPCache3(const DAPCache3 &);
+    DAPCache3 &operator=(const DAPCache3 &rhs);
+
+    void m_check_ctor_params();
+    void m_initialize_cache_info();
+
+    unsigned long long m_collect_cache_dir_info(CacheFiles &contents);
+
+    /// Name of the file that tracks the size of the cache
+    string d_cache_info;
+    int d_cache_info_fd;
+
+    void m_record_descriptor(const string &file, int fd);
+    int m_get_descriptor(const string &file);
+
+    // map that relates files to the descriptor used to obtain a lock
+    typedef std::map<string, int> FilesAndLockDescriptors;
+    FilesAndLockDescriptors d_locks;
+
+    // Life-cycle control
+    virtual ~DAPCache3() { }
+    static void delete_instance();
+
+public:
+    static DAPCache3 *get_instance(const string &cache_dir, const string &prefix, unsigned long long size);
+    static DAPCache3 *get_instance();
+
+
+    string get_cache_file_name(const string &src, bool mangle = true);
+
+    virtual bool create_and_lock(const string &target, int &fd);
+    virtual bool get_read_lock(const string &target, int &fd);
+    virtual void exclusive_to_shared_lock(int fd);
+    virtual void unlock_and_close(const string &target);
+    virtual void unlock_and_close(int fd);
+
+    virtual void lock_cache_write();
+    virtual void lock_cache_read();
+    virtual void unlock_cache();
+
+    virtual unsigned long long update_cache_info(const string &target);
+    virtual bool cache_too_big(unsigned long long current_size) const;
+    virtual unsigned long long get_cache_size();
+    virtual void update_and_purge(const string &new_file);
+    virtual void purge_file(const string &file);
+
+#if 0
+    static BESCache3 *get_instance(BESKeys *keys, const string &cache_dir_key, const string &prefix_key, const string &size_key);
+#endif
+
+    virtual void dump(ostream &strm) const ;
+};
+
+} // namespace libdap
+
+#endif // DAPCache3_h_
diff --git a/DAS.cc b/DAS.cc
index 896766a..3c60010 100644
--- a/DAS.cc
+++ b/DAS.cc
@@ -71,33 +71,26 @@ extern int dasparse(libdap::parser_arg *arg); // defined in das.tab.c
 
 namespace libdap {
 
-/** Create an empty DAS
- */
-DAS::DAS() : DapObj(), d_container( 0 )
-{}
-
-#if 0
-DAS::DAS(AttrTable *attr, string name)
+void DAS::duplicate(const DAS &src)
 {
-    append_container(attr, www2id(name));
+    // If the container field is set, perform a deep copy
+    if (src.d_container)
+        d_container  = new AttrTable(*src.d_container);
+    else
+        d_container = 0;
+
+    d_container_name = src.d_container_name;
+    d_attrs = src.d_attrs;
 }
-#endif
 
-// FIXME: Need to create copy constructor and op=.
+DAS &DAS::operator=(const DAS &rhs)
+{
+    if (this == &rhs)
+        return *this;
 
-/** @brief This deletes the pointers to AttrTables allocated during the parse
- * (and at other times). jhrg 7/29/94
- */
-DAS::~DAS()
-{}
+    duplicate(rhs);
 
-/** @brief Returns the name of the current attribute container when multiple
- * files used to build this DAS
- */
-string
-DAS::container_name()
-{
-    return _container_name ;
+    return *this;
 }
 
 /** @brief Sets the name of the current attribute container when multiple
@@ -110,7 +103,7 @@ void DAS::container_name(const string &cn)
     // We want to find a top level attribute table with the given name. So
     // set d_container to null first so that we aren't searching some
     // previous container
-    if (cn != _container_name) {
+    if (cn != d_container_name) {
         d_container = 0;
         if (!cn.empty()) {
             d_container = get_table(cn);
@@ -118,21 +111,10 @@ void DAS::container_name(const string &cn)
                 d_container = add_table(cn, new AttrTable);
             }
         }
-        _container_name = cn;
+        d_container_name = cn;
     }
 }
 
-/** @brief Returns the current attribute container when multiple files
- * used to build this DAS.
- *
- * @return current attribute table for current container
- */
-AttrTable *
-DAS::container()
-{
-    return d_container ;
-}
-
 /** @brief Returns the number of attributes in the current attribute table
  *
  * If the there is a container set, then return the number of variable
@@ -383,23 +365,18 @@ DAS::print(ostream &out, bool dereference)
  * @param strm C++ i/o stream to dump the information to
  * @return void
  */
-void
-DAS::dump(ostream &strm) const
+void DAS::dump(ostream &strm) const
 {
-    strm << DapIndent::LMarg << "DAS::dump - ("
-         << (void *)this << ")" << endl ;
-    DapIndent::Indent() ;
-    if( d_container )
-    {
-	strm << DapIndent::LMarg << "current container: " << _container_name
-	     << endl ;
+    strm << DapIndent::LMarg << "DAS::dump - (" << (void *) this << ")" << endl;
+    DapIndent::Indent();
+    if (d_container) {
+        strm << DapIndent::LMarg << "current container: " << d_container_name << endl;
     }
-    else
-    {
-	strm << DapIndent::LMarg << "current container: NONE" << endl ;
+    else {
+        strm << DapIndent::LMarg << "current container: NONE" << endl;
     }
-    d_attrs.dump(strm) ;
-    DapIndent::UnIndent() ;
+    d_attrs.dump(strm);
+    DapIndent::UnIndent();
 }
 
 } // namespace libdap
diff --git a/DAS.h b/DAS.h
index 7bb386c..7a5c5f3 100644
--- a/DAS.h
+++ b/DAS.h
@@ -121,18 +121,41 @@ namespace libdap
 class DAS : public DapObj
 {
 private:
+    // The DAS support the notion of a current attribute table for a given
+    // container. Containers are used by the BES to support datasets that
+    // are built using several files (but not exactly the same way as
+    // NCML builds them.
     AttrTable *d_container ;
-    string _container_name ;
+    string d_container_name ;
+
+    // A DAS is a shell around an attribute table. Since tables can be nested,
+    // there is one top-level table and the attribute tables for individual
+    // variables are its children.
     AttrTable d_attrs ;
 
+    void duplicate(const DAS &src);
+
 public:
-    DAS();
+    DAS() : DapObj(), d_container( 0 ) { }
+    DAS(const DAS &das) { duplicate(das); }
+
+    virtual ~DAS() { }
+
+    DAS & operator=(const DAS &rhs);
 
-    virtual ~DAS();
+    /** @brief Returns the name of the current attribute container when multiple
+     * files used to build this DAS
+     */
+    virtual string container_name() const {return d_container_name; }
 
-    virtual string container_name() ;
     virtual void container_name( const string &cn ) ;
-    virtual AttrTable *container() ;
+
+    /** @brief Returns the current attribute container when multiple files
+     * used to build this DAS.
+     *
+     * @return current attribute table for current container
+     */
+    virtual AttrTable *container() { return d_container; }
 
     /** @brief Returns the top most set of attributes
      *
diff --git a/DDS.cc b/DDS.cc
index 97d3e51..cbe577c 100644
--- a/DDS.cc
+++ b/DDS.cc
@@ -190,7 +190,6 @@ DDS::duplicate(const DDS &dds)
     d_max_response_size = dds.d_max_response_size;
 }
 
-//FIXME says 3.2 when it's 2.0
 /**
  * Make a DDS which uses the given BaseTypeFactory to create variables.
  *
@@ -208,7 +207,7 @@ DDS::DDS(BaseTypeFactory *factory, const string &name)
           d_request_xml_base(""),
           d_timeout(0), d_keywords(), d_max_response_size(0)
 {
-    DBG(cerr << "Building a DDS for the default version (3.2)" << endl);
+    DBG(cerr << "Building a DDS for the default version (2.0)" << endl);
 
     // This method sets a number of values, including those returned by
     // get_protocol_major(), ..., get_namespace().
@@ -885,31 +884,51 @@ DDS::num_var()
 void
 DDS::timeout_on()
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
 #ifndef WIN32
     alarm(d_timeout);
 #endif
+#endif
 }
 
 void
 DDS::timeout_off()
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
 #ifndef WIN32
-    d_timeout = alarm(0);
+    // Old behavior commented out. I think it is an error to change the value
+    // of d_timeout. The way this will likely be used is to set the timeout
+    // value once and then 'turn on' or turn off' that timeout as the situation
+    // dictates. The initeded use for the DDS timeout is so that timeouts for
+    // data responses will include the CPU resources needed to build the response
+    // but not the time spent transmitting the response. This may change when
+    // more parallelism is added to the server... These methods are called from
+    // BESDapResponseBuilder in bes/dap. jhrg 12/22/15
+
+    // d_timeout = alarm(0);
+
+    alarm(0);
+#endif
 #endif
 }
 
 void
-DDS::set_timeout(int t)
+DDS::set_timeout(int)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     //  Has no effect under win32
     d_timeout = t;
+#endif
 }
 
 int
 DDS::get_timeout()
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     //  Has to effect under win32
     return d_timeout;
+#endif
+    return 0;
 }
 
 /** @brief Traverse DDS, set Sequence leaf nodes. */
diff --git a/DDS.h b/DDS.h
index 778ddf8..340f2b4 100644
--- a/DDS.h
+++ b/DDS.h
@@ -205,8 +205,6 @@ private:
 
     long d_max_response_size;   // In bytes...
 
-
-
     friend class DDSTest;
 
 protected:
@@ -342,10 +340,16 @@ public:
     /// Removes a range of variables from the DDS.
     void del_var(Vars_iter i1, Vars_iter i2);
 
+    /** @name DDS_timeout
+     *  Old deprecated DDS timeout code
+     *  @deprecated
+     */
+    ///@{
     void timeout_on();
     void timeout_off();
     void set_timeout(int t);
     int get_timeout();
+    //@}
 
     // These parse the DAP2 curly-brace document and make a C++ object.
     void parse(string fname);
diff --git a/DDXParserSAX2.cc b/DDXParserSAX2.cc
index a299ef4..be364df 100644
--- a/DDXParserSAX2.cc
+++ b/DDXParserSAX2.cc
@@ -148,75 +148,6 @@ BaseType *DDXParser::factory(Type t, const string & name)
     }
 }
 
-#if 0
-/** Get the Type enumeration value which matches the given name. */
-static Type get_type(const char *name)
-{
-    if (strcmp(name, "Byte") == 0)
-        return dods_byte_c;
-
-    if (strcmp(name, "Int16") == 0)
-        return dods_int16_c;
-
-    if (strcmp(name, "UInt16") == 0)
-        return dods_uint16_c;
-
-    if (strcmp(name, "Int32") == 0)
-        return dods_int32_c;
-
-    if (strcmp(name, "UInt32") == 0)
-        return dods_uint32_c;
-
-    if (strcmp(name, "Float32") == 0)
-        return dods_float32_c;
-
-    if (strcmp(name, "Float64") == 0)
-        return dods_float64_c;
-
-    if (strcmp(name, "String") == 0)
-        return dods_str_c;
-
-    if (strcmp(name, "Url") == 0)
-        return dods_url_c;
-
-    if (strcmp(name, "Array") == 0)
-        return dods_array_c;
-
-    if (strcmp(name, "Structure") == 0)
-        return dods_structure_c;
-
-    if (strcmp(name, "Sequence") == 0)
-        return dods_sequence_c;
-
-    if (strcmp(name, "Grid") == 0)
-        return dods_grid_c;
-
-    return dods_null_c;
-}
-#endif
-
-#if 0
-// Not used. jhrg 1/17/13
-static Type is_simple_type(const char *name)
-{
-    Type t = get_type(name);
-    switch (t) {
-    case dods_byte_c:
-    case dods_int16_c:
-    case dods_uint16_c:
-    case dods_int32_c:
-    case dods_uint32_c:
-    case dods_float32_c:
-    case dods_float64_c:
-    case dods_str_c:
-    case dods_url_c:
-        return t;
-    default:
-        return dods_null_c;
-    }
-}
-#endif
-
 static bool is_not(const char *name, const char *tag)
 {
     return strcmp(name, tag) != 0;
@@ -1115,15 +1046,15 @@ void DDXParser::cleanup_parse(xmlParserCtxtPtr & context)
     }
 
     if (!wellFormed) {
-        throw DDXParseFailed(string("\nThe DDX is not a well formed XML document.\n") + error_msg);
+        throw DDXParseFailed(string("The DDX is not a well formed XML document.\n") + error_msg);
     }
 
     if (!valid) {
-        throw DDXParseFailed(string("\nThe DDX is not a valid document.\n") + error_msg);
+        throw DDXParseFailed(string("The DDX is not a valid document.\n") + error_msg);
     }
 
     if (get_state() == parser_error) {
-        throw DDXParseFailed(string("\nError parsing DDX response.\n") + error_msg);
+        throw DDXParseFailed(string("Error parsing DDX response.\n") + error_msg);
     }
 }
 
@@ -1144,12 +1075,15 @@ void DDXParser::intern_stream(istream &in, DDS *dest_dds, string &cid, const str
     char chars[size + 1];
 
     // int res = fread(chars, 1, 4, in);
-    in.readsome(chars, 4);
+    in.read(chars, 4);
     int res = in.gcount();
     if (res > 0) {
         chars[4]='\0';
         xmlParserCtxtPtr context = xmlCreatePushParserCtxt(NULL, NULL, chars, res, "stream");
 
+        if (!context)
+            throw DDXParseFailed("Error parsing DDX response: Input does not look like XML");
+
         ctxt = context;         // need ctxt for error messages
         dds = dest_dds;         // dump values here
         blob_href = &cid; 	// cid goes here
@@ -1196,6 +1130,9 @@ void DDXParser::intern_stream(istream &in, DDS *dest_dds, string &cid, const str
 
         cleanup_parse(context);
     }
+    else {
+        throw DDXParseFailed("Error parsing DDX response: Could not read from input stream.");
+    }
 }
 
 /** @brief Read the DDX from a stream instead of a file.
@@ -1204,8 +1141,7 @@ void DDXParser::intern_stream(FILE *in, DDS *dest_dds, string &cid, const string
 {
     // Code example from libxml2 docs re: read from a stream.
     if (!in || feof(in) || ferror(in))
-        throw InternalErr(__FILE__, __LINE__,
-                          "Input stream not open or read error");
+        throw InternalErr(__FILE__, __LINE__, "Input stream not open or read error");
 
     const int size = 1024;
     char chars[size];
@@ -1213,8 +1149,10 @@ void DDXParser::intern_stream(FILE *in, DDS *dest_dds, string &cid, const string
     int res = fread(chars, 1, 4, in);
     if (res > 0) {
         chars[4]='\0';
-        xmlParserCtxtPtr context =
-            xmlCreatePushParserCtxt(NULL, NULL, chars, res, "stream");
+        xmlParserCtxtPtr context = xmlCreatePushParserCtxt(NULL, NULL, chars, res, "stream");
+
+        if (!context)
+            throw DDXParseFailed("Error parsing DDX response: Input does not look like XML");
 
         ctxt = context;         // need ctxt for error messages
         dds = dest_dds;         // dump values here
@@ -1241,10 +1179,8 @@ void DDXParser::intern_stream(FILE *in, DDS *dest_dds, string &cid, const string
         context->validate = true;
 
 
-        while ((fgets(chars, size, in) > 0) && !is_boundary(chars, boundary)) {
-            //chars[size-1] = '\0';
+        while ((fgets(chars, size, in) != 0) && !is_boundary(chars, boundary)) {
             DBG(cerr << "line (" << strlen(chars) << "): " << chars << endl);
-
             xmlParseChunk(ctxt, chars, strlen(chars), 0);
         }
         // This call ends the parse: The fourth argument of xmlParseChunk is
@@ -1253,6 +1189,9 @@ void DDXParser::intern_stream(FILE *in, DDS *dest_dds, string &cid, const string
 
         cleanup_parse(context);
     }
+    else {
+        throw DDXParseFailed("Error parsing DDX response: Could not read from input file.");
+    }
 }
 
 
diff --git a/DEBIAN/control b/DEBIAN/control
new file mode 100644
index 0000000..6d840d2
--- /dev/null
+++ b/DEBIAN/control
@@ -0,0 +1,14 @@
+Package: libdap
+Version: 3.14.0-1
+Section: science
+Priority: optional
+Architecture: amd64
+Depends: libcurl4-openssl-dev (>= 7.22), libxml2-dev (>= 2.7), uuid-dev (>= 2.20)
+Maintainer: James Gallagher <jgallagher at opendap.org>
+Description: libdap
+ The libdap library contains an implementation of DAP2 and DAP4. This
+ package contains the library, dap-config, getdap and getdap4. The
+ script dap-config simplifies using the library in other projects. The
+ getdap and getdap4 utilities are a simple command-line tool to read
+ from DAP2 and DAP4 servers and are built using the library to
+ demonstrates simple uses of it.
diff --git a/DEBIAN/videbcontrol.sh b/DEBIAN/videbcontrol.sh
new file mode 100755
index 0000000..d1ec9fd
--- /dev/null
+++ b/DEBIAN/videbcontrol.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# Interactive script that lets you edit the contol file and then 
+# writes the hackd deb file
+
+if [[ -z "$1" ]]; then
+  echo "Syntax: $0 debfile"
+  exit 1
+fi
+
+DEBFILE="$1"
+TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
+OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb
+
+if [[ -e "$OUTPUT" ]]; then
+  echo "$OUTPUT exists."
+  rm -r "$TMPDIR"
+  exit 1
+fi
+
+dpkg-deb -x "$DEBFILE" "$TMPDIR"
+dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN
+
+if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
+  echo DEBIAN/control not found.
+
+  rm -r "$TMPDIR"
+  exit 1
+fi
+
+CONTROL="$TMPDIR"/DEBIAN/control
+
+MOD=`stat -c "%y" "$CONTROL"`
+vi "$CONTROL"
+
+if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
+  echo Not modfied.
+else
+  echo Building new deb...
+  dpkg -b "$TMPDIR" "$OUTPUT"
+fi
+
+rm -r "$TMPDIR"
diff --git a/DMR.cc b/DMR.cc
index 1310562..5f0b483 100644
--- a/DMR.cc
+++ b/DMR.cc
@@ -53,11 +53,10 @@
 
 #include "debug.h"
 
-
 /**
  * DapXmlNamespaces
  *
- * TODO  Replace all uses of the following variable with calls to DapXmlNamespaces
+ * TODO  Replace all uses of the following variables with calls to DapXmlNamespaces
  */
 const string c_xml_xsi = "http://www.w3.org/2001/XMLSchema-instance";
 const string c_xml_namespace = "http://www.w3.org/XML/1998/namespace";
diff --git a/Error.cc b/Error.cc
index 27e2f78..45738db 100644
--- a/Error.cc
+++ b/Error.cc
@@ -65,7 +65,8 @@ static const char *err_messages[] = {
     "Malformed expression",
     "No authorization",
     "Cannot read file",
-    "Cannot read file"
+    "Not Implemented",
+    ""
 };
 
 /** Specializations of Error should use this to set the error code and
diff --git a/Error.h b/Error.h
index bdcb7a5..be65806 100644
--- a/Error.h
+++ b/Error.h
@@ -56,16 +56,16 @@ typedef int ErrorCode; //using standard errno+netCDF error codes from server
 
 /** @name Internal DAP errors */
 //@{
-#define    undefined_error   1000 ///< Undefined error code
-#define    unknown_error     1001 ///< Unknown error
-#define    internal_error    1002 ///< Internal server error
-#define    no_such_file      1003
-#define    no_such_variable  1004
-#define    malformed_expr    1005
-#define    no_authorization  1006
-#define    cannot_read_file  1007
-#define    dummy_message     1008 // Dumplicate of 1007; see Error.cc
-
+#define    undefined_error   1000 ///< Undefined error code, an empty Error object was built
+#define    unknown_error     1001 ///< Unknown error (the default code) (HTTP 400)
+#define    internal_error    1002 ///< Internal server error (500)
+#define    no_such_file      1003 ///< (400)
+#define    no_such_variable  1004 ///< (400)
+#define    malformed_expr    1005 ///< (400)
+#define    no_authorization  1006 ///< (401)
+#define    cannot_read_file  1007 ///< (400)
+#define    not_implemented   1008 ///< Implies that it will/might be impl. (501)
+#define    dummy_message     1009 ///< @see Error.cc; end the array with ""
 //@}
 
 /** The Error class is used to transport error information from the server to
diff --git a/Error.tab.cc b/Error.tab.cc
deleted file mode 100644
index abc8dd5..0000000
--- a/Error.tab.cc
+++ /dev/null
@@ -1,1550 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "3.0.1"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-
-/* Substitute the variable and function names.  */
-#define yyparse         Errorparse
-#define yylex           Errorlex
-#define yyerror         Errorerror
-#define yydebug         Errordebug
-#define yynerrs         Errornerrs
-
-#define yylval          Errorlval
-#define yychar          Errorchar
-
-/* Copy the first part of user declarations.  */
-
-#line 75 "Error.tab.cc" /* yacc.c:339  */
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
-   by #include "Error.tab.hh".  */
-#ifndef YY_ERROR_ERROR_TAB_HH_INCLUDED
-# define YY_ERROR_ERROR_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int Errordebug;
-#endif
-/* "%code requires" blocks.  */
-#line 32 "Error.yy" /* yacc.c:355  */
-
-
-#include "config_dap.h"
-
-#include <iostream>
-
-#include "Error.h"
-
-#include "parser.h"
-#include "debug.h"
-#include "util.h"
-
-using namespace std;
-using namespace libdap;
-
-// These macros are used to access the `arguments' passed to the parser. A
-// pointer to an error object and a pointer to an integer status variable are
-// passed in to the parser within a structure (which itself is passed as a
-// pointer). Note that the ERROR macro explicitly casts OBJ to an ERROR *. 
-
-#define ERROR_OBJ(arg) ((Error *)((parser_arg *)(arg))->_object)
-#define STATUS(arg) ((parser_arg *)(arg))->_status
-
-//#define YYPARSE_PARAM arg
-
-extern int error_line_num;	// defined in Error.lex
-
-
-#line 134 "Error.tab.cc" /* yacc.c:355  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_INT = 258,
-    SCAN_STR = 259,
-    SCAN_ERROR = 260,
-    SCAN_CODE = 261,
-    SCAN_MSG = 262
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 75 "Error.yy" /* yacc.c:355  */
-
-#ifdef __SUNPRO_CC
-    int boolean;
-#else
-    bool boolean;
-#endif
-    int integer;
-    char *string;
-
-#line 164 "Error.tab.cc" /* yacc.c:355  */
-};
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE Errorlval;
-
-int Errorparse (parser_arg *arg);
-
-#endif /* !YY_ERROR_ERROR_TAB_HH_INCLUDED  */
-
-/* Copy the second part of user declarations.  */
-
-#line 179 "Error.tab.cc" /* yacc.c:358  */
-/* Unqualified %code blocks.  */
-#line 61 "Error.yy" /* yacc.c:359  */
-
-
-int Errorlex();			// the scanner
-void Errorerror(parser_arg *arg, const string &s);	// gotta love automatically generated names...
-
-
-#line 188 "Error.tab.cc" /* yacc.c:359  */
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                 \
-    while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
-#  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYSIZE_T yyi;                         \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
-      while (0)
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  4
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   16
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  12
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  7
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  8
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  20
-
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   262
-
-#define YYTRANSLATE(YYX)                                                \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,    10,
-       2,    11,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     8,     2,     9,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7
-};
-
-#if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_uint8 yyrline[] =
-{
-       0,   103,   103,   106,   109,   110,   113,   121,   120
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 0
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "SCAN_INT", "SCAN_STR", "SCAN_ERROR",
-  "SCAN_CODE", "SCAN_MSG", "'{'", "'}'", "';'", "'='", "$accept",
-  "error_object", "contents", "description", "code", "message", "$@1", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   123,   125,
-      59,    61
-};
-# endif
-
-#define YYPACT_NINF -8
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-8)))
-
-#define YYTABLE_NINF -1
-
-#define yytable_value_is_error(Yytable_value) \
-  0
-
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int8 yypact[] =
-{
-      -5,    -7,     2,    -3,    -8,    -6,    -2,    -8,    -1,     1,
-       0,     3,    -8,     5,    -8,     4,    -8,    -8,     6,    -8
-};
-
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       0,     0,     0,     0,     1,     0,     0,     3,     5,     0,
-       0,     0,     4,     0,     2,     0,     6,     7,     0,     8
-};
-
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-      -8,    -8,    -8,    -8,    -8,    -8,    -8
-};
-
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,     2,     6,     7,     8,    12,    18
-};
-
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
-static const yytype_uint8 yytable[] =
-{
-       1,     3,     4,     5,    13,     9,    11,    10,    17,     0,
-      14,     0,     0,     0,    15,    16,    19
-};
-
-static const yytype_int8 yycheck[] =
-{
-       5,     8,     0,     6,     3,    11,     7,     9,     4,    -1,
-      10,    -1,    -1,    -1,    11,    10,    10
-};
-
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
-{
-       0,     5,    13,     8,     0,     6,    14,    15,    16,    11,
-       9,     7,    17,     3,    10,    11,    10,     4,    18,    10
-};
-
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    12,    13,    14,    15,    15,    16,    18,    17
-};
-
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     5,     1,     2,     1,     4,     0,     5
-};
-
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (arg, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
-
-/* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
-
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Type, Value, arg); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_arg *arg)
-{
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
-  YYUSE (arg);
-  if (!yyvaluep)
-    return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-  YYUSE (yytype);
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_arg *arg)
-{
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, arg);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, parser_arg *arg)
-{
-  unsigned long int yylno = yyrline[yyrule];
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-             yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                                              , arg);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule, arg); \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                    return 2;
-                  yysize = yysize1;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  {
-    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-      return 2;
-    yysize = yysize1;
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_arg *arg)
-{
-  YYUSE (yyvaluep);
-  YYUSE (arg);
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-int
-yyparse (parser_arg *arg)
-{
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
-
-       Refer to the stacks through separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
-                    &yystacksize);
-
-        yyss = yyss1;
-        yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
-
-      {
-        yytype_int16 *yyss1 = yyss;
-        union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-#line 103 "Error.yy" /* yacc.c:1646  */
-    { (yyval.boolean) = (yyvsp[-2].boolean); STATUS(arg) = (yyvsp[-2].boolean); }
-#line 1263 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 3:
-#line 106 "Error.yy" /* yacc.c:1646  */
-    { (yyval.boolean) = (yyvsp[0].boolean); }
-#line 1269 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 4:
-#line 109 "Error.yy" /* yacc.c:1646  */
-    { (yyval.boolean) = (yyvsp[-1].boolean) && (yyvsp[0].boolean); }
-#line 1275 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 5:
-#line 110 "Error.yy" /* yacc.c:1646  */
-    { (yyval.boolean) = (yyvsp[0].boolean); }
-#line 1281 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 6:
-#line 114 "Error.yy" /* yacc.c:1646  */
-    { 
-		    ERROR_OBJ(arg)->set_error_code((ErrorCode)(yyvsp[-1].integer));
-		    (yyval.boolean) = true; 
-		}
-#line 1290 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 7:
-#line 121 "Error.yy" /* yacc.c:1646  */
-    { 
-		    ERROR_OBJ(arg)->set_error_message((yyvsp[0].string));
-		}
-#line 1298 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 8:
-#line 125 "Error.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = true;
-		}
-#line 1306 "Error.tab.cc" /* yacc.c:1646  */
-    break;
-
-
-#line 1310 "Error.tab.cc" /* yacc.c:1646  */
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now 'shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error.  |
-`--------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (arg, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (arg, yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
-
-      if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
-      else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval, arg);
-          yychar = YYEMPTY;
-        }
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-        YYABORT;
-
-
-      yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp, arg);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (arg, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, arg);
-    }
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp, arg);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  return yyresult;
-}
-#line 130 "Error.yy" /* yacc.c:1906  */
-
-
-void
-Errorerror(parser_arg *, const string &s)
-{
-  string msg = s;
-  msg += " line: ";
-  append_long_to_string(error_line_num, 10, msg);
-  msg += "\n";
-
-  throw Error(unknown_error, msg);
-}
-
diff --git a/Error.tab.hh b/Error.tab.hh
deleted file mode 100644
index e369b06..0000000
--- a/Error.tab.hh
+++ /dev/null
@@ -1,113 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-#ifndef YY_ERROR_ERROR_TAB_HH_INCLUDED
-# define YY_ERROR_ERROR_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int Errordebug;
-#endif
-/* "%code requires" blocks.  */
-#line 32 "Error.yy" /* yacc.c:1909  */
-
-
-#include "config_dap.h"
-
-#include <iostream>
-
-#include "Error.h"
-
-#include "parser.h"
-#include "debug.h"
-#include "util.h"
-
-using namespace std;
-using namespace libdap;
-
-// These macros are used to access the `arguments' passed to the parser. A
-// pointer to an error object and a pointer to an integer status variable are
-// passed in to the parser within a structure (which itself is passed as a
-// pointer). Note that the ERROR macro explicitly casts OBJ to an ERROR *. 
-
-#define ERROR_OBJ(arg) ((Error *)((parser_arg *)(arg))->_object)
-#define STATUS(arg) ((parser_arg *)(arg))->_status
-
-//#define YYPARSE_PARAM arg
-
-extern int error_line_num;	// defined in Error.lex
-
-
-#line 73 "Error.tab.hh" /* yacc.c:1909  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_INT = 258,
-    SCAN_STR = 259,
-    SCAN_ERROR = 260,
-    SCAN_CODE = 261,
-    SCAN_MSG = 262
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 75 "Error.yy" /* yacc.c:1909  */
-
-#ifdef __SUNPRO_CC
-    int boolean;
-#else
-    bool boolean;
-#endif
-    int integer;
-    char *string;
-
-#line 103 "Error.tab.hh" /* yacc.c:1909  */
-};
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE Errorlval;
-
-int Errorparse (parser_arg *arg);
-
-#endif /* !YY_ERROR_ERROR_TAB_HH_INCLUDED  */
diff --git a/Float32.cc b/Float32.cc
index c1fb7cd..31774a3 100644
--- a/Float32.cc
+++ b/Float32.cc
@@ -35,6 +35,8 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG
+
 #include <sstream>
 #include <iomanip>
 
@@ -59,12 +61,13 @@
 #include "D4StreamMarshaller.h"
 #include "D4StreamUnMarshaller.h"
 
-#include "util.h"
 #include "parser.h"
 #include "Operators.h"
 #include "dods-limits.h"
 #include "InternalErr.h"
 
+#include "util.h"
+#include "debug.h"
 
 using std::cerr;
 using std::endl;
@@ -124,16 +127,17 @@ Float32::width(bool) const
 bool
 Float32::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_float32( d_buf ) ;
 
     return true;
@@ -268,29 +272,44 @@ Float32::ops(BaseType *b, int op)
         throw InternalErr(__FILE__, __LINE__, "This value not read!");
     }
 
+    return d4_ops(b, op);
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Float32::d4_ops(BaseType *b, int op)
+{
+    DBG(cerr << "b->typename(): " << b->type_name() << endl);
+
     switch (b->type()) {
-        case dods_int8_c:
-            return Cmp<dods_float32, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
-        case dods_byte_c:
-            return SUCmp<dods_float32, dods_byte>(op, d_buf, static_cast<Byte*>(b)->value());
-        case dods_int16_c:
-            return Cmp<dods_float32, dods_int16>(op, d_buf, static_cast<Int16*>(b)->value());
-        case dods_uint16_c:
-            return SUCmp<dods_float32, dods_uint16>(op, d_buf, static_cast<UInt16*>(b)->value());
-        case dods_int32_c:
-            return Cmp<dods_float32, dods_int32>(op, d_buf, static_cast<Int32*>(b)->value());
-        case dods_uint32_c:
-            return SUCmp<dods_float32, dods_uint32>(op, d_buf, static_cast<UInt32*>(b)->value());
-        case dods_int64_c:
-            return Cmp<dods_float32, dods_int64>(op, d_buf, static_cast<Int64*>(b)->value());
-        case dods_uint64_c:
-            return SUCmp<dods_float32, dods_uint64>(op, d_buf, static_cast<UInt64*>(b)->value());
-        case dods_float32_c:
-            return Cmp<dods_float32, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
-        case dods_float64_c:
-            return Cmp<dods_float32, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
-        default:
-            return false;
+    case dods_int8_c:
+        return Cmp<dods_float32, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
+    case dods_byte_c:
+        return SUCmp<dods_float32, dods_byte>(op, d_buf, static_cast<Byte*>(b)->value());
+    case dods_int16_c:
+        return Cmp<dods_float32, dods_int16>(op, d_buf, static_cast<Int16*>(b)->value());
+    case dods_uint16_c:
+        return SUCmp<dods_float32, dods_uint16>(op, d_buf, static_cast<UInt16*>(b)->value());
+    case dods_int32_c:
+        return Cmp<dods_float32, dods_int32>(op, d_buf, static_cast<Int32*>(b)->value());
+    case dods_uint32_c:
+        return SUCmp<dods_float32, dods_uint32>(op, d_buf, static_cast<UInt32*>(b)->value());
+    case dods_int64_c:
+        return Cmp<dods_float32, dods_int64>(op, d_buf, static_cast<Int64*>(b)->value());
+    case dods_uint64_c:
+        return SUCmp<dods_float32, dods_uint64>(op, d_buf, static_cast<UInt64*>(b)->value());
+    case dods_float32_c:
+        return Cmp<dods_float32, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
+    case dods_float64_c:
+        DBG(cerr << "arg1: " << d_buf << " " << op  << " arg2: " << static_cast<Float64*>(b)->value() << endl);
+        // See the code in Float64::d4_ops() for an explanation of this odd-looking cast.
+        return Cmp<dods_float32, dods_float32>(op, d_buf, (float)static_cast<Float64*>(b)->value());
+    case dods_str_c:
+    case dods_url_c:
+        throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
+    default:
+        throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
 }
 
diff --git a/Float32.h b/Float32.h
index d90cef2..a3e109d 100644
--- a/Float32.h
+++ b/Float32.h
@@ -98,6 +98,7 @@ public:
                            bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Float64.cc b/Float64.cc
index 18e3f72..b0e746b 100644
--- a/Float64.cc
+++ b/Float64.cc
@@ -35,6 +35,8 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG
+
 #include <sstream>
 #include <iomanip>
 
@@ -125,16 +127,17 @@ Float64::width(bool) const
 bool
 Float64::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_float64( d_buf ) ;
 
     return true;
@@ -277,6 +280,14 @@ Float64::ops(BaseType *b, int op)
         throw InternalErr(__FILE__, __LINE__, "This value not read!");
     }
 
+    return d4_ops(b, op);
+}
+
+bool
+Float64::d4_ops(BaseType *b, int op)
+{
+    DBG(cerr << "b->typename(): " << b->type_name() << endl);
+
     switch (b->type()) {
         case dods_int8_c:
             return Cmp<dods_float64, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
@@ -295,14 +306,22 @@ Float64::ops(BaseType *b, int op)
         case dods_uint64_c:
             return SUCmp<dods_float64, dods_uint64>(op, d_buf, static_cast<UInt64*>(b)->value());
         case dods_float32_c:
-            return Cmp<dods_float64, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
+            // Note that this code casts the double (dods_float64) to a float because when
+            // real numbers are approximated using float or double, errors are larger in the float
+            // case, making <= and == operators fail. By casting to the smaller type, the
+            // same values have the same error and we can avoid using a range compare and a
+            // delta value.
+            return Cmp<dods_float32, dods_float32>(op, (float)d_buf, static_cast<Float32*>(b)->value());
         case dods_float64_c:
             return Cmp<dods_float64, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        case dods_str_c:
+        case dods_url_c:
+            throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
         default:
-            return false;
+            throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
-}
 
+}
 /** @brief dumps information about this object
  *
  * Displays the pointer value of this instance and information about this
diff --git a/Float64.h b/Float64.h
index a818100..838d626 100644
--- a/Float64.h
+++ b/Float64.h
@@ -96,6 +96,7 @@ public:
                            bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/GNU/GNURegex.h b/GNU/GNURegex.h
index cd6beaf..338460b 100644
--- a/GNU/GNURegex.h
+++ b/GNU/GNURegex.h
@@ -51,7 +51,7 @@ public:
 
     /// Does the pattern match.
     int match(const char* s, int len, int pos = 0);
-    /// How much of the string does the pattern matche.
+    /// How much of the string does the pattern match.
     int search(const char* s, int len, int& matchlen, int pos = 0);
 };
 
diff --git a/HTTPCache.cc b/HTTPCache.cc
index 52a7423..8754db0 100644
--- a/HTTPCache.cc
+++ b/HTTPCache.cc
@@ -25,7 +25,7 @@
 
 #include "config.h"
 
-//#define DODS_DEBUG
+// #define DODS_DEBUG
 // #define DODS_DEBUG2
 #undef USE_GETENV
 
@@ -130,12 +130,11 @@ HTTPCache::instance(const string &cache_root, bool force)
 {
     int status = pthread_once(&once_block, once_init_routine);
     if (status != 0)
-	throw InternalErr(__FILE__, __LINE__, "Could not initialize the HTTP Cache mutex. Exiting.");
+        throw InternalErr(__FILE__, __LINE__, "Could not initialize the HTTP Cache mutex. Exiting.");
 
     LOCK(&instance_mutex);
 
-    DBG(cerr << "Entering instance(); (" << hex << _instance << dec << ")"
-	    << "... ");
+    DBG(cerr << "Entering instance(); (" << hex << _instance << dec << ")" << "... ");
 
     try {
         if (!_instance) {
@@ -267,7 +266,7 @@ HTTPCache::HTTPCache(string cache_root, bool force) :
 	int block_size;
 
 	if (!get_single_user_lock(force))
-	    throw Error("Could not get single user lock for the cache");
+	    throw Error(internal_error, "Could not get single user lock for the cache");
 
 #ifdef WIN32
 	//  Windows is unable to provide us this information.  4096 appears
@@ -280,7 +279,7 @@ HTTPCache::HTTPCache(string cache_root, bool force) :
 	if (stat(cache_root.c_str(), &s) == 0)
 		block_size = s.st_blksize;
 	else
-		throw Error("Could not set file system block size.");
+		throw Error(internal_error, "Could not set file system block size.");
 #endif
 	d_http_cache_table = new HTTPCacheTable(d_cache_root, block_size);
 	d_cache_enabled = true;
@@ -615,7 +614,7 @@ HTTPCache::set_cache_root(const string &root)
     }
 
     // Test d_hhtp_cache_table because this method can be called before that
-    // instance is created and also can be called later to cahnge the cache
+    // instance is created and also can be called later to change the cache
     // root. jhrg 05.14.08
     if (d_http_cache_table)
     	d_http_cache_table->set_cache_root(d_cache_root);
@@ -1259,7 +1258,7 @@ HTTPCache::get_conditional_request_headers(const string &url)
     try {
         entry = d_http_cache_table->get_locked_entry_from_cache_table(url);
         if (!entry)
-            throw Error("There is no cache entry for the URL: " + url);
+            throw Error(internal_error, "There is no cache entry for the URL: " + url);
 
         if (entry->get_etag() != "")
             headers.push_back(string("If-None-Match: ") + entry->get_etag());
@@ -1328,7 +1327,7 @@ HTTPCache::update_response(const string &url, time_t request_time,
     try {
         entry = d_http_cache_table->get_write_locked_entry_from_cache_table(url);
         if (!entry)
-            throw Error("There is no cache entry for the URL: " + url);
+            throw Error(internal_error, "There is no cache entry for the URL: " + url);
 
         // Merge the new headers with the exiting HTTPCacheTable::CacheEntry object.
         d_http_cache_table->parse_headers(entry, d_max_entry_size, headers);
@@ -1403,7 +1402,7 @@ HTTPCache::is_url_valid(const string &url)
 
         entry = d_http_cache_table->get_locked_entry_from_cache_table(url);
         if (!entry)
-            throw Error("There is no cache entry for the URL: " + url);
+            throw Error(internal_error, "There is no cache entry for the URL: " + url);
 
         // If we supported range requests, we'd need code here to check if
         // there was only a partial response in the cache. 10/02/02 jhrg
@@ -1604,7 +1603,7 @@ HTTPCache::purge_cache()
 
     try {
         if (d_http_cache_table->is_locked_read_responses())
-            throw Error("Attempt to purge the cache with entries in use.");
+            throw Error(internal_error, "Attempt to purge the cache with entries in use.");
 
         d_http_cache_table->delete_all_entries();
     }
diff --git a/HTTPCacheTable.cc b/HTTPCacheTable.cc
index 0a77366..1c08806 100644
--- a/HTTPCacheTable.cc
+++ b/HTTPCacheTable.cc
@@ -385,7 +385,7 @@ public:
                          (long)(e->response_time),
                          (long)(e->corrected_initial_age),
                          e->must_revalidate ? '1' : '0') < 0)
-            throw Error("Cache Index. Error writing cache index\n");
+            throw Error(internal_error, "Cache Index. Error writing cache index\n");
     }
 };
 
@@ -478,7 +478,7 @@ HTTPCacheTable::create_hash_directory(int hash)
     errno = 0;
     if (mkdir(path.str().c_str(), 0777) < 0 && errno != EEXIST) {
         umask(mask);
-        throw Error("Could not create the directory for the cache at '" + path.str() + "' (" + strerror(errno) + ").");
+        throw Error(internal_error, "Could not create the directory for the cache at '" + path.str() + "' (" + strerror(errno) + ").");
     }
 
     // Restore themask
@@ -528,7 +528,7 @@ HTTPCacheTable::create_location(HTTPCacheTable::CacheEntry *entry)
     if (fd < 0) {
         // delete[] templat; templat = 0;
         // close(fd); Calling close() when fd is < 0 is a bad idea! jhrg 7/2/15
-        throw Error("The HTTP Cache could not create a file to hold the response; it will not be cached.");
+        throw Error(internal_error, "The HTTP Cache could not create a file to hold the response; it will not be cached.");
     }
 
     entry->cachename = &templat[0];
diff --git a/HTTPCacheTable.h b/HTTPCacheTable.h
index e8ec655..fddc92c 100644
--- a/HTTPCacheTable.h
+++ b/HTTPCacheTable.h
@@ -59,12 +59,14 @@
 #include "debug.h"
 #endif
 
+ //long_to_string(code));
 #define LOCK(m) do { \
 	int code = pthread_mutex_lock((m)); \
 	if (code != 0) \
 		throw InternalErr(__FILE__, __LINE__, string("Mutex lock: ") + strerror(code)); \
     } while(0);
 
+//+ long_to_string(code));
 #define UNLOCK(m) do { \
 	int code = pthread_mutex_unlock((m)); \
 	if (code != 0) \
diff --git a/HTTPConnect.cc b/HTTPConnect.cc
index 7e168cd..d14bd28 100644
--- a/HTTPConnect.cc
+++ b/HTTPConnect.cc
@@ -453,6 +453,7 @@ HTTPConnect::read_url(const string &url, FILE *stream, vector<string> *resp_hdrs
                         req_hdrs);
     if (headers)
         req_hdrs = for_each(headers->begin(), headers->end(), req_hdrs);
+
     curl_easy_setopt(d_curl, CURLOPT_HTTPHEADER, req_hdrs.get_headers());
 
     // Turn off the proxy for this URL?
@@ -646,6 +647,7 @@ HTTPConnect::fetch_url(const string &url)
     if (!d_content_type.empty() && find_if(stream->get_headers()->begin(), stream->get_headers()->end(),
     									   HeaderMatch("Content-Type:")) == stream->get_headers()->end())
         stream->get_headers()->push_back("Content-Type: " + d_content_type);
+
     parser = for_each(stream->get_headers()->begin(), stream->get_headers()->end(), ParseHeader());
 
 #ifdef HTTP_TRACE
diff --git a/INSTALL b/INSTALL
index cb645b7..069b574 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Updated for version 3.15.0 of the OPeNDAP DAP2/4 library software.
+Updated for version 3.18.0 of the OPeNDAP DAP2/4 library software.
 
 Installing the DAP2/4 library
 
@@ -20,7 +20,7 @@ BUILDING THE SOFTWARE
      before reporting problems. Thanks.
 
   1. Type `./configure' at the system prompt. On some systems you may have
-     to type `sh configure'.
+     to type `sh configure'. For people building from git, see below.
 
   2. Type `make' to build the library, `make check' to run the tests.
      You must have CppUnit to run `make check.' On a Mandrake/Mandriva
@@ -42,14 +42,11 @@ Building from Our GIT Repository
       autoreconf --force --install --verbose
   Then run ./configure, make and make check. Use --prefix with configure
   to set the installation to a location other than /usr/local. Use
-  --enable-developer to trun on the library's asserts and build with
-  debuggin symbols. Use --jobs=N with make and make check to run those
+  --enable-developer to turn on the library's asserts and build with
+  debugging symbols. Use --jobs=N with make and make check to run those
   in parallel on multi core machines and add TESTSUITEFLAGS=-j9 to make
   check to run the regression tests in parallel.
 
-  Make certain that you have recent versions of autoconf, automake and
-  libtool.
-
 AFTER INSTALLING
 
   o Set the PATH environment variable to include the bin directory where
@@ -77,13 +74,13 @@ REQUIREMENTS
     --verbose' and then build as described above. You also need bison 3
     and flex 2.5.35 or greater.
 
-  o The library uses libcurl and libxml2. You will need these libraries
-    installed on your system to successfully run configure and build the
-    library. You must have libcurl version 7.19.0 or newer and libxml2 2.7.0
-    or newer.
+  o The library uses libcurl, libxml2 and libuuid (the latter on linux 
+    but not OSX). You will need these libraries installed on your system
+    to successfully run configure and build the library. You must have
+    libcurl version 7.19.0 or newer and libxml2 2.7.0 or newer.
 
   o If you are concerned about introducing problems with your OS's package
-    system, build and install curl, et c., into a special directory (e.g.,
+    system, build and install curl, etc., into a special directory (e.g.,
     /opt/opendap/) and then be sure to set PATH to include the curl-config
     and xml2-config scripts before running configure (e.g., run configure as
     'PATH="$PATH:/opt/opendap/bin';./configure'). You probably should install
diff --git a/INSTALL.AIX b/INSTALL.AIX
new file mode 100644
index 0000000..a7ef20a
--- /dev/null
+++ b/INSTALL.AIX
@@ -0,0 +1,110 @@
+These are instructions for building the source on AIX. Hopefully more and more
+of these steps will be incorporated into the regular build. jhrg
+
+On May 4, 2006, at 11:10 AM, Dan Stromberg wrote:
+
+Hi James.
+
+Believe it or not, I appear to have gotten it working last night, based
+in part on my earlier work, and based in part on the message Martin
+sent.
+
+I did it a little bit differently both from how Martin wrapped things
+up, as well as a bit differently from what I was doing previously.
+
+Specifically:
+
+     1. I did all my configure's with --disable-dynamic --enable-static
+        - because AIX's shared libraries are a bit of a mess
+     2. On any package with C++ in it, I used CXX='xlC_r -q64
+        -qrtti=all'.  I suspect this is an alternative to the
+        -qlanglvl=extended Martin was using
+     3. On libdap I used CONFIG_SHELL=/usr/local/bin/bash prior to
+        configure
+     4. On libdap I got around the malloc problem by relying on the
+        malloc version that comes with the software instead of using an
+        external malloc library.  I did this by changing #undef malloc
+        to #undef this_was_malloc in config.h.in followed by an
+        autoconf.
+
+Thanks!
+
+Here's the body of an older email, also from Dan, about an earlier albeit
+somewhat more complicated success. The patches he describes have since been
+applied to the sources and the result checked into our source code control
+system.
+
+Patches to the source from Dan Stromberg:
+    
+    http://dcs.nac.uci.edu/~strombrg/opendap/libdap-AIX-patches.tar.gz
+
+  [These patches have been applied to version 3.7.0 of the library. jhrg]
+
+This is from an email message from Martin Peschke. Martin describes building
+the OPeNDAP data server, which requires libdap, so these instructions should
+work for the library although there maybe some steps that are not needed if
+you're building just libdap. The instructions pertain to libdap 3.6.2. Note
+that other people have had some problems building on AIX, so these steps
+might not work for you. Please direct all questions about the build to
+OPeNDAP's support email (support at unidata.ucar.edu) or to our email list
+dods-tech at unidata.ucar.edu and not to Martin! Also, Martin wanted me to pass
+on that he cannot guarantee these steps will work for anyone else!
+
+The AIX Version should be “powerpc-ibm-aix5.2.0.0”
+The xlc_r and xlC_r should be “VisualAge C++ Professional / C for AIX Compiler,
+Version 6.”
+The system has perl version 5.8.0
+
+I used the following packages:
+zlib-1.2.3
+curl-7.15.1
+libxml2-2.6.23
+libdap-3.6.2
+netcdf-3.6.0-p1
+netcdf_handler-3.6.0
+dap-server-3.6.1
+
+I used for most of the packages the following setup:
+
+export PATH=$PATH:<your opendap directory>/bin:\
+<your opendap directory>/lib:<your opendap directory>/include
+export CC="xlc_r -q64 /usr/local/lib/libmmalloc.a"
+export CXX="xlC_r -qlanglvl=extended -q64 /usr/local/lib/libmmalloc.a"
+export OBJECT_MODE=64
+./configure --prefix=<your opendap directory>
+make
+make install
+
+I encountered a few problems:
+
+The first one is that I had to uncomment the rpl_malloc in libdap-3.6.2:
+
+Open the file "config.h" look for the following line:
+#define malloc rpl_malloc
+change this line to:
+/* #define malloc rpl_malloc */
+
+The next one is that I had to manually link deflate in libdap-3.6.2 because
+make could not find the zlib library.
+
+For the netcdf_handler-3.6.0, I had to add a new parameter for the
+configuration:
+
+./configure --prefix=<your opendap directory> --with-netcdf=<your opendap directory>
+
+Also in netcdf_handler-3.6.0, I had to change the configure file to be more
+C conform and not C++.  Please see the included discussion.
+
+For the dap-server-3.6.1, I extended the export for CXX to:
+
+export CXX="xlC_r -qlanglvl=extended -q64 -I<your opendap directory>/include /usr/local/lib/libmmalloc.a"
+
+And then I changed the file dap-server.rc to point to the right curl
+executable and that only netcdf is available.
+
+The last thing what I did, I changed the DODS_Dispatch.pm to a specified port.
+I believe that this change is more a site specific change and a firewall
+problem.
+
+Hope this helps.
+    
diff --git a/Int16.cc b/Int16.cc
index cf2eb44..9e634d8 100644
--- a/Int16.cc
+++ b/Int16.cc
@@ -121,16 +121,17 @@ Int16::width(bool) const
 bool
 Int16::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_int16( d_buf ) ;
 
     return true;
@@ -263,6 +264,14 @@ Int16::ops(BaseType *b, int op)
         throw InternalErr(__FILE__, __LINE__, "This value not read!");
     }
 
+    return d4_ops(b, op);
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Int16::d4_ops(BaseType *b, int op)
+{
     switch (b->type()) {
         case dods_int8_c:
             return Cmp<dods_int16, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
@@ -284,8 +293,11 @@ Int16::ops(BaseType *b, int op)
             return Cmp<dods_int16, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
         case dods_float64_c:
             return Cmp<dods_int16, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        case dods_str_c:
+        case dods_url_c:
+            throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
         default:
-            return false;
+            throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
 }
 
diff --git a/Int16.h b/Int16.h
index e26de1b..ff14f91 100644
--- a/Int16.h
+++ b/Int16.h
@@ -95,6 +95,7 @@ public:
                            bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Int32.cc b/Int32.cc
index d777f3f..10fb57e 100644
--- a/Int32.cc
+++ b/Int32.cc
@@ -36,6 +36,8 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG
+
 #include <sstream>
 
 #include "Byte.h"           // synonymous with UInt8 and Char
@@ -131,16 +133,17 @@ bool
 Int32::serialize(ConstraintEvaluator &eval, DDS &dds,
                  Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_int32( d_buf ) ;
 
     return true;
@@ -238,15 +241,14 @@ Int32::print_val(FILE *out, string space, bool print_decl_p)
     fwrite(oss.str().data(), sizeof(char), oss.str().length(), out);
 }
 
-void
-Int32::print_val(ostream &out, string space, bool print_decl_p)
+void Int32::print_val(ostream &out, string space, bool print_decl_p)
 {
     if (print_decl_p) {
         print_decl(out, space, false);
-	out << " = " << (int)d_buf << ";\n" ;
+        out << " = " << (int) d_buf << ";\n";
     }
     else
-	out << (int)d_buf ;
+        out << (int) d_buf;
 }
 
 bool
@@ -271,6 +273,15 @@ Int32::ops(BaseType *b, int op)
         throw InternalErr(__FILE__, __LINE__, "This value not read!");
     }
 
+    return d4_ops(b, op);
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Int32::d4_ops(BaseType *b, int op)
+{
+	DBG(cerr << "b->typename(): " << b->type_name() << endl);
     switch (b->type()) {
         case dods_int8_c:
             return Cmp<dods_int32, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
@@ -292,8 +303,11 @@ Int32::ops(BaseType *b, int op)
             return Cmp<dods_int32, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
         case dods_float64_c:
             return Cmp<dods_int32, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        case dods_str_c:
+        case dods_url_c:
+            throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
         default:
-            return false;
+            throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
 }
 
diff --git a/Int32.h b/Int32.h
index c8c6bae..e376262 100644
--- a/Int32.h
+++ b/Int32.h
@@ -101,6 +101,7 @@ public:
                            bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Int64.cc b/Int64.cc
index ae4aebd..c95c111 100644
--- a/Int64.cc
+++ b/Int64.cc
@@ -79,6 +79,9 @@ namespace libdap {
     to be created.  The name may be omitted, which will create a
     nameless variable.  This may be adequate for some applications.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Atomic_Types
+
     @param n A string containing the name of the variable to be
     created.
 */
@@ -88,6 +91,9 @@ Int64::Int64(const string &n) : BaseType(n, dods_int64_c, true /*is_dap4*/), d_b
 /** The Int64 server-side constructor accepts the name of the variable and
     the dataset name from which this instance is created.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Atomic_Types
+
     @param n A string containing the name of the variable to be created.
     @param d A string containing the name of the dataset from which this
     variable is created
@@ -195,6 +201,16 @@ Int64::ops(BaseType *b, int op)
     if (!b->read_p() && !b->read())
         throw InternalErr(__FILE__, __LINE__, "This value not read!");
 
+    return d4_ops(b, op);
+
+    return false;
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Int64::d4_ops(BaseType *b, int op)
+{
     switch (b->type()) {
         case dods_int8_c:
             return Cmp<dods_int64, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
@@ -216,11 +232,12 @@ Int64::ops(BaseType *b, int op)
             return Cmp<dods_int64, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
         case dods_float64_c:
             return Cmp<dods_int64, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        case dods_str_c:
+        case dods_url_c:
+            throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
         default:
-            return false;
+            throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
-
-    return false;
 }
 
 /** @brief dumps information about this object
diff --git a/Int64.h b/Int64.h
index 411dd3c..019e191 100644
--- a/Int64.h
+++ b/Int64.h
@@ -83,6 +83,7 @@ public:
     virtual void print_val(ostream &out, string space = "", bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Int8.cc b/Int8.cc
index 395aa74..755bf10 100644
--- a/Int8.cc
+++ b/Int8.cc
@@ -59,19 +59,27 @@ namespace libdap {
 
 /** The Int8 constructor accepts the name of the variable to be created.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Atomic_Types
+
     @param n A string containing the name of the variable to be created.
 */
-Int8::Int8(const string &n) : BaseType(n, dods_int8_c), d_buf(0)
+Int8::Int8(const string &n) : BaseType(n, dods_int8_c, true /*is_dap4*/), d_buf(0)
 {}
 
 /** The Int8 server-side constructor accepts the name of the variable and
-    the dataset name from which this instance is created.
+    the dataset name from which this instance is created. This is a signed
+    8-bit integer and was added for DAP4; Byte and UInt8 are unsigned 8-bit
+    integers.
+
+    @note This integer type cannot be used with DAP2; it is only present in DAP4.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Atomic_Types.
 
     @param n A string containing the name of the variable to be created.
     @param d A string containing the name of the dataset from which this
     variable is created
 */
-Int8::Int8(const string &n, const string &d) : BaseType(n, d, dods_int8_c), d_buf(0)
+Int8::Int8(const string &n, const string &d) : BaseType(n, d, dods_int8_c, true /*is_dap4*/), d_buf(0)
 {}
 
 Int8::Int8(const Int8 &copy_from) : BaseType(copy_from)
@@ -152,7 +160,7 @@ void Int8::print_val(ostream &out, string space, bool print_decl_p)
 {
 	if (print_decl_p) {
 		print_decl(out, space, false);
-		out << " = " << d_buf << ";\n";
+		out << " = " << (int)d_buf << ";\n";
 	}
 	else
 		out << (int)d_buf;
@@ -169,6 +177,14 @@ Int8::ops(BaseType *b, int op)
     if (!b->read_p() && !b->read())
         throw InternalErr(__FILE__, __LINE__, "This value not read!");
 
+    return d4_ops(b, op);
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Int8::d4_ops(BaseType *b, int op)
+{
     switch (b->type()) {
         case dods_int8_c:
             return Cmp<dods_int8, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
@@ -190,36 +206,16 @@ Int8::ops(BaseType *b, int op)
             return Cmp<dods_int8, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
         case dods_float64_c:
             return Cmp<dods_int8, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        case dods_str_c:
+        case dods_url_c:
+            throw Error(malformed_expr, "Relational operators can only compare compatible types (number, string).");
         default:
-            return false;
-    }
-#if 0
-    switch (b->type()) {
-        case dods_byte_c:
-            return rops<dods_int8, dods_byte, SUCmp<dods_int8, dods_byte> >(d_buf, static_cast<Byte*>(b)->value());
-        case dods_int16_c:
-            return rops<dods_int8, dods_int16, Cmp<dods_int8, dods_int16> >(d_buf, static_cast<Int16 *>(b)->value());
-        case dods_uint16_c:
-            return rops<dods_int8, dods_uint16, SUCmp<dods_int8, dods_uint16> >(d_buf, static_cast<UInt16 *>(b)->value());
-        case dods_int32_c:
-            return rops<dods_int8, dods_int32, Cmp<dods_int8, dods_int32> >(d_buf, static_cast<Int32 *>(b)->value());
-        case dods_uint32_c:
-            return rops<dods_int8, dods_uint32, SUCmp<dods_int8, dods_uint32> >(d_buf, static_cast<UInt32 *>(b)->value());
-        case dods_int64_c:
-            return rops<dods_int8, dods_int64, Cmp<dods_int8, dods_int64> >(d_buf, static_cast<Int64 *>(b)->value());
-        case dods_uint64_c:
-            return rops<dods_int8, dods_uint64, Cmp<dods_int8, dods_uint64> >(d_buf, static_cast<UInt64 *>(b)->value());
-        case dods_float32_c:
-            return rops<dods_int8, dods_float32, Cmp<dods_int64, dods_float32> >(d_buf, static_cast<Float32 *>(b)->value());
-        case dods_float64_c:
-            return rops<dods_int8, dods_float64, Cmp<dods_int64, dods_float64> >(d_buf, static_cast<Float64 *>(b)->value());
-        default:
-            return false;
+            throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
-#endif
 }
 
-/** @brief dumps information about this object
+/**
+ * @brief dumps information about this object
  *
  * Displays the pointer value of this instance and information about this
  * instance.
diff --git a/Int8.h b/Int8.h
index bb9144e..5175071 100644
--- a/Int8.h
+++ b/Int8.h
@@ -77,6 +77,7 @@ public:
     virtual void print_val(ostream &out, string space = "", bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Makefile.am b/Makefile.am
index 6827f3d..39d226b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,8 +25,8 @@ if BUILD_DEVELOPER
 AM_CXXFLAGS += $(CXXFLAGS_DEBUG)
 endif
 
-SUBDIRS = gl d4_ce d4_function .  tests unit-tests
-DIST_SUBDIRS = gl d4_ce d4_function tests unit-tests
+SUBDIRS = gl d4_ce d4_function . unit-tests tests 
+DIST_SUBDIRS = gl d4_ce d4_function unit-tests tests
 
 noinst_LTLIBRARIES = libparsers.la
 
@@ -94,11 +94,11 @@ getdap4_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CFLAGS)
 LEX_YACC_EXTRA = das.lex das.yy dds.lex dds.yy ce_expr.lex ce_expr.yy \
 Error.lex Error.yy
 
-EXTRA_DIST = ChangeLog COPYING README.dodsrc COPYRIGHT_URI		\
-	COPYRIGHT_W3C GNU/README doxy.conf doxy_private.conf		\
-	libdap.spec VCPP dods-datatypes-static.h			\
-	xdr-datatypes-static.h dap-config-pkgconfig $(LEX_YACC_EXTRA)	\
-	OSX_Resources getdap.man1 dap-config.man1 getdap4.man1
+EXTRA_DIST = ChangeLog COPYING README.dodsrc COPYRIGHT_URI	\
+	COPYRIGHT_W3C GNU/README doxy.conf.in libdap.spec VCPP	\
+	dods-datatypes-static.h xdr-datatypes-static.h		\
+	dap-config-pkgconfig $(LEX_YACC_EXTRA) OSX_Resources	\
+	getdap.man1 dap-config.man1 getdap4.man1
 
 dist_aclocal_DATA = conf/libdap.m4
 pkgconfig_DATA = libdap.pc libdapclient.pc libdapserver.pc
@@ -107,10 +107,14 @@ CLEANFILES = *.log *.output *.gcda *.gcno $(BISON_SRC) $(FLEX_SRC) \
 	dods-datatypes.h xdr-datatypes.h getdap.1 dap-config.1 getdap4.1
 
 .PHONY: docs
-docs:
-	doxygen $(srcdir)/doxy.conf
+docs: doxy.conf
+	doxygen doxy.conf
 	(cd docs && tar -czf html.tar.gz html)
 
+# Not needed. jhrg 1/4/16
+# doxy.conf: doxy.conf.in config.status
+# 	./config.status --file=doxy.conf
+
 # cccc computes metrics like Lines of code and McCabe. It'a available
 # on the web...
 .PHONY: cccc
@@ -249,7 +253,8 @@ DAP4_ONLY_SRC = D4StreamMarshaller.cc D4StreamUnMarshaller.cc Int64.cc \
         UInt64.cc Int8.cc D4ParserSax2.cc D4BaseTypeFactory.cc \
         D4Dimensions.cc  D4EnumDefs.cc D4Group.cc DMR.cc \
         D4Attributes.cc D4Enum.cc chunked_ostream.cc chunked_istream.cc \
-        D4Sequence.cc D4Maps.cc D4Opaque.cc D4AsyncUtil.cc D4RValue.cc
+        D4Sequence.cc D4Maps.cc D4Opaque.cc D4AsyncUtil.cc D4RValue.cc \
+        D4FilterClause.cc
 
 Operators.h: ce_expr.tab.hh
 
@@ -284,7 +289,7 @@ DAP4_ONLY_HDR = D4StreamMarshaller.h D4StreamUnMarshaller.h Int64.h \
         D4Maps.h D4Dimensions.h D4EnumDefs.h D4Group.h DMR.h D4Attributes.h \
         D4AttributeType.h D4Enum.h chunked_stream.h chunked_ostream.h \
         chunked_istream.h D4Sequence.h crc.h D4Opaque.h D4AsyncUtil.h \
-        D4Function.h D4RValue.h
+        D4Function.h D4RValue.h D4FilterClause.h
 
 if USE_C99_TYPES
 dods-datatypes.h: dods-datatypes-static.h
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index 54a118c..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,2919 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Build libdap, libtest-types.a, getdap, getdap4
-
-
-
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at COMPILER_IS_GCC_TRUE@am__append_1 = -Wall -W -Wcast-align
- at BUILD_DEVELOPER_TRUE@am__append_2 = $(CXXFLAGS_DEBUG)
-bin_PROGRAMS = getdap$(EXEEXT) getdap4$(EXEEXT)
- at DAP4_DEFINED_TRUE@am__append_3 = $(DAP4_ONLY_SRC)
- at DAP4_DEFINED_TRUE@am__append_4 = -lcrypto 
- at DAP4_DEFINED_TRUE@am__append_5 = $(DAP4_CLIENT_HDR) $(DAP4_CLIENT_SRC)
- at DAP4_DEFINED_TRUE@am__append_6 = $(DAP4_ONLY_HDR) $(DAP4_CLIENT_HDR)
-subdir = .
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/configure $(am__configure_deps) \
-	$(srcdir)/config.h.in $(srcdir)/dods-datatypes-config.h.in \
-	$(srcdir)/xdr-datatypes-config.h.in $(srcdir)/libdap.pc.in \
-	$(srcdir)/libdapclient.pc.in $(srcdir)/libdapserver.pc.in \
-	$(srcdir)/main_page.doxygen.in $(srcdir)/doxy.conf.in \
-	$(srcdir)/abi_checker.xml.in $(srcdir)/dap-config.in \
-	$(top_srcdir)/conf/depcomp $(dist_aclocal_DATA) \
-	$(noinst_HEADERS) $(am__pkginclude_HEADERS_DIST) COPYING \
-	ChangeLog INSTALL NEWS README conf/compile conf/config.guess \
-	conf/config.rpath conf/config.sub conf/depcomp conf/install-sh \
-	conf/missing conf/ltmain.sh $(top_srcdir)/conf/compile \
-	$(top_srcdir)/conf/config.guess \
-	$(top_srcdir)/conf/config.rpath $(top_srcdir)/conf/config.sub \
-	$(top_srcdir)/conf/install-sh $(top_srcdir)/conf/ltmain.sh \
-	$(top_srcdir)/conf/missing
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h dods-datatypes-config.h \
-	xdr-datatypes-config.h
-CONFIG_CLEAN_FILES = libdap.pc libdapclient.pc libdapserver.pc \
-	main_page.doxygen doxy.conf abi_checker.xml dap-config
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
-	"$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
-	"$(DESTDIR)$(aclocaldir)" "$(DESTDIR)$(pkgconfigdir)" \
-	"$(DESTDIR)$(pkgincludedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libdap_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	gl/libgnu.la d4_ce/libd4_ce_parser.la \
-	d4_function/libd4_function_parser.la libparsers.la \
-	$(am__DEPENDENCIES_1)
-am__libdap_la_SOURCES_DIST = AttrTable.cc DAS.cc DDS.cc DataDDS.cc \
-	DDXParserSAX2.cc BaseType.cc Byte.cc Int32.cc Float64.cc \
-	Str.cc Url.cc Vector.cc Array.cc Structure.cc Sequence.cc \
-	Grid.cc UInt32.cc Int16.cc UInt16.cc Float32.cc Constructor.cc \
-	BaseTypeFactory.cc SignalHandler.cc Error.cc InternalErr.cc \
-	util.cc xdrutil_ppc.c parser-util.cc escaping.cc Clause.cc \
-	RValue.cc ConstraintEvaluator.cc DapIndent.cc Operators.h \
-	XDRUtils.cc XDRFileMarshaller.cc XDRStreamMarshaller.cc \
-	XDRFileUnMarshaller.cc XDRStreamUnMarshaller.cc mime_util.cc \
-	Keywords2.cc XMLWriter.cc ServerFunctionsList.cc \
-	ServerFunction.cc DapXmlNamespaces.cc MarshallerThread.cc \
-	GNU/GetOpt.cc GNU/GNURegex.cc D4StreamMarshaller.cc \
-	D4StreamUnMarshaller.cc Int64.cc UInt64.cc Int8.cc \
-	D4ParserSax2.cc D4BaseTypeFactory.cc D4Dimensions.cc \
-	D4EnumDefs.cc D4Group.cc DMR.cc D4Attributes.cc D4Enum.cc \
-	chunked_ostream.cc chunked_istream.cc D4Sequence.cc D4Maps.cc \
-	D4Opaque.cc D4AsyncUtil.cc D4RValue.cc
-am__objects_1 = libdap_la-AttrTable.lo libdap_la-DAS.lo \
-	libdap_la-DDS.lo libdap_la-DataDDS.lo \
-	libdap_la-DDXParserSAX2.lo libdap_la-BaseType.lo \
-	libdap_la-Byte.lo libdap_la-Int32.lo libdap_la-Float64.lo \
-	libdap_la-Str.lo libdap_la-Url.lo libdap_la-Vector.lo \
-	libdap_la-Array.lo libdap_la-Structure.lo \
-	libdap_la-Sequence.lo libdap_la-Grid.lo libdap_la-UInt32.lo \
-	libdap_la-Int16.lo libdap_la-UInt16.lo libdap_la-Float32.lo \
-	libdap_la-Constructor.lo libdap_la-BaseTypeFactory.lo \
-	libdap_la-SignalHandler.lo libdap_la-Error.lo \
-	libdap_la-InternalErr.lo libdap_la-util.lo \
-	libdap_la-xdrutil_ppc.lo libdap_la-parser-util.lo \
-	libdap_la-escaping.lo libdap_la-Clause.lo libdap_la-RValue.lo \
-	libdap_la-ConstraintEvaluator.lo libdap_la-DapIndent.lo \
-	libdap_la-XDRUtils.lo libdap_la-XDRFileMarshaller.lo \
-	libdap_la-XDRStreamMarshaller.lo \
-	libdap_la-XDRFileUnMarshaller.lo \
-	libdap_la-XDRStreamUnMarshaller.lo libdap_la-mime_util.lo \
-	libdap_la-Keywords2.lo libdap_la-XMLWriter.lo \
-	libdap_la-ServerFunctionsList.lo libdap_la-ServerFunction.lo \
-	libdap_la-DapXmlNamespaces.lo libdap_la-MarshallerThread.lo
-am__dirstamp = $(am__leading_dot)dirstamp
-am__objects_2 = GNU/libdap_la-GetOpt.lo GNU/libdap_la-GNURegex.lo
-am__objects_3 = libdap_la-D4StreamMarshaller.lo \
-	libdap_la-D4StreamUnMarshaller.lo libdap_la-Int64.lo \
-	libdap_la-UInt64.lo libdap_la-Int8.lo \
-	libdap_la-D4ParserSax2.lo libdap_la-D4BaseTypeFactory.lo \
-	libdap_la-D4Dimensions.lo libdap_la-D4EnumDefs.lo \
-	libdap_la-D4Group.lo libdap_la-DMR.lo \
-	libdap_la-D4Attributes.lo libdap_la-D4Enum.lo \
-	libdap_la-chunked_ostream.lo libdap_la-chunked_istream.lo \
-	libdap_la-D4Sequence.lo libdap_la-D4Maps.lo \
-	libdap_la-D4Opaque.lo libdap_la-D4AsyncUtil.lo \
-	libdap_la-D4RValue.lo
- at DAP4_DEFINED_TRUE@am__objects_4 = $(am__objects_3)
-am_libdap_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
-	$(am__objects_4)
-libdap_la_OBJECTS = $(am_libdap_la_OBJECTS)
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-libdap_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(libdap_la_LDFLAGS) $(LDFLAGS) -o $@
-libdapclient_la_DEPENDENCIES = $(am__DEPENDENCIES_1) libdap.la \
-	$(am__DEPENDENCIES_1)
-am__libdapclient_la_SOURCES_DIST = RCReader.cc Connect.cc \
-	HTTPConnect.cc HTTPCache.cc util_mit.cc ResponseTooBigErr.cc \
-	HTTPCacheTable.cc D4Connect.h D4Connect.cc
-am__objects_5 = libdapclient_la-RCReader.lo libdapclient_la-Connect.lo \
-	libdapclient_la-HTTPConnect.lo libdapclient_la-HTTPCache.lo \
-	libdapclient_la-util_mit.lo \
-	libdapclient_la-ResponseTooBigErr.lo \
-	libdapclient_la-HTTPCacheTable.lo
-am__objects_6 =
-am__objects_7 = libdapclient_la-D4Connect.lo
- at DAP4_DEFINED_TRUE@am__objects_8 = $(am__objects_6) $(am__objects_7)
-am_libdapclient_la_OBJECTS = $(am__objects_5) $(am__objects_8)
-libdapclient_la_OBJECTS = $(am_libdapclient_la_OBJECTS)
-libdapclient_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(AM_CXXFLAGS) $(CXXFLAGS) $(libdapclient_la_LDFLAGS) \
-	$(LDFLAGS) -o $@
-libdapserver_la_DEPENDENCIES = libdap.la $(am__DEPENDENCIES_1)
-am__objects_9 = DODSFilter.lo Ancillary.lo
-am_libdapserver_la_OBJECTS = $(am__objects_9)
-libdapserver_la_OBJECTS = $(am_libdapserver_la_OBJECTS)
-libdapserver_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(AM_CXXFLAGS) $(CXXFLAGS) $(libdapserver_la_LDFLAGS) \
-	$(LDFLAGS) -o $@
-libparsers_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__objects_10 = libparsers_la-lex.das.lo libparsers_la-lex.dds.lo \
-	libparsers_la-lex.ce_expr.lo libparsers_la-lex.Error.lo
-am__objects_11 = libparsers_la-das.tab.lo libparsers_la-dds.tab.lo \
-	libparsers_la-ce_expr.tab.lo libparsers_la-Error.tab.lo
-am_libparsers_la_OBJECTS = $(am__objects_10) $(am__objects_11)
-libparsers_la_OBJECTS = $(am_libparsers_la_OBJECTS)
-PROGRAMS = $(bin_PROGRAMS)
-am_getdap_OBJECTS = getdap-getdap.$(OBJEXT)
-getdap_OBJECTS = $(am_getdap_OBJECTS)
-getdap_DEPENDENCIES = libdapclient.la libdap.la
-am_getdap4_OBJECTS = getdap4-getdap4.$(OBJEXT)
-getdap4_OBJECTS = $(am_getdap4_OBJECTS)
-getdap4_DEPENDENCIES = libdapclient.la libdap.la
-SCRIPTS = $(bin_SCRIPTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/conf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(libdap_la_SOURCES) $(libdapclient_la_SOURCES) \
-	$(libdapserver_la_SOURCES) $(libparsers_la_SOURCES) \
-	$(getdap_SOURCES) $(getdap4_SOURCES)
-DIST_SOURCES = $(am__libdap_la_SOURCES_DIST) \
-	$(am__libdapclient_la_SOURCES_DIST) $(libdapserver_la_SOURCES) \
-	$(libparsers_la_SOURCES) $(getdap_SOURCES) $(getdap4_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-DATA = $(dist_aclocal_DATA) $(pkgconfig_DATA)
-am__pkginclude_HEADERS_DIST = AttrTable.h DAS.h DDS.h DataDDS.h \
-	DDXParserSAX2.h DDXExceptions.h BaseType.h Byte.h Int32.h \
-	Float64.h Str.h Url.h Vector.h Array.h Constructor.h \
-	Structure.h Sequence.h Grid.h UInt32.h Int16.h UInt16.h \
-	Float32.h BaseTypeFactory.h ObjectType.h EncodingType.h \
-	SignalHandler.h Error.h InternalErr.h util.h escaping.h \
-	parser.h debug.h dods-limits.h dods-datatypes.h Type.h \
-	util_mit.h expr.h Clause.h RValue.h ConstraintEvaluator.h \
-	ce_parser.h DapIndent.h DapObj.h XDRFileMarshaller.h \
-	Marshaller.h UnMarshaller.h XDRFileUnMarshaller.h \
-	XDRStreamMarshaller.h XDRUtils.h xdr-datatypes.h mime_util.h \
-	cgi_util.h XDRStreamUnMarshaller.h Keywords2.h XMLWriter.h \
-	ServerFunctionsList.h ServerFunction.h media_types.h \
-	DapXmlNamespaces.h parser-util.h MarshallerThread.h \
-	GNU/GetOpt.h GNU/GNURegex.h RCReader.h Connect.h HTTPConnect.h \
-	HTTPCache.h HTTPCacheDisconnectedMode.h \
-	HTTPCacheInterruptHandler.h Response.h HTTPResponse.h \
-	HTTPCacheResponse.h PipeResponse.h StdinResponse.h \
-	SignalHandlerRegisteredErr.h ResponseTooBigErr.h Resource.h \
-	HTTPCacheTable.h HTTPCacheMacros.h DODSFilter.h AlarmHandler.h \
-	EventHandler.h Ancillary.h D4StreamMarshaller.h \
-	D4StreamUnMarshaller.h Int64.h UInt64.h Int8.h D4ParserSax2.h \
-	D4BaseTypeFactory.h D4Maps.h D4Dimensions.h D4EnumDefs.h \
-	D4Group.h DMR.h D4Attributes.h D4AttributeType.h D4Enum.h \
-	chunked_stream.h chunked_ostream.h chunked_istream.h \
-	D4Sequence.h crc.h D4Opaque.h D4AsyncUtil.h D4Function.h \
-	D4RValue.h D4Connect.h
-HEADERS = $(noinst_HEADERS) $(pkginclude_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	cscope distdir dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
-	$(LISP)config.h.in dods-datatypes-config.h.in \
-	xdr-datatypes-config.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
-  if test -d "$(distdir)"; then \
-    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-      && rm -rf "$(distdir)" \
-      || { sleep 5 && rm -rf "$(distdir)"; }; \
-  else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-AUTOMAKE_OPTIONS = foreign check-news subdir-objects
-ACLOCAL_AMFLAGS = -I conf -I gl/m4
-aclocaldir = $(datadir)/aclocal
-pkgconfigdir = $(libdir)/pkgconfig
-AM_CPPFLAGS = -I$(top_builddir)/gl -I$(top_srcdir)/gl -I$(top_srcdir)/GNU $(XML2_CFLAGS)
-AM_CXXFLAGS = $(am__append_1) $(am__append_2)
-
-# These are not used by automake but are often useful for certain types of
-# debugging. The best way to use these is to run configure as:
-# ./configure --disable-shared CXXFLAGS=...
-# or ./configure --enable-developer --disable-shared
-# the --disable-shared is not required, but it seems to help with debuggers.
-CXXFLAGS_DEBUG = -g3 -O0  -Wall -W -Wcast-align 
-TEST_COV_FLAGS = -ftest-coverage -fprofile-arcs
-SUBDIRS = gl d4_ce d4_function .  tests unit-tests
-DIST_SUBDIRS = gl d4_ce d4_function tests unit-tests
-noinst_LTLIBRARIES = libparsers.la
-lib_LTLIBRARIES = libdap.la libdapclient.la libdapserver.la
-bin_SCRIPTS = dap-config dap-config-pkgconfig
-
-# Including the generated grammar sources in BUILT_SOURCES ensures
-# they are built first. jhrg 6/18/15
-BUILT_SOURCES = $(BISON_SRC) $(FLEX_SRC) dods-datatypes.h xdr-datatypes.h \
-	getdap.1 dap-config.1 getdap4.1
-
-man_MANS = getdap.1 dap-config.1 getdap4.1
-libparsers_la_SOURCES = $(FLEX_SRC) $(BISON_SRC)  
-libparsers_la_CPPFLAGS = $(XML2_CFLAGS)
-libparsers_la_LIBADD = $(XML2_LIBS)
-libdap_la_SOURCES = $(DAP_SRC) $(GNU_SRC) $(am__append_3)
-libdap_la_LDFLAGS = -version-info $(LIBDAP_VERSION)
-libdap_la_CPPFLAGS = $(AM_CPPFLAGS)
-libdap_la_LIBADD = $(XML2_LIBS) $(PTHREAD_LIBS) gl/libgnu.la \
-	d4_ce/libd4_ce_parser.la d4_function/libd4_function_parser.la \
-	libparsers.la $(am__append_4)
-libdapclient_la_SOURCES = $(CLIENT_SRC) $(am__append_5)
-libdapclient_la_LDFLAGS = -version-info $(CLIENTLIB_VERSION)
-libdapclient_la_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CFLAGS)
-libdapclient_la_LIBADD = $(CURL_LIBS) libdap.la $(PTHREAD_LIBS)
-libdapserver_la_SOURCES = $(SERVER_SRC)
-libdapserver_la_LDFLAGS = -version-info $(SERVERLIB_VERSION)
-libdapserver_la_LIBADD = libdap.la $(UUID_LIBS)
-pkginclude_HEADERS = $(DAP_HDR) $(GNU_HDR) $(CLIENT_HDR) $(SERVER_HDR) \
-	$(am__append_6)
-noinst_HEADERS = config_dap.h
-getdap_SOURCES = getdap.cc
-getdap_LDADD = libdapclient.la libdap.la
-getdap_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CFLAGS)
-getdap4_SOURCES = getdap4.cc
-getdap4_LDADD = libdapclient.la libdap.la
-getdap4_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CFLAGS)
-LEX_YACC_EXTRA = das.lex das.yy dds.lex dds.yy ce_expr.lex ce_expr.yy \
-Error.lex Error.yy
-
-EXTRA_DIST = ChangeLog COPYING README.dodsrc COPYRIGHT_URI		\
-	COPYRIGHT_W3C GNU/README doxy.conf doxy_private.conf		\
-	libdap.spec VCPP dods-datatypes-static.h			\
-	xdr-datatypes-static.h dap-config-pkgconfig $(LEX_YACC_EXTRA)	\
-	OSX_Resources getdap.man1 dap-config.man1 getdap4.man1
-
-dist_aclocal_DATA = conf/libdap.m4
-pkgconfig_DATA = libdap.pc libdapclient.pc libdapserver.pc
-CLEANFILES = *.log *.output *.gcda *.gcno $(BISON_SRC) $(FLEX_SRC) \
-	dods-datatypes.h xdr-datatypes.h getdap.1 dap-config.1 getdap4.1
-
-
-###########################################################################
-
-# Build OS/X Packages. The strange operations with configure and make
-# are there so that the values built into dap-config will match the mac
-# osx install dirs and not the temp directory used to build the packages
-PACKAGEMAKER = /Developer/usr/bin/packagemaker
-PKG_CONF_FLAGS = 
-
-#############################################################################
-# Library sources
-# 
-GNU_SRC = GNU/GetOpt.cc GNU/GNURegex.cc
-GNU_HDR = GNU/GetOpt.h GNU/GNURegex.h
-BISON_SRC = das.tab.cc das.tab.hh dds.tab.cc	dds.tab.hh \
-	ce_expr.tab.cc ce_expr.tab.hh Error.tab.cc Error.tab.hh 
-
-FLEX_SRC = lex.das.cc lex.dds.cc lex.ce_expr.cc lex.Error.cc
-DAP_SRC = AttrTable.cc DAS.cc DDS.cc DataDDS.cc DDXParserSAX2.cc	\
-	BaseType.cc Byte.cc Int32.cc Float64.cc Str.cc Url.cc		\
-	Vector.cc Array.cc Structure.cc Sequence.cc Grid.cc UInt32.cc	\
-	Int16.cc UInt16.cc Float32.cc Constructor.cc			\
-	BaseTypeFactory.cc SignalHandler.cc Error.cc InternalErr.cc	\
-	util.cc xdrutil_ppc.c parser-util.cc escaping.cc		\
-	Clause.cc RValue.cc			\
-	ConstraintEvaluator.cc DapIndent.cc	\
-	Operators.h XDRUtils.cc XDRFileMarshaller.cc			\
-	XDRStreamMarshaller.cc XDRFileUnMarshaller.cc			\
-	XDRStreamUnMarshaller.cc mime_util.cc Keywords2.cc XMLWriter.cc \
-	ServerFunctionsList.cc ServerFunction.cc DapXmlNamespaces.cc \
-	MarshallerThread.cc
-
-DAP4_ONLY_SRC = D4StreamMarshaller.cc D4StreamUnMarshaller.cc Int64.cc \
-        UInt64.cc Int8.cc D4ParserSax2.cc D4BaseTypeFactory.cc \
-        D4Dimensions.cc  D4EnumDefs.cc D4Group.cc DMR.cc \
-        D4Attributes.cc D4Enum.cc chunked_ostream.cc chunked_istream.cc \
-        D4Sequence.cc D4Maps.cc D4Opaque.cc D4AsyncUtil.cc D4RValue.cc
-
-
-# Operators.h is included in with the source to prevent it from bing installed
-# with the other headers. It includes one of the built grammar file headers.
-CLIENT_SRC = RCReader.cc Connect.cc HTTPConnect.cc HTTPCache.cc	\
-	util_mit.cc ResponseTooBigErr.cc HTTPCacheTable.cc
-
-DAP4_CLIENT_SRC = D4Connect.cc
-SERVER_SRC = DODSFilter.cc Ancillary.cc
-# ResponseBuilder.cc ResponseCache.cc
-DAP_HDR = AttrTable.h DAS.h DDS.h DataDDS.h DDXParserSAX2.h		\
-	DDXExceptions.h BaseType.h Byte.h Int32.h Float64.h Str.h	\
-	Url.h Vector.h Array.h Constructor.h Structure.h Sequence.h	\
-	Grid.h UInt32.h Int16.h UInt16.h Float32.h BaseTypeFactory.h	\
-	ObjectType.h EncodingType.h SignalHandler.h Error.h		\
-	InternalErr.h util.h escaping.h parser.h debug.h dods-limits.h	\
-	dods-datatypes.h Type.h		\
-	util_mit.h expr.h Clause.h RValue.h ConstraintEvaluator.h	\
-	ce_parser.h DapIndent.h DapObj.h XDRFileMarshaller.h		\
-	Marshaller.h UnMarshaller.h XDRFileUnMarshaller.h		\
-	XDRStreamMarshaller.h XDRUtils.h xdr-datatypes.h mime_util.h	\
-	cgi_util.h XDRStreamUnMarshaller.h Keywords2.h XMLWriter.h \
-	ServerFunctionsList.h ServerFunction.h media_types.h \
-	DapXmlNamespaces.h parser-util.h MarshallerThread.h
-
-DAP4_ONLY_HDR = D4StreamMarshaller.h D4StreamUnMarshaller.h Int64.h \
-        UInt64.h Int8.h D4ParserSax2.h D4BaseTypeFactory.h \
-        D4Maps.h D4Dimensions.h D4EnumDefs.h D4Group.h DMR.h D4Attributes.h \
-        D4AttributeType.h D4Enum.h chunked_stream.h chunked_ostream.h \
-        chunked_istream.h D4Sequence.h crc.h D4Opaque.h D4AsyncUtil.h \
-        D4Function.h D4RValue.h
-
-CLIENT_HDR = RCReader.h Connect.h HTTPConnect.h HTTPCache.h		\
-	HTTPCacheDisconnectedMode.h HTTPCacheInterruptHandler.h		\
-	Response.h HTTPResponse.h HTTPCacheResponse.h PipeResponse.h	\
-	StdinResponse.h SignalHandlerRegisteredErr.h			\
-	ResponseTooBigErr.h Resource.h HTTPCacheTable.h HTTPCacheMacros.h
-
-DAP4_CLIENT_HDR = D4Connect.h
-SERVER_HDR = DODSFilter.h AlarmHandler.h EventHandler.h Ancillary.h
-all: $(BUILT_SOURCES) config.h dods-datatypes-config.h xdr-datatypes-config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .cc .lo .o .obj
-am--refresh: Makefile
-	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
-	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    echo ' $(SHELL) ./config.status'; \
-	    $(SHELL) ./config.status;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-config.h: stamp-h1
-	@test -f $@ || rm -f stamp-h1
-	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h1
-	cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in:  $(am__configure_deps) 
-	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-	rm -f stamp-h1
-	touch $@
-
-dods-datatypes-config.h: stamp-h2
-	@test -f $@ || rm -f stamp-h2
-	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h2
-
-stamp-h2: $(srcdir)/dods-datatypes-config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h2
-	cd $(top_builddir) && $(SHELL) ./config.status dods-datatypes-config.h
-
-xdr-datatypes-config.h: stamp-h3
-	@test -f $@ || rm -f stamp-h3
-	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h3
-
-stamp-h3: $(srcdir)/xdr-datatypes-config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h3
-	cd $(top_builddir) && $(SHELL) ./config.status xdr-datatypes-config.h
-
-distclean-hdr:
-	-rm -f config.h stamp-h1 dods-datatypes-config.h stamp-h2 xdr-datatypes-config.h stamp-h3
-libdap.pc: $(top_builddir)/config.status $(srcdir)/libdap.pc.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-libdapclient.pc: $(top_builddir)/config.status $(srcdir)/libdapclient.pc.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-libdapserver.pc: $(top_builddir)/config.status $(srcdir)/libdapserver.pc.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-main_page.doxygen: $(top_builddir)/config.status $(srcdir)/main_page.doxygen.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-doxy.conf: $(top_builddir)/config.status $(srcdir)/doxy.conf.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-abi_checker.xml: $(top_builddir)/config.status $(srcdir)/abi_checker.xml.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-dap-config: $(top_builddir)/config.status $(srcdir)/dap-config.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
-	}
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
-	done
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-
-clean-noinstLTLIBRARIES:
-	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-GNU/$(am__dirstamp):
-	@$(MKDIR_P) GNU
-	@: > GNU/$(am__dirstamp)
-GNU/$(DEPDIR)/$(am__dirstamp):
-	@$(MKDIR_P) GNU/$(DEPDIR)
-	@: > GNU/$(DEPDIR)/$(am__dirstamp)
-GNU/libdap_la-GetOpt.lo: GNU/$(am__dirstamp) \
-	GNU/$(DEPDIR)/$(am__dirstamp)
-GNU/libdap_la-GNURegex.lo: GNU/$(am__dirstamp) \
-	GNU/$(DEPDIR)/$(am__dirstamp)
-
-libdap.la: $(libdap_la_OBJECTS) $(libdap_la_DEPENDENCIES) $(EXTRA_libdap_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(libdap_la_LINK) -rpath $(libdir) $(libdap_la_OBJECTS) $(libdap_la_LIBADD) $(LIBS)
-
-libdapclient.la: $(libdapclient_la_OBJECTS) $(libdapclient_la_DEPENDENCIES) $(EXTRA_libdapclient_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(libdapclient_la_LINK) -rpath $(libdir) $(libdapclient_la_OBJECTS) $(libdapclient_la_LIBADD) $(LIBS)
-
-libdapserver.la: $(libdapserver_la_OBJECTS) $(libdapserver_la_DEPENDENCIES) $(EXTRA_libdapserver_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(libdapserver_la_LINK) -rpath $(libdir) $(libdapserver_la_OBJECTS) $(libdapserver_la_LIBADD) $(LIBS)
-
-libparsers.la: $(libparsers_la_OBJECTS) $(libparsers_la_DEPENDENCIES) $(EXTRA_libparsers_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(CXXLINK)  $(libparsers_la_OBJECTS) $(libparsers_la_LIBADD) $(LIBS)
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p \
-	 || test -f $$p1 \
-	  ; then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' \
-	    -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' \
-	`; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-getdap$(EXEEXT): $(getdap_OBJECTS) $(getdap_DEPENDENCIES) $(EXTRA_getdap_DEPENDENCIES) 
-	@rm -f getdap$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(getdap_OBJECTS) $(getdap_LDADD) $(LIBS)
-
-getdap4$(EXEEXT): $(getdap4_OBJECTS) $(getdap4_DEPENDENCIES) $(EXTRA_getdap4_DEPENDENCIES) 
-	@rm -f getdap4$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(getdap4_OBJECTS) $(getdap4_LDADD) $(LIBS)
-install-binSCRIPTS: $(bin_SCRIPTS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n' \
-	    -e 'h;s|.*|.|' \
-	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
-	      if (++n[d] == $(am__install_max)) { \
-		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
-	    else { print "f", d "/" $$4, $$1 } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	     test -z "$$files" || { \
-	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	     } \
-	; done
-
-uninstall-binSCRIPTS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	       sed -e 's,.*/,,;$(transform)'`; \
-	dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-	-rm -f GNU/*.$(OBJEXT)
-	-rm -f GNU/*.lo
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Ancillary.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/DODSFilter.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/getdap-getdap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/getdap4-getdap4.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Array.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-AttrTable.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-BaseType.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-BaseTypeFactory.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Byte.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Clause.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-ConstraintEvaluator.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Constructor.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4AsyncUtil.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Attributes.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4BaseTypeFactory.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Dimensions.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Enum.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4EnumDefs.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Group.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Maps.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Opaque.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4ParserSax2.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4RValue.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4Sequence.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4StreamMarshaller.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-D4StreamUnMarshaller.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DAS.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DDS.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DDXParserSAX2.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DMR.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DapIndent.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DapXmlNamespaces.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-DataDDS.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Error.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Float32.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Float64.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Grid.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Int16.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Int32.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Int64.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Int8.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-InternalErr.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Keywords2.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-MarshallerThread.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-RValue.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Sequence.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-ServerFunction.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-ServerFunctionsList.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-SignalHandler.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Str.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Structure.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-UInt16.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-UInt32.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-UInt64.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Url.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-Vector.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-XDRFileMarshaller.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-XDRFileUnMarshaller.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-XDRStreamMarshaller.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-XDRStreamUnMarshaller.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-XDRUtils.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-XMLWriter.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-chunked_istream.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-chunked_ostream.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-escaping.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-mime_util.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-parser-util.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-util.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdap_la-xdrutil_ppc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-Connect.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-D4Connect.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-HTTPCache.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-HTTPCacheTable.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-HTTPConnect.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-RCReader.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-ResponseTooBigErr.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdapclient_la-util_mit.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-Error.tab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-ce_expr.tab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-das.tab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-dds.tab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-lex.Error.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-lex.ce_expr.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-lex.das.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparsers_la-lex.dds.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at GNU/$(DEPDIR)/libdap_la-GNURegex.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at GNU/$(DEPDIR)/libdap_la-GetOpt.Plo at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
- at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-libdap_la-xdrutil_ppc.lo: xdrutil_ppc.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdap_la-xdrutil_ppc.lo -MD -MP -MF $(DEPDIR)/libdap_la-xdrutil_ppc.Tpo -c -o libdap_la-xdrutil_ppc.lo `test -f 'xdrutil_ppc.c' || echo '$(srcdir)/'`xdrutil_ppc.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-xdrutil_ppc.Tpo $(DEPDIR)/libdap_la-xdrutil_ppc.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xdrutil_ppc.c' object='libdap_la-xdrutil_ppc.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdap_la-xdrutil_ppc.lo `test -f 'xdrutil_ppc.c' || echo '$(srcdir)/'`xdrutil_ppc.c
-
-.cc.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
- at am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-libdap_la-AttrTable.lo: AttrTable.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-AttrTable.lo -MD -MP -MF $(DEPDIR)/libdap_la-AttrTable.Tpo -c -o libdap_la-AttrTable.lo `test -f 'AttrTable.cc' || echo '$(srcdir)/'`AttrTable.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-AttrTable.Tpo $(DEPDIR)/libdap_la-AttrTable.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='AttrTable.cc' object='libdap_la-AttrTable.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-AttrTable.lo `test -f 'AttrTable.cc' || echo '$(srcdir)/'`AttrTable.cc
-
-libdap_la-DAS.lo: DAS.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DAS.lo -MD -MP -MF $(DEPDIR)/libdap_la-DAS.Tpo -c -o libdap_la-DAS.lo `test -f 'DAS.cc' || echo '$(srcdir)/'`DAS.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DAS.Tpo $(DEPDIR)/libdap_la-DAS.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DAS.cc' object='libdap_la-DAS.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DAS.lo `test -f 'DAS.cc' || echo '$(srcdir)/'`DAS.cc
-
-libdap_la-DDS.lo: DDS.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DDS.lo -MD -MP -MF $(DEPDIR)/libdap_la-DDS.Tpo -c -o libdap_la-DDS.lo `test -f 'DDS.cc' || echo '$(srcdir)/'`DDS.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DDS.Tpo $(DEPDIR)/libdap_la-DDS.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DDS.cc' object='libdap_la-DDS.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DDS.lo `test -f 'DDS.cc' || echo '$(srcdir)/'`DDS.cc
-
-libdap_la-DataDDS.lo: DataDDS.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DataDDS.lo -MD -MP -MF $(DEPDIR)/libdap_la-DataDDS.Tpo -c -o libdap_la-DataDDS.lo `test -f 'DataDDS.cc' || echo '$(srcdir)/'`DataDDS.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DataDDS.Tpo $(DEPDIR)/libdap_la-DataDDS.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DataDDS.cc' object='libdap_la-DataDDS.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DataDDS.lo `test -f 'DataDDS.cc' || echo '$(srcdir)/'`DataDDS.cc
-
-libdap_la-DDXParserSAX2.lo: DDXParserSAX2.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DDXParserSAX2.lo -MD -MP -MF $(DEPDIR)/libdap_la-DDXParserSAX2.Tpo -c -o libdap_la-DDXParserSAX2.lo `test -f 'DDXParserSAX2.cc' || echo '$(srcdir)/'`DDXParserSAX2.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DDXParserSAX2.Tpo $(DEPDIR)/libdap_la-DDXParserSAX2.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DDXParserSAX2.cc' object='libdap_la-DDXParserSAX2.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DDXParserSAX2.lo `test -f 'DDXParserSAX2.cc' || echo '$(srcdir)/'`DDXParserSAX2.cc
-
-libdap_la-BaseType.lo: BaseType.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-BaseType.lo -MD -MP -MF $(DEPDIR)/libdap_la-BaseType.Tpo -c -o libdap_la-BaseType.lo `test -f 'BaseType.cc' || echo '$(srcdir)/'`BaseType.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-BaseType.Tpo $(DEPDIR)/libdap_la-BaseType.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='BaseType.cc' object='libdap_la-BaseType.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-BaseType.lo `test -f 'BaseType.cc' || echo '$(srcdir)/'`BaseType.cc
-
-libdap_la-Byte.lo: Byte.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Byte.lo -MD -MP -MF $(DEPDIR)/libdap_la-Byte.Tpo -c -o libdap_la-Byte.lo `test -f 'Byte.cc' || echo '$(srcdir)/'`Byte.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Byte.Tpo $(DEPDIR)/libdap_la-Byte.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Byte.cc' object='libdap_la-Byte.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Byte.lo `test -f 'Byte.cc' || echo '$(srcdir)/'`Byte.cc
-
-libdap_la-Int32.lo: Int32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Int32.lo -MD -MP -MF $(DEPDIR)/libdap_la-Int32.Tpo -c -o libdap_la-Int32.lo `test -f 'Int32.cc' || echo '$(srcdir)/'`Int32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Int32.Tpo $(DEPDIR)/libdap_la-Int32.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Int32.cc' object='libdap_la-Int32.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Int32.lo `test -f 'Int32.cc' || echo '$(srcdir)/'`Int32.cc
-
-libdap_la-Float64.lo: Float64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Float64.lo -MD -MP -MF $(DEPDIR)/libdap_la-Float64.Tpo -c -o libdap_la-Float64.lo `test -f 'Float64.cc' || echo '$(srcdir)/'`Float64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Float64.Tpo $(DEPDIR)/libdap_la-Float64.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Float64.cc' object='libdap_la-Float64.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Float64.lo `test -f 'Float64.cc' || echo '$(srcdir)/'`Float64.cc
-
-libdap_la-Str.lo: Str.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Str.lo -MD -MP -MF $(DEPDIR)/libdap_la-Str.Tpo -c -o libdap_la-Str.lo `test -f 'Str.cc' || echo '$(srcdir)/'`Str.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Str.Tpo $(DEPDIR)/libdap_la-Str.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Str.cc' object='libdap_la-Str.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Str.lo `test -f 'Str.cc' || echo '$(srcdir)/'`Str.cc
-
-libdap_la-Url.lo: Url.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Url.lo -MD -MP -MF $(DEPDIR)/libdap_la-Url.Tpo -c -o libdap_la-Url.lo `test -f 'Url.cc' || echo '$(srcdir)/'`Url.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Url.Tpo $(DEPDIR)/libdap_la-Url.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Url.cc' object='libdap_la-Url.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Url.lo `test -f 'Url.cc' || echo '$(srcdir)/'`Url.cc
-
-libdap_la-Vector.lo: Vector.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Vector.lo -MD -MP -MF $(DEPDIR)/libdap_la-Vector.Tpo -c -o libdap_la-Vector.lo `test -f 'Vector.cc' || echo '$(srcdir)/'`Vector.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Vector.Tpo $(DEPDIR)/libdap_la-Vector.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Vector.cc' object='libdap_la-Vector.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Vector.lo `test -f 'Vector.cc' || echo '$(srcdir)/'`Vector.cc
-
-libdap_la-Array.lo: Array.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Array.lo -MD -MP -MF $(DEPDIR)/libdap_la-Array.Tpo -c -o libdap_la-Array.lo `test -f 'Array.cc' || echo '$(srcdir)/'`Array.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Array.Tpo $(DEPDIR)/libdap_la-Array.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Array.cc' object='libdap_la-Array.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Array.lo `test -f 'Array.cc' || echo '$(srcdir)/'`Array.cc
-
-libdap_la-Structure.lo: Structure.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Structure.lo -MD -MP -MF $(DEPDIR)/libdap_la-Structure.Tpo -c -o libdap_la-Structure.lo `test -f 'Structure.cc' || echo '$(srcdir)/'`Structure.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Structure.Tpo $(DEPDIR)/libdap_la-Structure.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Structure.cc' object='libdap_la-Structure.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Structure.lo `test -f 'Structure.cc' || echo '$(srcdir)/'`Structure.cc
-
-libdap_la-Sequence.lo: Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Sequence.lo -MD -MP -MF $(DEPDIR)/libdap_la-Sequence.Tpo -c -o libdap_la-Sequence.lo `test -f 'Sequence.cc' || echo '$(srcdir)/'`Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Sequence.Tpo $(DEPDIR)/libdap_la-Sequence.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Sequence.cc' object='libdap_la-Sequence.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Sequence.lo `test -f 'Sequence.cc' || echo '$(srcdir)/'`Sequence.cc
-
-libdap_la-Grid.lo: Grid.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Grid.lo -MD -MP -MF $(DEPDIR)/libdap_la-Grid.Tpo -c -o libdap_la-Grid.lo `test -f 'Grid.cc' || echo '$(srcdir)/'`Grid.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Grid.Tpo $(DEPDIR)/libdap_la-Grid.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Grid.cc' object='libdap_la-Grid.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Grid.lo `test -f 'Grid.cc' || echo '$(srcdir)/'`Grid.cc
-
-libdap_la-UInt32.lo: UInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-UInt32.lo -MD -MP -MF $(DEPDIR)/libdap_la-UInt32.Tpo -c -o libdap_la-UInt32.lo `test -f 'UInt32.cc' || echo '$(srcdir)/'`UInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-UInt32.Tpo $(DEPDIR)/libdap_la-UInt32.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='UInt32.cc' object='libdap_la-UInt32.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-UInt32.lo `test -f 'UInt32.cc' || echo '$(srcdir)/'`UInt32.cc
-
-libdap_la-Int16.lo: Int16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Int16.lo -MD -MP -MF $(DEPDIR)/libdap_la-Int16.Tpo -c -o libdap_la-Int16.lo `test -f 'Int16.cc' || echo '$(srcdir)/'`Int16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Int16.Tpo $(DEPDIR)/libdap_la-Int16.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Int16.cc' object='libdap_la-Int16.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Int16.lo `test -f 'Int16.cc' || echo '$(srcdir)/'`Int16.cc
-
-libdap_la-UInt16.lo: UInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-UInt16.lo -MD -MP -MF $(DEPDIR)/libdap_la-UInt16.Tpo -c -o libdap_la-UInt16.lo `test -f 'UInt16.cc' || echo '$(srcdir)/'`UInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-UInt16.Tpo $(DEPDIR)/libdap_la-UInt16.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='UInt16.cc' object='libdap_la-UInt16.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-UInt16.lo `test -f 'UInt16.cc' || echo '$(srcdir)/'`UInt16.cc
-
-libdap_la-Float32.lo: Float32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Float32.lo -MD -MP -MF $(DEPDIR)/libdap_la-Float32.Tpo -c -o libdap_la-Float32.lo `test -f 'Float32.cc' || echo '$(srcdir)/'`Float32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Float32.Tpo $(DEPDIR)/libdap_la-Float32.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Float32.cc' object='libdap_la-Float32.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Float32.lo `test -f 'Float32.cc' || echo '$(srcdir)/'`Float32.cc
-
-libdap_la-Constructor.lo: Constructor.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Constructor.lo -MD -MP -MF $(DEPDIR)/libdap_la-Constructor.Tpo -c -o libdap_la-Constructor.lo `test -f 'Constructor.cc' || echo '$(srcdir)/'`Constructor.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Constructor.Tpo $(DEPDIR)/libdap_la-Constructor.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Constructor.cc' object='libdap_la-Constructor.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Constructor.lo `test -f 'Constructor.cc' || echo '$(srcdir)/'`Constructor.cc
-
-libdap_la-BaseTypeFactory.lo: BaseTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-BaseTypeFactory.lo -MD -MP -MF $(DEPDIR)/libdap_la-BaseTypeFactory.Tpo -c -o libdap_la-BaseTypeFactory.lo `test -f 'BaseTypeFactory.cc' || echo '$(srcdir)/'`BaseTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-BaseTypeFactory.Tpo $(DEPDIR)/libdap_la-BaseTypeFactory.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='BaseTypeFactory.cc' object='libdap_la-BaseTypeFactory.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-BaseTypeFactory.lo `test -f 'BaseTypeFactory.cc' || echo '$(srcdir)/'`BaseTypeFactory.cc
-
-libdap_la-SignalHandler.lo: SignalHandler.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-SignalHandler.lo -MD -MP -MF $(DEPDIR)/libdap_la-SignalHandler.Tpo -c -o libdap_la-SignalHandler.lo `test -f 'SignalHandler.cc' || echo '$(srcdir)/'`SignalHandler.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-SignalHandler.Tpo $(DEPDIR)/libdap_la-SignalHandler.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='SignalHandler.cc' object='libdap_la-SignalHandler.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-SignalHandler.lo `test -f 'SignalHandler.cc' || echo '$(srcdir)/'`SignalHandler.cc
-
-libdap_la-Error.lo: Error.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Error.lo -MD -MP -MF $(DEPDIR)/libdap_la-Error.Tpo -c -o libdap_la-Error.lo `test -f 'Error.cc' || echo '$(srcdir)/'`Error.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Error.Tpo $(DEPDIR)/libdap_la-Error.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Error.cc' object='libdap_la-Error.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Error.lo `test -f 'Error.cc' || echo '$(srcdir)/'`Error.cc
-
-libdap_la-InternalErr.lo: InternalErr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-InternalErr.lo -MD -MP -MF $(DEPDIR)/libdap_la-InternalErr.Tpo -c -o libdap_la-InternalErr.lo `test -f 'InternalErr.cc' || echo '$(srcdir)/'`InternalErr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-InternalErr.Tpo $(DEPDIR)/libdap_la-InternalErr.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='InternalErr.cc' object='libdap_la-InternalErr.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-InternalErr.lo `test -f 'InternalErr.cc' || echo '$(srcdir)/'`InternalErr.cc
-
-libdap_la-util.lo: util.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-util.lo -MD -MP -MF $(DEPDIR)/libdap_la-util.Tpo -c -o libdap_la-util.lo `test -f 'util.cc' || echo '$(srcdir)/'`util.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-util.Tpo $(DEPDIR)/libdap_la-util.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='util.cc' object='libdap_la-util.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-util.lo `test -f 'util.cc' || echo '$(srcdir)/'`util.cc
-
-libdap_la-parser-util.lo: parser-util.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-parser-util.lo -MD -MP -MF $(DEPDIR)/libdap_la-parser-util.Tpo -c -o libdap_la-parser-util.lo `test -f 'parser-util.cc' || echo '$(srcdir)/'`parser-util.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-parser-util.Tpo $(DEPDIR)/libdap_la-parser-util.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='parser-util.cc' object='libdap_la-parser-util.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-parser-util.lo `test -f 'parser-util.cc' || echo '$(srcdir)/'`parser-util.cc
-
-libdap_la-escaping.lo: escaping.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-escaping.lo -MD -MP -MF $(DEPDIR)/libdap_la-escaping.Tpo -c -o libdap_la-escaping.lo `test -f 'escaping.cc' || echo '$(srcdir)/'`escaping.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-escaping.Tpo $(DEPDIR)/libdap_la-escaping.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='escaping.cc' object='libdap_la-escaping.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-escaping.lo `test -f 'escaping.cc' || echo '$(srcdir)/'`escaping.cc
-
-libdap_la-Clause.lo: Clause.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Clause.lo -MD -MP -MF $(DEPDIR)/libdap_la-Clause.Tpo -c -o libdap_la-Clause.lo `test -f 'Clause.cc' || echo '$(srcdir)/'`Clause.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Clause.Tpo $(DEPDIR)/libdap_la-Clause.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Clause.cc' object='libdap_la-Clause.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Clause.lo `test -f 'Clause.cc' || echo '$(srcdir)/'`Clause.cc
-
-libdap_la-RValue.lo: RValue.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-RValue.lo -MD -MP -MF $(DEPDIR)/libdap_la-RValue.Tpo -c -o libdap_la-RValue.lo `test -f 'RValue.cc' || echo '$(srcdir)/'`RValue.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-RValue.Tpo $(DEPDIR)/libdap_la-RValue.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='RValue.cc' object='libdap_la-RValue.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-RValue.lo `test -f 'RValue.cc' || echo '$(srcdir)/'`RValue.cc
-
-libdap_la-ConstraintEvaluator.lo: ConstraintEvaluator.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-ConstraintEvaluator.lo -MD -MP -MF $(DEPDIR)/libdap_la-ConstraintEvaluator.Tpo -c -o libdap_la-ConstraintEvaluator.lo `test -f 'ConstraintEvaluator.cc' || echo '$(srcdir)/'`ConstraintEvaluator.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-ConstraintEvaluator.Tpo $(DEPDIR)/libdap_la-ConstraintEvaluator.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ConstraintEvaluator.cc' object='libdap_la-ConstraintEvaluator.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-ConstraintEvaluator.lo `test -f 'ConstraintEvaluator.cc' || echo '$(srcdir)/'`ConstraintEvaluator.cc
-
-libdap_la-DapIndent.lo: DapIndent.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DapIndent.lo -MD -MP -MF $(DEPDIR)/libdap_la-DapIndent.Tpo -c -o libdap_la-DapIndent.lo `test -f 'DapIndent.cc' || echo '$(srcdir)/'`DapIndent.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DapIndent.Tpo $(DEPDIR)/libdap_la-DapIndent.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DapIndent.cc' object='libdap_la-DapIndent.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DapIndent.lo `test -f 'DapIndent.cc' || echo '$(srcdir)/'`DapIndent.cc
-
-libdap_la-XDRUtils.lo: XDRUtils.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-XDRUtils.lo -MD -MP -MF $(DEPDIR)/libdap_la-XDRUtils.Tpo -c -o libdap_la-XDRUtils.lo `test -f 'XDRUtils.cc' || echo '$(srcdir)/'`XDRUtils.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-XDRUtils.Tpo $(DEPDIR)/libdap_la-XDRUtils.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='XDRUtils.cc' object='libdap_la-XDRUtils.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-XDRUtils.lo `test -f 'XDRUtils.cc' || echo '$(srcdir)/'`XDRUtils.cc
-
-libdap_la-XDRFileMarshaller.lo: XDRFileMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-XDRFileMarshaller.lo -MD -MP -MF $(DEPDIR)/libdap_la-XDRFileMarshaller.Tpo -c -o libdap_la-XDRFileMarshaller.lo `test -f 'XDRFileMarshaller.cc' || echo '$(srcdir)/'`XDRFileMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-XDRFileMarshaller.Tpo $(DEPDIR)/libdap_la-XDRFileMarshaller.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='XDRFileMarshaller.cc' object='libdap_la-XDRFileMarshaller.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-XDRFileMarshaller.lo `test -f 'XDRFileMarshaller.cc' || echo '$(srcdir)/'`XDRFileMarshaller.cc
-
-libdap_la-XDRStreamMarshaller.lo: XDRStreamMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-XDRStreamMarshaller.lo -MD -MP -MF $(DEPDIR)/libdap_la-XDRStreamMarshaller.Tpo -c -o libdap_la-XDRStreamMarshaller.lo `test -f 'XDRStreamMarshaller.cc' || echo '$(srcdir)/'`XDRStreamMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-XDRStreamMarshaller.Tpo $(DEPDIR)/libdap_la-XDRStreamMarshaller.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='XDRStreamMarshaller.cc' object='libdap_la-XDRStreamMarshaller.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-XDRStreamMarshaller.lo `test -f 'XDRStreamMarshaller.cc' || echo '$(srcdir)/'`XDRStreamMarshaller.cc
-
-libdap_la-XDRFileUnMarshaller.lo: XDRFileUnMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-XDRFileUnMarshaller.lo -MD -MP -MF $(DEPDIR)/libdap_la-XDRFileUnMarshaller.Tpo -c -o libdap_la-XDRFileUnMarshaller.lo `test -f 'XDRFileUnMarshaller.cc' || echo '$(srcdir)/'`XDRFileUnMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-XDRFileUnMarshaller.Tpo $(DEPDIR)/libdap_la-XDRFileUnMarshaller.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='XDRFileUnMarshaller.cc' object='libdap_la-XDRFileUnMarshaller.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-XDRFileUnMarshaller.lo `test -f 'XDRFileUnMarshaller.cc' || echo '$(srcdir)/'`XDRFileUnMarshaller.cc
-
-libdap_la-XDRStreamUnMarshaller.lo: XDRStreamUnMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-XDRStreamUnMarshaller.lo -MD -MP -MF $(DEPDIR)/libdap_la-XDRStreamUnMarshaller.Tpo -c -o libdap_la-XDRStreamUnMarshaller.lo `test -f 'XDRStreamUnMarshaller.cc' || echo '$(srcdir)/'`XDRStreamUnMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-XDRStreamUnMarshaller.Tpo $(DEPDIR)/libdap_la-XDRStreamUnMarshaller.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='XDRStreamUnMarshaller.cc' object='libdap_la-XDRStreamUnMarshaller.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-XDRStreamUnMarshaller.lo `test -f 'XDRStreamUnMarshaller.cc' || echo '$(srcdir)/'`XDRStreamUnMarshaller.cc
-
-libdap_la-mime_util.lo: mime_util.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-mime_util.lo -MD -MP -MF $(DEPDIR)/libdap_la-mime_util.Tpo -c -o libdap_la-mime_util.lo `test -f 'mime_util.cc' || echo '$(srcdir)/'`mime_util.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-mime_util.Tpo $(DEPDIR)/libdap_la-mime_util.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='mime_util.cc' object='libdap_la-mime_util.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-mime_util.lo `test -f 'mime_util.cc' || echo '$(srcdir)/'`mime_util.cc
-
-libdap_la-Keywords2.lo: Keywords2.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Keywords2.lo -MD -MP -MF $(DEPDIR)/libdap_la-Keywords2.Tpo -c -o libdap_la-Keywords2.lo `test -f 'Keywords2.cc' || echo '$(srcdir)/'`Keywords2.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Keywords2.Tpo $(DEPDIR)/libdap_la-Keywords2.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Keywords2.cc' object='libdap_la-Keywords2.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Keywords2.lo `test -f 'Keywords2.cc' || echo '$(srcdir)/'`Keywords2.cc
-
-libdap_la-XMLWriter.lo: XMLWriter.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-XMLWriter.lo -MD -MP -MF $(DEPDIR)/libdap_la-XMLWriter.Tpo -c -o libdap_la-XMLWriter.lo `test -f 'XMLWriter.cc' || echo '$(srcdir)/'`XMLWriter.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-XMLWriter.Tpo $(DEPDIR)/libdap_la-XMLWriter.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='XMLWriter.cc' object='libdap_la-XMLWriter.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-XMLWriter.lo `test -f 'XMLWriter.cc' || echo '$(srcdir)/'`XMLWriter.cc
-
-libdap_la-ServerFunctionsList.lo: ServerFunctionsList.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-ServerFunctionsList.lo -MD -MP -MF $(DEPDIR)/libdap_la-ServerFunctionsList.Tpo -c -o libdap_la-ServerFunctionsList.lo `test -f 'ServerFunctionsList.cc' || echo '$(srcdir)/'`ServerFunctionsList.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-ServerFunctionsList.Tpo $(DEPDIR)/libdap_la-ServerFunctionsList.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ServerFunctionsList.cc' object='libdap_la-ServerFunctionsList.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-ServerFunctionsList.lo `test -f 'ServerFunctionsList.cc' || echo '$(srcdir)/'`ServerFunctionsList.cc
-
-libdap_la-ServerFunction.lo: ServerFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-ServerFunction.lo -MD -MP -MF $(DEPDIR)/libdap_la-ServerFunction.Tpo -c -o libdap_la-ServerFunction.lo `test -f 'ServerFunction.cc' || echo '$(srcdir)/'`ServerFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-ServerFunction.Tpo $(DEPDIR)/libdap_la-ServerFunction.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ServerFunction.cc' object='libdap_la-ServerFunction.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-ServerFunction.lo `test -f 'ServerFunction.cc' || echo '$(srcdir)/'`ServerFunction.cc
-
-libdap_la-DapXmlNamespaces.lo: DapXmlNamespaces.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DapXmlNamespaces.lo -MD -MP -MF $(DEPDIR)/libdap_la-DapXmlNamespaces.Tpo -c -o libdap_la-DapXmlNamespaces.lo `test -f 'DapXmlNamespaces.cc' || echo '$(srcdir)/'`DapXmlNamespaces.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DapXmlNamespaces.Tpo $(DEPDIR)/libdap_la-DapXmlNamespaces.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DapXmlNamespaces.cc' object='libdap_la-DapXmlNamespaces.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DapXmlNamespaces.lo `test -f 'DapXmlNamespaces.cc' || echo '$(srcdir)/'`DapXmlNamespaces.cc
-
-libdap_la-MarshallerThread.lo: MarshallerThread.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-MarshallerThread.lo -MD -MP -MF $(DEPDIR)/libdap_la-MarshallerThread.Tpo -c -o libdap_la-MarshallerThread.lo `test -f 'MarshallerThread.cc' || echo '$(srcdir)/'`MarshallerThread.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-MarshallerThread.Tpo $(DEPDIR)/libdap_la-MarshallerThread.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='MarshallerThread.cc' object='libdap_la-MarshallerThread.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-MarshallerThread.lo `test -f 'MarshallerThread.cc' || echo '$(srcdir)/'`MarshallerThread.cc
-
-GNU/libdap_la-GetOpt.lo: GNU/GetOpt.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GNU/libdap_la-GetOpt.lo -MD -MP -MF GNU/$(DEPDIR)/libdap_la-GetOpt.Tpo -c -o GNU/libdap_la-GetOpt.lo `test -f 'GNU/GetOpt.cc' || echo '$(srcdir)/'`GNU/GetOpt.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) GNU/$(DEPDIR)/libdap_la-GetOpt.Tpo GNU/$(DEPDIR)/libdap_la-GetOpt.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='GNU/GetOpt.cc' object='GNU/libdap_la-GetOpt.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GNU/libdap_la-GetOpt.lo `test -f 'GNU/GetOpt.cc' || echo '$(srcdir)/'`GNU/GetOpt.cc
-
-GNU/libdap_la-GNURegex.lo: GNU/GNURegex.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GNU/libdap_la-GNURegex.lo -MD -MP -MF GNU/$(DEPDIR)/libdap_la-GNURegex.Tpo -c -o GNU/libdap_la-GNURegex.lo `test -f 'GNU/GNURegex.cc' || echo '$(srcdir)/'`GNU/GNURegex.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) GNU/$(DEPDIR)/libdap_la-GNURegex.Tpo GNU/$(DEPDIR)/libdap_la-GNURegex.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='GNU/GNURegex.cc' object='GNU/libdap_la-GNURegex.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GNU/libdap_la-GNURegex.lo `test -f 'GNU/GNURegex.cc' || echo '$(srcdir)/'`GNU/GNURegex.cc
-
-libdap_la-D4StreamMarshaller.lo: D4StreamMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4StreamMarshaller.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4StreamMarshaller.Tpo -c -o libdap_la-D4StreamMarshaller.lo `test -f 'D4StreamMarshaller.cc' || echo '$(srcdir)/'`D4StreamMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4StreamMarshaller.Tpo $(DEPDIR)/libdap_la-D4StreamMarshaller.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4StreamMarshaller.cc' object='libdap_la-D4StreamMarshaller.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4StreamMarshaller.lo `test -f 'D4StreamMarshaller.cc' || echo '$(srcdir)/'`D4StreamMarshaller.cc
-
-libdap_la-D4StreamUnMarshaller.lo: D4StreamUnMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4StreamUnMarshaller.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4StreamUnMarshaller.Tpo -c -o libdap_la-D4StreamUnMarshaller.lo `test -f 'D4StreamUnMarshaller.cc' || echo '$(srcdir)/'`D4StreamUnMarshaller.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4StreamUnMarshaller.Tpo $(DEPDIR)/libdap_la-D4StreamUnMarshaller.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4StreamUnMarshaller.cc' object='libdap_la-D4StreamUnMarshaller.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4StreamUnMarshaller.lo `test -f 'D4StreamUnMarshaller.cc' || echo '$(srcdir)/'`D4StreamUnMarshaller.cc
-
-libdap_la-Int64.lo: Int64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Int64.lo -MD -MP -MF $(DEPDIR)/libdap_la-Int64.Tpo -c -o libdap_la-Int64.lo `test -f 'Int64.cc' || echo '$(srcdir)/'`Int64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Int64.Tpo $(DEPDIR)/libdap_la-Int64.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Int64.cc' object='libdap_la-Int64.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Int64.lo `test -f 'Int64.cc' || echo '$(srcdir)/'`Int64.cc
-
-libdap_la-UInt64.lo: UInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-UInt64.lo -MD -MP -MF $(DEPDIR)/libdap_la-UInt64.Tpo -c -o libdap_la-UInt64.lo `test -f 'UInt64.cc' || echo '$(srcdir)/'`UInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-UInt64.Tpo $(DEPDIR)/libdap_la-UInt64.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='UInt64.cc' object='libdap_la-UInt64.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-UInt64.lo `test -f 'UInt64.cc' || echo '$(srcdir)/'`UInt64.cc
-
-libdap_la-Int8.lo: Int8.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-Int8.lo -MD -MP -MF $(DEPDIR)/libdap_la-Int8.Tpo -c -o libdap_la-Int8.lo `test -f 'Int8.cc' || echo '$(srcdir)/'`Int8.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-Int8.Tpo $(DEPDIR)/libdap_la-Int8.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Int8.cc' object='libdap_la-Int8.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-Int8.lo `test -f 'Int8.cc' || echo '$(srcdir)/'`Int8.cc
-
-libdap_la-D4ParserSax2.lo: D4ParserSax2.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4ParserSax2.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4ParserSax2.Tpo -c -o libdap_la-D4ParserSax2.lo `test -f 'D4ParserSax2.cc' || echo '$(srcdir)/'`D4ParserSax2.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4ParserSax2.Tpo $(DEPDIR)/libdap_la-D4ParserSax2.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4ParserSax2.cc' object='libdap_la-D4ParserSax2.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4ParserSax2.lo `test -f 'D4ParserSax2.cc' || echo '$(srcdir)/'`D4ParserSax2.cc
-
-libdap_la-D4BaseTypeFactory.lo: D4BaseTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4BaseTypeFactory.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4BaseTypeFactory.Tpo -c -o libdap_la-D4BaseTypeFactory.lo `test -f 'D4BaseTypeFactory.cc' || echo '$(srcdir)/'`D4BaseTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4BaseTypeFactory.Tpo $(DEPDIR)/libdap_la-D4BaseTypeFactory.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4BaseTypeFactory.cc' object='libdap_la-D4BaseTypeFactory.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4BaseTypeFactory.lo `test -f 'D4BaseTypeFactory.cc' || echo '$(srcdir)/'`D4BaseTypeFactory.cc
-
-libdap_la-D4Dimensions.lo: D4Dimensions.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Dimensions.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Dimensions.Tpo -c -o libdap_la-D4Dimensions.lo `test -f 'D4Dimensions.cc' || echo '$(srcdir)/'`D4Dimensions.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Dimensions.Tpo $(DEPDIR)/libdap_la-D4Dimensions.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Dimensions.cc' object='libdap_la-D4Dimensions.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Dimensions.lo `test -f 'D4Dimensions.cc' || echo '$(srcdir)/'`D4Dimensions.cc
-
-libdap_la-D4EnumDefs.lo: D4EnumDefs.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4EnumDefs.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4EnumDefs.Tpo -c -o libdap_la-D4EnumDefs.lo `test -f 'D4EnumDefs.cc' || echo '$(srcdir)/'`D4EnumDefs.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4EnumDefs.Tpo $(DEPDIR)/libdap_la-D4EnumDefs.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4EnumDefs.cc' object='libdap_la-D4EnumDefs.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4EnumDefs.lo `test -f 'D4EnumDefs.cc' || echo '$(srcdir)/'`D4EnumDefs.cc
-
-libdap_la-D4Group.lo: D4Group.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Group.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Group.Tpo -c -o libdap_la-D4Group.lo `test -f 'D4Group.cc' || echo '$(srcdir)/'`D4Group.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Group.Tpo $(DEPDIR)/libdap_la-D4Group.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Group.cc' object='libdap_la-D4Group.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Group.lo `test -f 'D4Group.cc' || echo '$(srcdir)/'`D4Group.cc
-
-libdap_la-DMR.lo: DMR.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-DMR.lo -MD -MP -MF $(DEPDIR)/libdap_la-DMR.Tpo -c -o libdap_la-DMR.lo `test -f 'DMR.cc' || echo '$(srcdir)/'`DMR.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-DMR.Tpo $(DEPDIR)/libdap_la-DMR.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DMR.cc' object='libdap_la-DMR.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-DMR.lo `test -f 'DMR.cc' || echo '$(srcdir)/'`DMR.cc
-
-libdap_la-D4Attributes.lo: D4Attributes.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Attributes.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Attributes.Tpo -c -o libdap_la-D4Attributes.lo `test -f 'D4Attributes.cc' || echo '$(srcdir)/'`D4Attributes.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Attributes.Tpo $(DEPDIR)/libdap_la-D4Attributes.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Attributes.cc' object='libdap_la-D4Attributes.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Attributes.lo `test -f 'D4Attributes.cc' || echo '$(srcdir)/'`D4Attributes.cc
-
-libdap_la-D4Enum.lo: D4Enum.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Enum.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Enum.Tpo -c -o libdap_la-D4Enum.lo `test -f 'D4Enum.cc' || echo '$(srcdir)/'`D4Enum.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Enum.Tpo $(DEPDIR)/libdap_la-D4Enum.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Enum.cc' object='libdap_la-D4Enum.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Enum.lo `test -f 'D4Enum.cc' || echo '$(srcdir)/'`D4Enum.cc
-
-libdap_la-chunked_ostream.lo: chunked_ostream.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-chunked_ostream.lo -MD -MP -MF $(DEPDIR)/libdap_la-chunked_ostream.Tpo -c -o libdap_la-chunked_ostream.lo `test -f 'chunked_ostream.cc' || echo '$(srcdir)/'`chunked_ostream.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-chunked_ostream.Tpo $(DEPDIR)/libdap_la-chunked_ostream.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='chunked_ostream.cc' object='libdap_la-chunked_ostream.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-chunked_ostream.lo `test -f 'chunked_ostream.cc' || echo '$(srcdir)/'`chunked_ostream.cc
-
-libdap_la-chunked_istream.lo: chunked_istream.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-chunked_istream.lo -MD -MP -MF $(DEPDIR)/libdap_la-chunked_istream.Tpo -c -o libdap_la-chunked_istream.lo `test -f 'chunked_istream.cc' || echo '$(srcdir)/'`chunked_istream.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-chunked_istream.Tpo $(DEPDIR)/libdap_la-chunked_istream.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='chunked_istream.cc' object='libdap_la-chunked_istream.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-chunked_istream.lo `test -f 'chunked_istream.cc' || echo '$(srcdir)/'`chunked_istream.cc
-
-libdap_la-D4Sequence.lo: D4Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Sequence.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Sequence.Tpo -c -o libdap_la-D4Sequence.lo `test -f 'D4Sequence.cc' || echo '$(srcdir)/'`D4Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Sequence.Tpo $(DEPDIR)/libdap_la-D4Sequence.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Sequence.cc' object='libdap_la-D4Sequence.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Sequence.lo `test -f 'D4Sequence.cc' || echo '$(srcdir)/'`D4Sequence.cc
-
-libdap_la-D4Maps.lo: D4Maps.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Maps.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Maps.Tpo -c -o libdap_la-D4Maps.lo `test -f 'D4Maps.cc' || echo '$(srcdir)/'`D4Maps.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Maps.Tpo $(DEPDIR)/libdap_la-D4Maps.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Maps.cc' object='libdap_la-D4Maps.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Maps.lo `test -f 'D4Maps.cc' || echo '$(srcdir)/'`D4Maps.cc
-
-libdap_la-D4Opaque.lo: D4Opaque.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4Opaque.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4Opaque.Tpo -c -o libdap_la-D4Opaque.lo `test -f 'D4Opaque.cc' || echo '$(srcdir)/'`D4Opaque.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4Opaque.Tpo $(DEPDIR)/libdap_la-D4Opaque.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Opaque.cc' object='libdap_la-D4Opaque.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4Opaque.lo `test -f 'D4Opaque.cc' || echo '$(srcdir)/'`D4Opaque.cc
-
-libdap_la-D4AsyncUtil.lo: D4AsyncUtil.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4AsyncUtil.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4AsyncUtil.Tpo -c -o libdap_la-D4AsyncUtil.lo `test -f 'D4AsyncUtil.cc' || echo '$(srcdir)/'`D4AsyncUtil.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4AsyncUtil.Tpo $(DEPDIR)/libdap_la-D4AsyncUtil.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4AsyncUtil.cc' object='libdap_la-D4AsyncUtil.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4AsyncUtil.lo `test -f 'D4AsyncUtil.cc' || echo '$(srcdir)/'`D4AsyncUtil.cc
-
-libdap_la-D4RValue.lo: D4RValue.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdap_la-D4RValue.lo -MD -MP -MF $(DEPDIR)/libdap_la-D4RValue.Tpo -c -o libdap_la-D4RValue.lo `test -f 'D4RValue.cc' || echo '$(srcdir)/'`D4RValue.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdap_la-D4RValue.Tpo $(DEPDIR)/libdap_la-D4RValue.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4RValue.cc' object='libdap_la-D4RValue.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdap_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdap_la-D4RValue.lo `test -f 'D4RValue.cc' || echo '$(srcdir)/'`D4RValue.cc
-
-libdapclient_la-RCReader.lo: RCReader.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-RCReader.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-RCReader.Tpo -c -o libdapclient_la-RCReader.lo `test -f 'RCReader.cc' || echo '$(srcdir)/'`RCReader.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-RCReader.Tpo $(DEPDIR)/libdapclient_la-RCReader.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='RCReader.cc' object='libdapclient_la-RCReader.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-RCReader.lo `test -f 'RCReader.cc' || echo '$(srcdir)/'`RCReader.cc
-
-libdapclient_la-Connect.lo: Connect.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-Connect.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-Connect.Tpo -c -o libdapclient_la-Connect.lo `test -f 'Connect.cc' || echo '$(srcdir)/'`Connect.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-Connect.Tpo $(DEPDIR)/libdapclient_la-Connect.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Connect.cc' object='libdapclient_la-Connect.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-Connect.lo `test -f 'Connect.cc' || echo '$(srcdir)/'`Connect.cc
-
-libdapclient_la-HTTPConnect.lo: HTTPConnect.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-HTTPConnect.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-HTTPConnect.Tpo -c -o libdapclient_la-HTTPConnect.lo `test -f 'HTTPConnect.cc' || echo '$(srcdir)/'`HTTPConnect.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-HTTPConnect.Tpo $(DEPDIR)/libdapclient_la-HTTPConnect.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPConnect.cc' object='libdapclient_la-HTTPConnect.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-HTTPConnect.lo `test -f 'HTTPConnect.cc' || echo '$(srcdir)/'`HTTPConnect.cc
-
-libdapclient_la-HTTPCache.lo: HTTPCache.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-HTTPCache.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-HTTPCache.Tpo -c -o libdapclient_la-HTTPCache.lo `test -f 'HTTPCache.cc' || echo '$(srcdir)/'`HTTPCache.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-HTTPCache.Tpo $(DEPDIR)/libdapclient_la-HTTPCache.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPCache.cc' object='libdapclient_la-HTTPCache.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-HTTPCache.lo `test -f 'HTTPCache.cc' || echo '$(srcdir)/'`HTTPCache.cc
-
-libdapclient_la-util_mit.lo: util_mit.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-util_mit.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-util_mit.Tpo -c -o libdapclient_la-util_mit.lo `test -f 'util_mit.cc' || echo '$(srcdir)/'`util_mit.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-util_mit.Tpo $(DEPDIR)/libdapclient_la-util_mit.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='util_mit.cc' object='libdapclient_la-util_mit.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-util_mit.lo `test -f 'util_mit.cc' || echo '$(srcdir)/'`util_mit.cc
-
-libdapclient_la-ResponseTooBigErr.lo: ResponseTooBigErr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-ResponseTooBigErr.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-ResponseTooBigErr.Tpo -c -o libdapclient_la-ResponseTooBigErr.lo `test -f 'ResponseTooBigErr.cc' || echo '$(srcdir)/'`ResponseTooBigErr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-ResponseTooBigErr.Tpo $(DEPDIR)/libdapclient_la-ResponseTooBigErr.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ResponseTooBigErr.cc' object='libdapclient_la-ResponseTooBigErr.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-ResponseTooBigErr.lo `test -f 'ResponseTooBigErr.cc' || echo '$(srcdir)/'`ResponseTooBigErr.cc
-
-libdapclient_la-HTTPCacheTable.lo: HTTPCacheTable.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-HTTPCacheTable.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-HTTPCacheTable.Tpo -c -o libdapclient_la-HTTPCacheTable.lo `test -f 'HTTPCacheTable.cc' || echo '$(srcdir)/'`HTTPCacheTable.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-HTTPCacheTable.Tpo $(DEPDIR)/libdapclient_la-HTTPCacheTable.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPCacheTable.cc' object='libdapclient_la-HTTPCacheTable.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-HTTPCacheTable.lo `test -f 'HTTPCacheTable.cc' || echo '$(srcdir)/'`HTTPCacheTable.cc
-
-libdapclient_la-D4Connect.lo: D4Connect.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libdapclient_la-D4Connect.lo -MD -MP -MF $(DEPDIR)/libdapclient_la-D4Connect.Tpo -c -o libdapclient_la-D4Connect.lo `test -f 'D4Connect.cc' || echo '$(srcdir)/'`D4Connect.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libdapclient_la-D4Connect.Tpo $(DEPDIR)/libdapclient_la-D4Connect.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4Connect.cc' object='libdapclient_la-D4Connect.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdapclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libdapclient_la-D4Connect.lo `test -f 'D4Connect.cc' || echo '$(srcdir)/'`D4Connect.cc
-
-libparsers_la-lex.das.lo: lex.das.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-lex.das.lo -MD -MP -MF $(DEPDIR)/libparsers_la-lex.das.Tpo -c -o libparsers_la-lex.das.lo `test -f 'lex.das.cc' || echo '$(srcdir)/'`lex.das.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-lex.das.Tpo $(DEPDIR)/libparsers_la-lex.das.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='lex.das.cc' object='libparsers_la-lex.das.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-lex.das.lo `test -f 'lex.das.cc' || echo '$(srcdir)/'`lex.das.cc
-
-libparsers_la-lex.dds.lo: lex.dds.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-lex.dds.lo -MD -MP -MF $(DEPDIR)/libparsers_la-lex.dds.Tpo -c -o libparsers_la-lex.dds.lo `test -f 'lex.dds.cc' || echo '$(srcdir)/'`lex.dds.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-lex.dds.Tpo $(DEPDIR)/libparsers_la-lex.dds.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='lex.dds.cc' object='libparsers_la-lex.dds.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-lex.dds.lo `test -f 'lex.dds.cc' || echo '$(srcdir)/'`lex.dds.cc
-
-libparsers_la-lex.ce_expr.lo: lex.ce_expr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-lex.ce_expr.lo -MD -MP -MF $(DEPDIR)/libparsers_la-lex.ce_expr.Tpo -c -o libparsers_la-lex.ce_expr.lo `test -f 'lex.ce_expr.cc' || echo '$(srcdir)/'`lex.ce_expr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-lex.ce_expr.Tpo $(DEPDIR)/libparsers_la-lex.ce_expr.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='lex.ce_expr.cc' object='libparsers_la-lex.ce_expr.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-lex.ce_expr.lo `test -f 'lex.ce_expr.cc' || echo '$(srcdir)/'`lex.ce_expr.cc
-
-libparsers_la-lex.Error.lo: lex.Error.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-lex.Error.lo -MD -MP -MF $(DEPDIR)/libparsers_la-lex.Error.Tpo -c -o libparsers_la-lex.Error.lo `test -f 'lex.Error.cc' || echo '$(srcdir)/'`lex.Error.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-lex.Error.Tpo $(DEPDIR)/libparsers_la-lex.Error.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='lex.Error.cc' object='libparsers_la-lex.Error.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-lex.Error.lo `test -f 'lex.Error.cc' || echo '$(srcdir)/'`lex.Error.cc
-
-libparsers_la-das.tab.lo: das.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-das.tab.lo -MD -MP -MF $(DEPDIR)/libparsers_la-das.tab.Tpo -c -o libparsers_la-das.tab.lo `test -f 'das.tab.cc' || echo '$(srcdir)/'`das.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-das.tab.Tpo $(DEPDIR)/libparsers_la-das.tab.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='das.tab.cc' object='libparsers_la-das.tab.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-das.tab.lo `test -f 'das.tab.cc' || echo '$(srcdir)/'`das.tab.cc
-
-libparsers_la-dds.tab.lo: dds.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-dds.tab.lo -MD -MP -MF $(DEPDIR)/libparsers_la-dds.tab.Tpo -c -o libparsers_la-dds.tab.lo `test -f 'dds.tab.cc' || echo '$(srcdir)/'`dds.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-dds.tab.Tpo $(DEPDIR)/libparsers_la-dds.tab.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='dds.tab.cc' object='libparsers_la-dds.tab.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-dds.tab.lo `test -f 'dds.tab.cc' || echo '$(srcdir)/'`dds.tab.cc
-
-libparsers_la-ce_expr.tab.lo: ce_expr.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-ce_expr.tab.lo -MD -MP -MF $(DEPDIR)/libparsers_la-ce_expr.tab.Tpo -c -o libparsers_la-ce_expr.tab.lo `test -f 'ce_expr.tab.cc' || echo '$(srcdir)/'`ce_expr.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-ce_expr.tab.Tpo $(DEPDIR)/libparsers_la-ce_expr.tab.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ce_expr.tab.cc' object='libparsers_la-ce_expr.tab.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-ce_expr.tab.lo `test -f 'ce_expr.tab.cc' || echo '$(srcdir)/'`ce_expr.tab.cc
-
-libparsers_la-Error.tab.lo: Error.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libparsers_la-Error.tab.lo -MD -MP -MF $(DEPDIR)/libparsers_la-Error.tab.Tpo -c -o libparsers_la-Error.tab.lo `test -f 'Error.tab.cc' || echo '$(srcdir)/'`Error.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libparsers_la-Error.tab.Tpo $(DEPDIR)/libparsers_la-Error.tab.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Error.tab.cc' object='libparsers_la-Error.tab.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libparsers_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libparsers_la-Error.tab.lo `test -f 'Error.tab.cc' || echo '$(srcdir)/'`Error.tab.cc
-
-getdap-getdap.o: getdap.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT getdap-getdap.o -MD -MP -MF $(DEPDIR)/getdap-getdap.Tpo -c -o getdap-getdap.o `test -f 'getdap.cc' || echo '$(srcdir)/'`getdap.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/getdap-getdap.Tpo $(DEPDIR)/getdap-getdap.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='getdap.cc' object='getdap-getdap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o getdap-getdap.o `test -f 'getdap.cc' || echo '$(srcdir)/'`getdap.cc
-
-getdap-getdap.obj: getdap.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT getdap-getdap.obj -MD -MP -MF $(DEPDIR)/getdap-getdap.Tpo -c -o getdap-getdap.obj `if test -f 'getdap.cc'; then $(CYGPATH_W) 'getdap.cc'; else $(CYGPATH_W) '$(srcdir)/getdap.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/getdap-getdap.Tpo $(DEPDIR)/getdap-getdap.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='getdap.cc' object='getdap-getdap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o getdap-getdap.obj `if test -f 'getdap.cc'; then $(CYGPATH_W) 'getdap.cc'; else $(CYGPATH_W) '$(srcdir)/getdap.cc'; fi`
-
-getdap4-getdap4.o: getdap4.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap4_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT getdap4-getdap4.o -MD -MP -MF $(DEPDIR)/getdap4-getdap4.Tpo -c -o getdap4-getdap4.o `test -f 'getdap4.cc' || echo '$(srcdir)/'`getdap4.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/getdap4-getdap4.Tpo $(DEPDIR)/getdap4-getdap4.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='getdap4.cc' object='getdap4-getdap4.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap4_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o getdap4-getdap4.o `test -f 'getdap4.cc' || echo '$(srcdir)/'`getdap4.cc
-
-getdap4-getdap4.obj: getdap4.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap4_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT getdap4-getdap4.obj -MD -MP -MF $(DEPDIR)/getdap4-getdap4.Tpo -c -o getdap4-getdap4.obj `if test -f 'getdap4.cc'; then $(CYGPATH_W) 'getdap4.cc'; else $(CYGPATH_W) '$(srcdir)/getdap4.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/getdap4-getdap4.Tpo $(DEPDIR)/getdap4-getdap4.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='getdap4.cc' object='getdap4-getdap4.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(getdap4_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o getdap4-getdap4.obj `if test -f 'getdap4.cc'; then $(CYGPATH_W) 'getdap4.cc'; else $(CYGPATH_W) '$(srcdir)/getdap4.cc'; fi`
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-	-rm -rf GNU/.libs GNU/_libs
-
-distclean-libtool:
-	-rm -f libtool config.lt
-install-man1: $(man_MANS)
-	@$(NORMAL_INSTALL)
-	@list1=''; \
-	list2='$(man_MANS)'; \
-	test -n "$(man1dir)" \
-	  && test -n "`echo $$list1$$list2`" \
-	  || exit 0; \
-	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
-	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
-	{ for i in $$list1; do echo "$$i"; done;  \
-	if test -n "$$list2"; then \
-	  for i in $$list2; do echo "$$i"; done \
-	    | sed -n '/\.1[a-z]*$$/p'; \
-	fi; \
-	} | while read p; do \
-	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; echo "$$p"; \
-	done | \
-	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
-	sed 'N;N;s,\n, ,g' | { \
-	list=; while read file base inst; do \
-	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
-	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
-	  fi; \
-	done; \
-	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
-	while read files; do \
-	  test -z "$$files" || { \
-	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
-	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
-	done; }
-
-uninstall-man1:
-	@$(NORMAL_UNINSTALL)
-	@list=''; test -n "$(man1dir)" || exit 0; \
-	files=`{ for i in $$list; do echo "$$i"; done; \
-	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-	  sed -n '/\.1[a-z]*$$/p'; \
-	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-install-dist_aclocalDATA: $(dist_aclocal_DATA)
-	@$(NORMAL_INSTALL)
-	@list='$(dist_aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(aclocaldir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(aclocaldir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(aclocaldir)" || exit $$?; \
-	done
-
-uninstall-dist_aclocalDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(dist_aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(aclocaldir)'; $(am__uninstall_files_from_dir)
-install-pkgconfigDATA: $(pkgconfig_DATA)
-	@$(NORMAL_INSTALL)
-	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
-	done
-
-uninstall-pkgconfigDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
-install-pkgincludeHEADERS: $(pkginclude_HEADERS)
-	@$(NORMAL_INSTALL)
-	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
-	done
-
-uninstall-pkgincludeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
-	test ! -s cscope.files \
-	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
-	-rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
-	@case `sed 15q $(srcdir)/NEWS` in \
-	*"$(VERSION)"*) : ;; \
-	*) \
-	  echo "NEWS not updated; not releasing" 1>&2; \
-	  exit 1;; \
-	esac
-	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -755 \
-		-exec chmod u+rwx,go+rx {} \; -o \
-	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r "$(distdir)"
-dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__post_remove_distdir)
-
-dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__post_remove_distdir)
-
-dist-lzip: distdir
-	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__post_remove_distdir)
-
-dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__post_remove_distdir)
-
-dist-tarZ: distdir
-	@echo WARNING: "Support for shar distribution archives is" \
-	               "deprecated." >&2
-	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__post_remove_distdir)
-
-dist-shar: distdir
-	@echo WARNING: "Support for distribution archives compressed with" \
-		       "legacy program 'compress' is deprecated." >&2
-	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__post_remove_distdir)
-
-dist-zip: distdir
-	-rm -f $(distdir).zip
-	zip -rq $(distdir).zip $(distdir)
-	$(am__post_remove_distdir)
-
-dist dist-all:
-	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
-	$(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	case '$(DIST_ARCHIVES)' in \
-	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-	*.tar.bz2*) \
-	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lz*) \
-	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
-	*.tar.xz*) \
-	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-	*.tar.Z*) \
-	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-	*.zip*) \
-	  unzip $(distdir).zip ;;\
-	esac
-	chmod -R a-w $(distdir)
-	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
-	chmod a-w $(distdir)
-	test -d $(distdir)/_build || exit 0; \
-	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
-	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure \
-	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
-	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	    --srcdir=.. --prefix="$$dc_install_base" \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
-	        distuninstallcheck \
-	  && chmod -R a-w "$$dc_install_base" \
-	  && ({ \
-	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
-	  && rm -rf "$$dc_destdir" \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-	  && cd "$$am__cwd" \
-	  || exit 1
-	$(am__post_remove_distdir)
-	@(echo "$(distdir) archives ready for distribution: "; \
-	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
-	@test -n '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: trying to run $@ with an empty' \
-	       '$$(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	$(am__cd) '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
-	   || { echo "ERROR: files left after uninstall:" ; \
-	        if test -n "$(DESTDIR)"; then \
-	          echo "  (check DESTDIR support)"; \
-	        fi ; \
-	        $(distuninstallcheck_listfiles) ; \
-	        exit 1; } >&2
-distcleancheck: distclean
-	@if test '$(srcdir)' = . ; then \
-	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-	  exit 1 ; \
-	fi
-	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-	  || { echo "ERROR: files left in build directory after distclean:" ; \
-	       $(distcleancheck_listfiles) ; \
-	       exit 1; } >&2
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \
-		$(HEADERS) config.h dods-datatypes-config.h \
-		xdr-datatypes-config.h
-install-binPROGRAMS: install-libLTLIBRARIES
-
-installdirs: installdirs-recursive
-installdirs-am:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(aclocaldir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-rm -f GNU/$(DEPDIR)/$(am__dirstamp)
-	-rm -f GNU/$(am__dirstamp)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-recursive
-
-clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
-	clean-libtool clean-noinstLTLIBRARIES mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf ./$(DEPDIR) GNU/$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-hdr distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-dist_aclocalDATA install-man \
-	install-pkgconfigDATA install-pkgincludeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS install-binSCRIPTS \
-	install-libLTLIBRARIES
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf $(top_srcdir)/autom4te.cache
-	-rm -rf ./$(DEPDIR) GNU/$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
-	uninstall-dist_aclocalDATA uninstall-libLTLIBRARIES \
-	uninstall-man uninstall-pkgconfigDATA \
-	uninstall-pkgincludeHEADERS
-
-uninstall-man: uninstall-man1
-
-.MAKE: $(am__recursive_targets) all check install install-am \
-	install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
-	am--refresh check check-am clean clean-binPROGRAMS \
-	clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \
-	clean-noinstLTLIBRARIES cscope cscopelist-am ctags ctags-am \
-	dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \
-	dist-tarZ dist-xz dist-zip distcheck distclean \
-	distclean-compile distclean-generic distclean-hdr \
-	distclean-libtool distclean-tags distcleancheck distdir \
-	distuninstallcheck dvi dvi-am html html-am info info-am \
-	install install-am install-binPROGRAMS install-binSCRIPTS \
-	install-data install-data-am install-dist_aclocalDATA \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-man install-man1 install-pdf \
-	install-pdf-am install-pkgconfigDATA install-pkgincludeHEADERS \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
-	uninstall-binSCRIPTS uninstall-dist_aclocalDATA \
-	uninstall-libLTLIBRARIES uninstall-man uninstall-man1 \
-	uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS
-
-
-%.1: %.man1
-	groff -t -e -mandoc -Tascii $< | col -bx > $@
-
-.PHONY: docs
-docs:
-	doxygen $(srcdir)/doxy.conf
-	(cd docs && tar -czf html.tar.gz html)
-
-# cccc computes metrics like Lines of code and McCabe. It'a available
-# on the web...
-.PHONY: cccc
-cccc:
-	-mkdir cccc
-	cccc --outdir=cccc $(DAP_SRC) $(SERVER_SRC) $(CLIENT_SRC) \
-	$(DAP_HDR) $(SERVER_HDR) $(CLIENT_HDR)
-
-###########################################################################
-
-# Fortify targets.
-.PHONY: fortify
-fortify: $(BUILT_SOURCES)
-	(cd gl && sourceanalyzer -b @PACKAGE at -gl $(MAKE) $(MFLAGS) )
-	(cd d4_ce && sourceanalyzer -b @PACKAGE at -d4_ce $(MAKE) $(MFLAGS) )
-	sourceanalyzer -b @PACKAGE at -parsers $(MAKE) $(MFLAGS) libparsers.la
-	sourceanalyzer -b @PACKAGE@ $(MAKE) $(MFLAGS) libdap.la libdapserver.la libdapclient.la
-	sourceanalyzer -b @PACKAGE@ -scan -f @PACKAGE at -@PACKAGE_VERSION at .fpr
-
-# run fortify on only our code, not the gnulib code or the flex/bison code.
-# This does skip testing some of the functions we wrote in the *.lex/*.yy
-# files but should eliminate the false positives from flex and bison, too.
-.PHONY: fortify-lite
-fortify-lite: dods-datatypes.h xdr-datatypes.h
-	( cd gl && $(MAKE) $(MFLAGS) )
-	( cd d4_ce && $(MAKE) $(MFLAGS) )
-	$(MAKE)  $(MFLAGS) libparsers.la
-	sourceanalyzer -b @PACKAGE@ $(MAKE) $(MFLAGS) libdap.la libdapserver.la libdapclient.la
-	sourceanalyzer -b @PACKAGE@ -scan -f @PACKAGE at -@PACKAGE_VERSION at .fpr
-
-# No longer used? jhrg 1/29/13
-#grammar_objects = lex.das.o das.tab.o lex.dds.o dds.tab.o lex.ce_expr.o \
-#ce_expr.tab.o lex.gse_.o gse.tab.o lex.Error.o Error.tab.o
-
-# Use this to clean the fortify project.
-.PHONY: fortifyclean
-fortifyclean:
-	(cd gl && sourceanalyzer -b @PACKAGE at -gl -clean )
-	sourceanalyzer -b @PACKAGE@ -clean
-
-###########################################################################
-
-# Build linux RPMs. Use the environment variable 'RPM_OPTIONS' to pass in
-# extra options like --nodeps and --macros
-
-srpm: dist
-	rpmbuild -ts --clean $(RPM_OPTIONS) @PACKAGE at -@PACKAGE_VERSION at .tar.gz
-
-rpm: dist
-	rpmbuild -tb --clean $(RPM_OPTIONS) @PACKAGE at -@PACKAGE_VERSION at .tar.gz
-
-clean-pkg:
-	-rm -rf mac_osx @PACKAGE at -@PACKAGE_VERSION at .pkg
-
-pkg-build: clean-pkg
-	./configure --prefix=$(prefix) --disable-dependency-tracking $(PKG_CONF_FLAGS)
-	make clean all
-	DESTDIR=`pwd`/mac_osx make install
-
-pkg-main: pkg-build
-	./OSX_Resources/update_mac_package_contents.pl README
-	cat ./OSX_Resources/Info.plist.proto | \
-	   sed -e "s^_PREFIX_^/usr/local/servers/hyrax-1.8.8^g" \
-	       -e "s^_FULL_VERSION_^@PACKAGE_VERSION@^g" \
-	       -e "s^_MAJOR_VERSION_^@PACKAGE_MAJOR_VERSION@^g" \
-	       -e "s^_MINOR_VERSION_^@PACKAGE_MINOR_VERSION@^g" \
-	       > foo
-	mv foo ./OSX_Resources/Info.plist
-	${PACKAGEMAKER} --root mac_osx --id org.opendap. at PACKAGE@ \
-	    --title "@PACKAGE@ @PACKAGE_VERSION@" --version @PACKAGE_VERSION@ \
-	    --out @PACKAGE at -@PACKAGE_VERSION at .pkg --resources OSX_Resources
-
-# 	   sed -e "s^_PREFIX_^$(prefix)^g" 
-
-pkg-dmg: pkg-main
-	-rm -rf @PACKAGE at -@PACKAGE_VERSION@
-	-rm -rf @PACKAGE at -@PACKAGE_VERSION at .dmg
-	mkdir @PACKAGE at -@PACKAGE_VERSION@
-	cp -r @PACKAGE at -@PACKAGE_VERSION at .pkg @PACKAGE at -@PACKAGE_VERSION@
-	cp README README.* NEWS @PACKAGE at -@PACKAGE_VERSION@
-	dropdmg -i --sanitize-for-servers --format zlib @PACKAGE at -@PACKAGE_VERSION@
-	-rm -rf @PACKAGE at -@PACKAGE_VERSION@
-
-pkg: pkg-main 
-
-# Note that the gcov options -f and -b are useful but sometimes make looking
-# at the results of coverage analysis a little taxing. -b reports on all
-# branched and -f reports on all functions. The -l -o options summarize on a
-# per-file basis. 3/27/98 jhrg
-collect-coverage-data:
-	(cd test-coverage; \
-         cov_dat="coverage-data-`date +%m.%d.%y`"; \
-         touch $$cov_dat; \
-         for f in $(ALLSRCS); do \
-            echo "\n*** Coverage data for $$f ***\n" >> $$cov_dat; \
-            gcov -l -o ../ $$f >> $$cov_dat; \
-         done)
-
-Operators.h: ce_expr.tab.hh
-
- at USE_C99_TYPES_TRUE@dods-datatypes.h: dods-datatypes-static.h
- at USE_C99_TYPES_TRUE@	cp -p $< dods-datatypes.h
- at USE_C99_TYPES_FALSE@dods-datatypes.h: dods-datatypes-config.h
- at USE_C99_TYPES_FALSE@	cp -p $< dods-datatypes.h
-
-xdr-datatypes.h: xdr-datatypes-config.h
-	cp -p $< xdr-datatypes.h
-#	ResponseBuilder.h ResponseCache.h
-
-############################################################################
-# Special rules for the grammars. I tried to use the automake grammar support
-# but these grammars are so hacked that it was taking too much time. Maybe if
-# each grammar was converted one by one... jhrg 6/22/05
-# 
-# I switched to using flex options instead of sed and mv. jhrg 02/28/08
-#
-# Build the DAS scanner and parser
-
-# Using this pattern rule is a way to get gnu make to run bison only once.
-# The targets that explicitly name the two sources to be built will run it
-# twice with a parallel build. jhrg 6/18/15
-
-%.tab.cc %.tab.hh: %.yy
-	$(YACC) $(YFLAGS) $<
-
-lex.das.cc: das.lex das.tab.cc das.tab.hh
-	$(LEX) $(LFLAGS) $<
-
-#das.tab.cc das.tab.hh: das.yy DAS.h
-#	$(YACC) $(YFLAGS) $<
-
-# DDS
-
-lex.dds.cc: dds.lex dds.tab.cc dds.tab.hh
-	$(LEX) $(LFLAGS) $<
-
-#dds.tab.cc dds.tab.hh: dds.yy
-#	$(YACC) $(YFLAGS) $<
-
-# CE
-
-lex.ce_expr.cc: ce_expr.lex ce_expr.tab.cc ce_expr.tab.hh
-	$(LEX) $(LFLAGS) $<
-
-#ce_expr.tab.cc ce_expr.tab.hh: ce_expr.yy
-#	$(YACC) $(YFLAGS) $<
-
-# Errors
-
-lex.Error.cc: Error.lex Error.tab.cc Error.tab.hh
-	$(LEX) $(LFLAGS) $<
-
-#Error.tab.cc Error.tab.hh: Error.yy
-#	$(YACC) $(YFLAGS) $<
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/MarshallerThread.cc b/MarshallerThread.cc
index 73eaae9..c5e5826 100644
--- a/MarshallerThread.cc
+++ b/MarshallerThread.cc
@@ -47,6 +47,7 @@
 using namespace libdap;
 using namespace std;
 
+#if 0
 bool MarshallerThread::print_time = false;
 
 /**
@@ -72,6 +73,8 @@ static double time_diff_to_hundredths(struct timeval *stop, struct timeval *star
     result += double(stop->tv_usec - start->tv_usec) / 1000000;
     return result;
 }
+#endif
+
 
 /**
  * Lock the mutex then wait for the child thread to signal using the
@@ -152,12 +155,12 @@ ChildLocker::~ChildLocker()
 MarshallerThread::MarshallerThread() :
     d_thread(0), d_child_thread_count(0)
 {
-    if (pthread_attr_init(&d_thread_attr) != 0) throw Error("Failed to initialize pthread attributes.");
+    if (pthread_attr_init(&d_thread_attr) != 0) throw Error(internal_error, "Failed to initialize pthread attributes.");
     if (pthread_attr_setdetachstate(&d_thread_attr, PTHREAD_CREATE_DETACHED /*PTHREAD_CREATE_JOINABLE*/) != 0)
-        throw Error("Failed to complete pthread attribute initialization.");
+        throw Error(internal_error, "Failed to complete pthread attribute initialization.");
 
-    if (pthread_mutex_init(&d_out_mutex, 0) != 0) throw Error("Failed to initialize mutex.");
-    if (pthread_cond_init(&d_out_cond, 0) != 0) throw Error("Failed to initialize cond.");
+    if (pthread_mutex_init(&d_out_mutex, 0) != 0) throw Error(internal_error, "Failed to initialize mutex.");
+    if (pthread_cond_init(&d_out_cond, 0) != 0) throw Error(internal_error, "Failed to initialize cond.");
 }
 
 MarshallerThread::~MarshallerThread()
@@ -210,6 +213,10 @@ void MarshallerThread::start_thread(void* (*thread)(void *arg), int fd, char *by
  * This static method is used to write data to the ostream referenced
  * by the ostream element of write_args. This is used by start_thread()
  * and passed to pthread_create()
+ *
+ * @note The write_args argument may contain either a file descriptor
+ * (d_out_file) or an ostream& (d_out). If the file descriptor is not
+ * -1, then use that, else use the ostream reference.
  */
 void *
 MarshallerThread::write_thread(void *arg)
@@ -218,8 +225,10 @@ MarshallerThread::write_thread(void *arg)
 
     ChildLocker lock(args->d_mutex, args->d_cond, args->d_count); // RAII; will unlock on exit
 
+#if 0
     struct timeval tp_s;
     if (print_time && gettimeofday(&tp_s, 0) != 0) cerr << "could not read time" << endl;
+#endif
 
     // force an error
     // return (void*)-1;
@@ -239,15 +248,17 @@ MarshallerThread::write_thread(void *arg)
         }
     }
 
-    delete args->d_buf;
+    delete [] args->d_buf;
     delete args;
 
+#if 0
     struct timeval tp_e;
     if (print_time) {
         if (gettimeofday(&tp_e, 0) != 0) cerr << "could not read time" << endl;
 
         cerr << "time for child thread write: " << time_diff_to_hundredths(&tp_e, &tp_s) << endl;
     }
+#endif
 
     return 0;
 }
@@ -285,7 +296,7 @@ MarshallerThread::write_thread_part(void *arg)
         }
     }
 
-    delete args->d_buf;
+    delete [] args->d_buf;
     delete args;
 
     return 0;
diff --git a/MarshallerThread.h b/MarshallerThread.h
index fd15e95..6d344ef 100644
--- a/MarshallerThread.h
+++ b/MarshallerThread.h
@@ -62,7 +62,12 @@ private:
 };
 
 /**
- * RAII (for MarshallerThread) used by the child thread. The ctor simply
+ * Synchronization for the child thread in the multi-threaded version of
+ * the DAP2 and DAP4 (when it gets implement) 'Marshaller' class used to
+ * send data. The class declared below (MarshallerThread) manages the
+ * child thread.
+ *
+ * The ctor of this class simply
  * locks the mutex; the dtor clears the child thread count, signals that
  * count has changed and unlocks the mutex.
  */
@@ -80,6 +85,14 @@ private:
     ChildLocker(const Locker &rhs);
 };
 
+/**
+ * Implement a multi-threaded data transmission sub-system for libdap.
+ * This class makes it fairly painless to send data using a child thread
+ * so that the main thread can be used to read the next chunk of data
+ * while whatever has been read to this point is sent over the wire.
+ *
+ * This code is used by XDRStreamMarshaller and (soon) D4StreamMarshaller.
+ */
 class MarshallerThread {
 private:
     pthread_t d_thread;
@@ -91,7 +104,9 @@ private:
     int d_child_thread_count;   // 0 or 1
     std::string d_thread_error; // non-null indicates an error
 
+#if 0
     static bool print_time; // false by default
+#endif
 
     /**
      * Used to pass information into the static methods that run the
@@ -145,8 +160,11 @@ public:
     static void *write_thread(void *arg);
     static void *write_thread_part(void *arg);
 
+#if 0
     static void set_print_time(bool state) { print_time = state; }
     static bool get_print_time() { return print_time; }
+#endif
+
 };
 
 }
diff --git a/NEWS b/NEWS
index 6ddb228..88e934c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,74 @@
+News for version 3.18.1
+
+Minor fix for the source distribution.
+
+Fixed a long-standing bug in BaseType::set_send_p() and set_read_p().
+
+Added a way to build 'universal' baselines for tests that include
+data. Tests that included data had different checksums on different
+architectures and this meant two sets of baselines for them. No more.
+I'm keeping the old tests with their dual baselines (they test the
+checksum code) but all newer tests should use the 'universal' test
+macros.
+
+Added DAP4 filter support!
+
+News for version 3.17.3
+
+Fixed a soname error - Adding a const constructor seems to have
+*removed* the old constructor as far as some code is cncerned (it's
+still there, but with a different mangled name).
+
+News for version 3.17.2
+
+Added tests for big-endian machines from Dan Horák  <dan at danny.cz>
+
+News for version 3.17.1
+
+A bug fix release. 
+
+Fix for endian detection issues and unqualified use of 'array' (it
+should have been libdap::array). The latter affects builds with 
+recent versions of gcc.
+
+See the ChangeLog for other issues that this version addresses.
+
+News for version 3.17.0
+
+Better error reporting. Error objects are now always thrown with a
+code that 'make sense' and use the default code only when really
+necessary. This means that the BES will not report most Error throws
+as an internal error (only a few are) unless that's really the case.
+This is used, in turn, by the front end to make better error responses
+for users.
+
+The old timeout code is still present but not used. This matches 
+changes made in the BES to correctly process timeouts.
+
+Improved support for doxygen.
+
+Support for DAP4: Attributes were sometimes mis-coded as Byte when
+they should have been Float32. Fixed.
+
+Child Groups were sometimes printed twice. No more.
+
+News for version 3.16.0
+
+I've bumped up the version because of an API change in libdap - the 
+library no longer computes the DAP4 CRC32 checksum as part of the 
+BaseType::intern_data() method. This API change affects DAP4 only. 
+Otherwise, this is a bug-fix release for 3.15.1
+
+Bugs fixed:
+
+getdap4 correctly produces output for dataset with child groups.
+
+Tests now work correctly for big-endian machines - before the DMR tests
+were failing because the CRC32 codes are different for the same, e.g.,
+int32 value, with different byte order. Not addressed are the issues 
+of how best to encode the byte order used when CRC32 computations are
+done. Thanks to the folks at RedHat for help (a VM) to work on this.
+
 News for version 3.15.1
 
 Bug fixes
@@ -11,11 +82,11 @@ are returned (or when returning the result of an aggregation).
 The library now supports writing 'vector' data (i.e., Array variables)
 in parts so that large arrays that are being built up over time can be
 serialized in pieces as the data becomes available. This is combined
-with the parallel I/O feature when serailizing aggregations - other
+with the parallel I/O feature when serializing aggregations - other
 handlers could also take advantage of it
 
 We fixed an issue in Vector where template methods were used in a way
-that broke inheritance, introducing a hard-to-diagbose bug in the NCML 
+that broke inheritance, introducing a hard-to-diagnose bug in the NCML 
 code. The problem was that variables that describe the 'aggregation 
 dimension' could not be subset. That's now fixed.
 
@@ -59,7 +130,7 @@ was changed.
 
 News for version 3.13.0
 
-Added a xml file to serve as input for the perl-based abi compatability 
+Added a xml file to serve as input for the perl-based abi compatibility 
 checker. Seems to be pretty slick; see abi-checker.xml.in for more info.
 
 Some updates - mostly addition of #include <unistd.h> - for OSX 10.9's
@@ -117,7 +188,7 @@ Merged to trunk; tagged.
 News for version 3.11.3
 
 Changed the return value for dap-config --libs so that it does not contain 
-the curl static libs. This causes problems whenlinking on CentOS 6 in some
+the curl static libs. This causes problems when linking on CentOS 6 in some
 cases.
 
 News for version 3.11.2
@@ -173,7 +244,7 @@ News for version 3.10.2
 Changed the way the DAS object's attributes are merged into a DDS
 object, which did two things. First, the process of merging the
 attributes has a default behavior that will work if the DAS and DDS
-are built according to the DAp 2.0 specification, and second, the
+are built according to the DAP 2.0 specification, and second, the
 handlers can specialize the process to suite their own needs. This
 means that new handlers that build odd DAS objects will need to
 specialize the transfer_attributes() method defined by BaseType,
@@ -218,12 +289,12 @@ NcML handler is a separate project).
 News for version 3.9.2
 
 Memory leak fixed when using DDS::transfer_attributes on a DAS that uses the
-ALias keyword.
+Alias keyword.
 
 News for version 3.9.1
 
 The CE parser now returns an error if an array of structures that contains
-arrays is imporperly constrained (the enclosing structure array _may_ be
+arrays is improperly constrained (the enclosing structure array _may_ be
 subsampled, but that subsampling must be the same for each of its fields. The
 fields can be independently subsampled.
 
@@ -234,7 +305,7 @@ Variable names can now be quoted! That is, in a CE you can say:
   "my odd name"."% H2O"[10:13] 
 
 and it will parse. Must clients and all web browsers will encode all of this
-using the web's URL escape syntax, whic his hard to read, but this means that
+using the web's URL escape syntax, which his hard to read, but this means that
 any character can now appear in a variable name (double quotes can be escaped
 using a backslash and backslashes can be includes using '\\'). The quotes are
 optional, of course, so all CEs that work now will continue to work.
@@ -318,7 +389,7 @@ The syntax for PROXY_SERVER and NO_PROXY_FOR have been fixed so that they are
 easier to use. PROXY_SERVER now takes a value like
 'http://user:pw@squid.proxy.edu:3128' and uses it correctly. In that value,
 all parts but the host name (squid.proxy.edu) are optional and the old syntax,
-as well as several comman variants, are accepted. For the NO_PROXY_FOR entry,
+as well as several common variants, are accepted. For the NO_PROXY_FOR entry,
 the '<protocol>,' is now optional. Only the HTTP protocol is supported or the
 proxy server.
 
@@ -355,7 +426,7 @@ fixes a bug where the BES fails to start on smaller machines.
 
 News for version 3.7.9, 21 November 2007
 
-Bumped up the soname version numbers for libdaoclient and libdapserver due
+Bumped up the soname version numbers for libdapclient and libdapserver due
 to changes in the HTTPResponse and AlarmHandler interfaces.
 
 The transfer_data() method defined for Sequence and Structure has been
diff --git a/Operators.h b/Operators.h
index 5991a12..1209dfa 100644
--- a/Operators.h
+++ b/Operators.h
@@ -36,11 +36,8 @@
 #define _operators_h
 
 #include "GNURegex.h"  // GNU Regex class used for string =~ op.
-#include "parser.h"  // for ID_MAX
 #include "ce_expr.tab.hh"
 
-//using namespace std;
-
 namespace libdap {
 
 /** Compare two numerical types, both of which are either signed or unsigned.
@@ -53,6 +50,8 @@ namespace libdap {
 template<class T1, class T2>
 bool Cmp(int op, T1 v1, T2 v2)
 {
+	DBGN(cerr << __PRETTY_FUNCTION__ << v1 << " " << op << " " << v2 << endl);
+
     switch (op) {
         case SCAN_EQUAL:
             return v1 == v2;
@@ -67,9 +66,9 @@ bool Cmp(int op, T1 v1, T2 v2)
         case SCAN_LESS_EQL:
             return v1 <= v2;
         case SCAN_REGEXP:
-            throw Error("Regular expressions are supported for strings only.");
+            throw Error(malformed_expr, "Regular expressions are supported for strings only.");
         default:
-            throw Error("Unrecognized operator.");
+            throw Error(malformed_expr, "Unrecognized operator.");
     }
 }
 
@@ -90,6 +89,8 @@ static inline unsigned long long dap_floor_zero(T i)
 template<class UT1, class T2>
 bool USCmp(int op, UT1 v1, T2 v2)
 {
+	DBGN(cerr << __PRETTY_FUNCTION__ << v1 << " " << op << " " << v2 << endl);
+
     switch (op) {
         case SCAN_EQUAL:
             return v1 == dap_floor_zero<T2>(v2);
@@ -104,9 +105,9 @@ bool USCmp(int op, UT1 v1, T2 v2)
         case SCAN_LESS_EQL:
             return v1 <= dap_floor_zero<T2>(v2);
         case SCAN_REGEXP:
-            throw Error("Regular expressions are supported for strings only.");
+            throw Error(malformed_expr, "Regular expressions are supported for strings only.");
         default:
-            throw Error("Unrecognized operator.");
+            throw Error(malformed_expr, "Unrecognized operator.");
     }
 }
 
@@ -125,6 +126,8 @@ bool USCmp(int op, UT1 v1, T2 v2)
 template<class T1, class UT2>
 bool SUCmp(int op, T1 v1, UT2 v2)
 {
+	DBGN(cerr << __PRETTY_FUNCTION__ << v1 << " " << op << " " << v2 << endl);
+
     switch (op) {
         case SCAN_EQUAL:
             return dap_floor_zero<T1>(v1) == v2;
@@ -139,9 +142,9 @@ bool SUCmp(int op, T1 v1, UT2 v2)
         case SCAN_LESS_EQL:
             return dap_floor_zero<T1>(v1) <= v2;
         case SCAN_REGEXP:
-            throw Error("Regular expressions are supported for strings only.");
+            throw Error(malformed_expr, "Regular expressions are supported for strings only.");
         default:
-            throw Error("Unrecognized operator.");
+            throw Error(malformed_expr, "Unrecognized operator.");
     }
 }
 
@@ -171,7 +174,7 @@ bool StrCmp(int op, T1 v1, T2 v2)
             return r.match(v1.c_str(), v1.length()) > 0;
         }
         default:
-            throw Error("Unrecognized operator.");
+            throw Error(malformed_expr, "Unrecognized operator.");
     }
 }
 
diff --git a/RCReader.cc b/RCReader.cc
index 8a92e3b..237385e 100644
--- a/RCReader.cc
+++ b/RCReader.cc
@@ -221,8 +221,7 @@ bool RCReader::read_rc_file(const string &pathname)
                     d_dods_proxy_server_protocol = proxy.substr(0, comma);
                     downcase(d_dods_proxy_server_protocol);
                     if (d_dods_proxy_server_protocol != "http")
-                        throw Error(
-                                "The only supported protocol for a proxy server is \"HTTP\". Correct your \".dodsrc\" file.");
+                        throw Error("The only supported protocol for a proxy server is \"HTTP\". Correct your \".dodsrc\" file.");
                     proxy = proxy.substr(comma + 1);
                 }
                 else {
diff --git a/README b/README
index 1b2c1bc..37391ee 100644
--- a/README
+++ b/README
@@ -1,4 +1,15 @@
-Updated for 3.15.0
+Updated for version 3.18.0
+
+Added support for DAP4 filter operations.
+
+For otehr information, see NEWS and ChangeLog
+
+Updated for version 3.17.2
+
+Bug fixes and improved error messages; see NEWS and ChangeLog for 
+details.
+
+Updated for 3.16.0
 
 libdap now supports parallel I/O for certain data write operations,
 mostly those involving larger amounts of data - Marshaller::put_vector
@@ -8,7 +19,7 @@ symbol USE_POSIX_THREADS in the XDSStreamMarshaller classes.
 Added to libdap is the ability to send DAP2 responses in parts, so that
 code that builds large responses from multiple reads can write a part
 that is complete and then return to work on the next part. This is
-especially benficial for aggregations that cross many granules. The new
+especially beneficial for aggregations that cross many granules. The new
 method is Marshaller::put_vector_part().
 
 Added to libdap is a virtual void BaseType::clear_local_data() method
@@ -56,7 +67,7 @@ you write).
 
 For information on the way to make these functions, see:
 http://docs.opendap.org/index.php/Expanded_arguments_for_Constraint_Expressions 
-Note that this version of libdap requries bison 2.4. This is a change so
+Note that this version of libdap requires bison 2.4. This is a change so
 the parsers can use C++ I/O streams and we can eventually drop the FILE*
 interfaces.
 
diff --git a/README.AIS b/README.AIS
new file mode 100644
index 0000000..8cc82a1
--- /dev/null
+++ b/README.AIS
@@ -0,0 +1,106 @@
+Notes for the prototype AIS implementation:
+
+Note that this code was removed from libdap 3.8.x
+
+------------------------------------------------------------------------------
+
+Current for version 3.7.6 (12 March 2007)
+
+How to use the AIS. These notes correspond to the prototype AIS developed in
+March 2003. This version of the AIS works for DAS objects only.
+
+The AIS uses a configuration file which holds the mappings between a primary
+data source (aka a DODS server) and one or more AIS resources. The
+configuration file to use is named in the .dodsrc file using the AIS_DATABASE
+property.
+
+The AIS configuration file is described by src/dap/ais_database.dtd. A short
+file looks like:
+
+    <?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+    <!DOCTYPE ais SYSTEM "http://www.opendap.org/ais/ais_database.dtd">
+
+    <ais xmlns="http://xml.opendap.org/ais">
+
+    <entry>
+    <primary url="http://localhost/dods-test/nph-dods/data/nc/fnoc1.nc"/>
+    <ancillary url="http://localhost/ais/fnoc1.nc.das"/>
+    </entry>
+
+    <entry>
+    <primary url="http://localhost/dods-test/nph-dods/data/nc/fnoc2.nc"/>
+    <ancillary rule="replace" url="ais_testsuite/fnoc2_replace.das"/>
+    </entry>
+
+    </ais>
+
+Each entry must have one <primary> element and may have one or more
+<ancillary> elements. The <ancillary> elements are applied in the order they
+are listed. The 'rule' attribute of <ancillary> determines how each AIS
+resource is combined with the primary resource. By default, attributes in the
+AIS resource are combined so that they overwrite existing attributes. If
+there's no conflict, the new attribute is added. This applies to containers
+as well as single attributes. The replace rule causes the AIS resource
+attributes to completely replace those of the primary resource. If the
+fallback rule is specified, the AIS resource's attributes are used only if
+the primary resource has *no* attributes.
+
+How to use the AIS: 
+
+Keep in mind that this is a prototype and is far, far from
+'feature-complete.'
+
+There are two ways to use the AIS right now. First you can use geturl's new
+-A option. This option tells geturl that when it gets a DAS object, it should
+merge into that object any AIS resources listed for the URL in the current
+AIS database (found in the .dodsrc file).
+
+Second you can program with the AIS. The class AISConnect can be used as a
+replacement for Connect. This class subclasses Connect and adds the capacity
+to use the AIS subsystem I've built. The AIS itself is contained in the
+classes AISMerge, AISDatabaseParser and AISResources.
+
+*****************************************************************************
+
+Here are some notes I made while I wrote the code:
+
+* AISConnect does not implement clones for Connect's deprecated methods.
+  Should it? Maybe it's time to let those go...
+
+* What happens when the same primary (data) source is listed more than once
+  in the database?
+
+* What about primary sources that are regular expressions? Right now lookup
+  is ln(N) where N is the number of entries. Regexps make this linear in N.
+  Bummer. I can use two databases, et c. but it gets messy very fast. So are
+  wild cards important (it doesn't have to be regexps, those are just really
+  easy to implement...)?
+
+* I've changed the meaning of 'fallback' so that it works for a whole group
+  of attributes rather than each individual attribute. My guess is that this
+  will be really unpopular. But it was easy to code and I'm not convinced
+  that fallback resources really make that much sense in practice.
+
+* I think that for client-side AIS stuff, the code should be able to read
+  from a remote XML file to get the database. Not hard to code. But I wonder
+  how useful it would be? It might be cool because a client could get the
+  benefit of a remote server but do all the work locally. That would
+  'distribute the AIS processing/network load.'
+
+* How will we handle multiple AIS databases? I think this could be really
+  important. I like the AIS-in-the-configuration-file less and less, until I
+  think about trying to get people to buy into enveloped URLs...
+
+* Is the database file simple enough for people to write by hand? (and one
+  look and you can see why we're going to need wildcards... imagine 20K
+  URLs).
+
+* I still need to write a bunch more tests.
+
+* I need to hack some code to do the AIS-in-the-URL thing. I figured out how
+  to handle that without doing the entire ex pr parse on the client, at least
+  for the DAS version ... haven't thought about the DDS & DataDDS much.
+
+* I need to code some serious integration tests. Most of the AIS-specific
+  code has unit tests (except for AISConnect, which is barely different from
+  the AISMerge Test unit tests).
diff --git a/Removed_functions.txt b/Removed_functions.txt
new file mode 100644
index 0000000..3c82059
--- /dev/null
+++ b/Removed_functions.txt
@@ -0,0 +1,277 @@
+
+CONTENTS
+
+	INTRODUCTION
+	OSTREAM METHODS
+	CHAR POINTER METHODS
+	PIX METHODS
+	PIX TO ITERATOR EXAMPLES
+	OTHER DEPRECATED METHODS
+	
+---------------------------------------------------------------------------
+
+INTRODUCTION
+
+This file lists methods that were marked as deprecated in previous versions
+of the library and have now been removed. In all cases there are relacement
+methods. The changes documented here correspond to going from the 3.5 to 3.6
+versions of libdap.
+
+For some of the methods, I've listed only the most general version
+since all the more speciifc versions were also removed. For example, if
+BaseType::print_val(...) was removed, so was Int32::print_val, ...
+
+OSTREAM METHODS
+
+virtual void BaseType::print_val(ostream &os, string space = "", 
+			   bool print_decl_p = true);
+			   
+virtual void BaseType::print_decl(ostream &os, string space = "    ",
+			    bool print_semi = true,
+			    bool constraint_info = false,
+			    bool constrained = false);			   
+			    
+virtual void Constructor::print_decl(ostream &os, string space = "    ",
+			    bool print_semi = true,
+			    bool constraint_info = false,
+			    bool constrained = false);
+void DAS::print(ostream &os = cout, bool dereference = false);
+
+void DDS::parse_constraint(const string &constraint, ostream &os,
+			  bool server = true);
+void DDS::parse_constraint(const string &constraint, FILE *out,
+			  bool server = true);
+void DDS::print(ostream &os = cout);
+void DDS::print_constrained(ostream &os = cout);
+
+virtual void DODS_Filter::send_das(ostream &os, DAS &das,
+			  const string &anc_location="",
+                          bool with_mime_headers = true);
+virtual void DODSFilter::send_dds(ostream &os, DDS &dds, bool constrained = false,
+			  const string &anc_location = "",
+                          bool with_mime_headers = true);
+                          
+void Error::print(ostream &os = cout) const;                          
+
+virtual void Sequence::print_one_row(ostream &os, int row, string space,
+			       bool print_row_num = false);
+virtual void Sequence::print_val_by_rows(ostream &os, string space = "",
+				   bool print_decl_p = true,
+				   bool print_row_numners = true);
+virtual void Sequence::print_all_vals(ostream& os, XDR *src, DDS *dds, 
+				string space = "", bool print_decl_p = true);			   
+				
+unsigned int Array::print_array(ostream &os, unsigned int index, 
+			     unsigned int dims, unsigned int shape[]);
+			     
+void AttrTable::simple_print(ostream &os, string pad, Attr_iter i,
+		      bool dereference);
+void AttrTable::print(ostream &os, string pad = "    ", bool dereference = false);
+
+These functions are in the file cgi_util.cc/h:
+
+void set_mime_text(ostream &os, ObjectType type = unknown_type, 
+		   const string &version = "", EncodingType enc = x_plain,
+		   const time_t last_modified = 0);
+void set_mime_html(ostream &os, ObjectType type = unknown_type, 
+		   const string &version = "", EncodingType enc = x_plain,
+		   const time_t last_modified = 0);
+void set_mime_binary(ostream &os, ObjectType type = unknown_type, 
+		     const string &version = "", EncodingType enc = x_plain,
+		     const time_t last_modified = 0);
+void set_mime_error(ostream &os, int code = 404, 
+		    const string &reason = "Dataset not found",
+		    const string &version = "");
+void set_mime_not_modified(ostream &os);
+
+CHAR POINTER METHODS
+
+Methods which provide 'const char *' parameters
+
+There were several methods that provided both const string & and const char * 
+versions. I've removed the 'const char *' versions since string literals are
+automatically converted to string by C++. These methods were added back when
+libdap used GNU's String and Pix classes. In that context a C++ compiler 
+could not tell what to do when a method was called with a string literal and
+had two versions, one which took a String and one which took a Pix. Since the
+library no longer uses either of those classes, it seems foolish to keep those
+methods around. Here's a list of the removed methods:
+
+AttrTable.h:    unsigned int append_attr(const char *name, const char *type,
+AttrTable.h:                         const char *value) throw (Error);
+AttrTable.h:    AttrTable *get_attr_table(const char *name);
+AttrTable.h:    string get_type(const char *name);
+AttrTable.h:    AttrType get_attr_type(const char *name);
+AttrTable.h:    unsigned int get_attr_num(const char *name);
+AttrTable.h:    string get_attr(const char *name, unsigned int i = 0);
+AttrTable.h:    vector<string> *get_attr_vector(const char *name);
+
+DAS.h:    AttrTable *add_table(const char *name, AttrTable *at);
+DDS.h:    BaseType *var(const char *n, btp_stack *s = 0);
+
+PIX METHODS
+
+The file Pix.h has been removed, along with the *IterAdapter.cc/h class files
+
+void Array::add_constraint(Pix p, int start, int stride, int stop);
+Pix Array::first_dim();
+void Array::next_dim(Pix p);
+int Array::dimension_size(Pix p, bool constrained = false);
+int Array::dimension_start(Pix p, bool constrained = false);
+int Array::dimension_stop(Pix p, bool constrained = false);
+int Array::dimension_stride(Pix p, bool constrained = false);
+
+Pix AttrTable::simple_find(const string &target);
+Pix AttrTable::first_attr();
+void AttrTable::next_attr(Pix p);
+AttrTable::entry *AttrTable::attr(Pix p);
+string AttrTable::get_name(Pix p);
+bool AttrTable::is_container(Pix p);
+AttrTable *AttrTable::get_attr_table(Pix p);
+string AttrTable::get_type(Pix p);
+AttrType AttrTable::get_attr_type(Pix p);
+unsigned int AttrTable::get_attr_num(Pix p);
+string AttrTable::get_attr(Pix p, unsigned int i = 0);
+vector<string> *AttrTable::get_attr_vector(Pix p);
+Pix AttrTable::find(const string &target, AttrTable **at);
+
+virtual Pix Constructor::first_var();
+virtual void Constructor::next_var(Pix p);
+virtual BaseType *Constructor::var(Pix p);
+
+Pix DAS::first_var();
+void DAS::next_var(Pix p);
+string DAS::get_name(Pix p);
+AttrTable *DAS::get_table(Pix p);
+
+BaseType *DDS::var(Pix p);
+Pix DDS::first_var();
+void DDS::next_var(Pix p);
+Pix DDS::first_clause();
+void DDS::next_clause(Pix p);
+Clause *DDS::clause(Pix p);
+bool DDS::clause_value(Pix p, const string &dataset);
+
+Pix Grid::first_map_var();
+void Grid::next_map_var(Pix p);
+BaseType *Grid::map_var(Pix p);
+
+Pix Sequence::first_var();
+void Sequence::next_var(Pix p);
+BaseType *Sequence::var(Pix p);
+
+Pix Structure::first_var();
+void Structure::next_var(Pix p);
+BaseType *Structure::var(Pix p);
+
+PIX TO ITERATOR EXAMPLES
+
+Some examples of STL iterator versus Pix code:
+
+From FFGrid.cc:
+    // read maps elements
+    Grid::Map_iter i = map_begin();
+    while (i != map_end())
+        (*i++)->read(dataset);
+#if 0        
+    for (Pix p = first_map_var(); p; next_map_var(p)) {
+	map_var(p)->read(dataset);
+    }
+#endif
+
+From FFArray.cc:
+    int id = 0;
+    long nels = 1;
+    *has_stride = false;
+
+    Array:Dim_iter i = dim_begin();
+    while (i != dim_end()) {
+        start = (long) dimension_start(i, true); 
+        stride = (long) dimension_stride(i, true);
+        stop = (long) dimension_stop(i, true);
+        string dimname = dimension_name(i);
+#if 0
+    for (Pix p = first_dim(); p ; next_dim(p), id++) {
+	start = (long) dimension_start(p, true); 
+	stride = (long) dimension_stride(p, true);
+	stop = (long) dimension_stop(p, true);
+	string dimname = dimension_name(p);
+#endif
+	// Check for empty constraint
+	if(start+stop+stride == 0)
+	    return -1;
+	
+	dim_nms[id]= dimname;
+	//	(void) strcpy(dim_nms[id], dimname.c_str());
+	
+	cor[id]= start;
+	step[id]= stride;
+	edg[id]= ((stop - start)/stride) + 1; // count of elements
+	
+	nels *= edg[id];      // total number of values for variable
+	
+	if (stride != 1)
+	    *has_stride = true;
+
+        ++id;
+        ++i;
+    }
+    return nels;
+
+OTHER DEPRECATED METHODS
+
+Other deprecated methods that have been removed:
+
+Removed from Error
+
+    Error(ErrorCode ec, string msg, ProgramType pt, char *pgm);
+    ProgramType get_program_type() const;
+    const char *get_program() const;
+    void set_program_type(ProgramType pt = undefined_prog_type);
+    void set_program(char *program);
+    void display_message(void *gui = 0) const;
+    string correct_error(void *gui) const;
+    string error_message(string msg = "");
+    ProgramType program_type(ProgramType pt = undefined_prog_type);
+    char *program(char *program = 0);
+    ErrorCode error_code(ErrorCode ec = undefined_error);
+
+Note: Replace display_error() with 'cerr << get_error_message() << endl'.
+Replace error_message() with get_error_message().
+
+Removed from InternalErr
+
+    InternalErr(string msg, ProgramType pt, char *pgm);
+    
+Removed from Connect 
+
+void *Connect::gui();
+bool Connect::request_dds(bool, const string &) throw(Error, InternalErr);
+DDS *Connect::request_data(string expr, bool, bool, const string &) 
+        throw(Error, InternalErr);
+bool Connect::request_das(bool,  const string &) throw(Error, InternalErr);
+DDS *Connect::read_data(FILE *data_source, bool, bool) throw(Error, InternalErr);
+DAS &Connect::das();
+DDS &Connect::dds();
+Error &Connect::error();
+
+Removed from DDS
+
+add_function()
+find_function()
+append_clause()
+functional_expression()
+boolean_expression()
+eval_expression()
+eval_selection()
+eval_function()
+clause_begin()
+clause_end()
+clause_value()
+parse_constraint()
+append_constant()
+send()
+
+Removed from cgi_util.cc
+
+do_data_transfer()
\ No newline at end of file
diff --git a/Sequence.cc b/Sequence.cc
index aa60a2b..21c8a3d 100644
--- a/Sequence.cc
+++ b/Sequence.cc
@@ -32,11 +32,11 @@
 //
 // jhrg 9/14/94
 
+#include "config.h"
+
 //#define DODS_DEBUG
 //#define DODS_DEBUG2
 
-#include "config.h"
-
 #include <algorithm>
 #include <string>
 #include <sstream>
@@ -319,7 +319,7 @@ bool Sequence::is_linear()
 BaseTypeRow *
 Sequence::row_value(size_t row)
 {
-    if (row >= d_values.size()) return 0;
+    if (row >= d_values.size()) return 0;   //nullptr
     return d_values[row];
 }
 
@@ -424,78 +424,20 @@ void Sequence::reset_row_number()
     d_row_number = -1;
 }
 
-#if 0
-// written but not used - this was written so that values loaded from
-// Arrays into a new ('synthesized') sequence by the 'tablar() server
-// function would be properly used during the evaluation of a selection
-// expression. But I forgot that tabular() uses a specialized version of
-// Sequence: TabularSequence and that has it's own version of serialize().
-// To get the returnAs="ascii" to filter values, I also need to specialize
-// the intern_data() method of Sequence. jhrg 3/9/15
-
 /**
- * Protected method to be used when a Sequence has values loaded in from
- * someplace like a function and will never need to use the read() method.
- * This transfers the ith value from the SequenceValues object that holds
- * the complete set of values for the Sequence into the prototype variables
- * (which are scalars) so that evaluation of the selection operation can
- * proceed correctly.
+ * @brief A recursive version of reset_row_number()
  *
- * @note The vector<>.at() method is quite a bit slower than the [] access;
- * refactor this once were done testing.
- *
- * @param row_number Transfer this row's data values. Could use the object's
- * d_row_number field.
+ * @param recur If true, reset the row number of child sequences as well
  */
-void Sequence::load_prototypes_with_values(int row_number)
+void Sequence::reset_row_number(bool recur)
 {
-    vector<BaseType*> *row = d_values.at(row_number);
-
-    // For each of the prototype variables in the Sequence, load it
-    // with a values from the BaseType* vector. The order should match.
-    // Test the type, but assume if that matches, the value is correct
-    // for the variable.
-    int pos = 0;
-    for (Vars_iter i = var_begin(), e = var_end(); i != e; ++i) {
-        if ((*i)->type() != row->at(pos)->var()->type())
-            throw InternalErr(__FILE__, __LINE__, "Expected types to match when loading values for selection expression evaluation.");
-
-        // Ugly...
-        switch ((*i)->type()) {
-        case dods_byte_c:
-            static_cast<Byte*>(*i)->set_value(static_cast<Byte*>(row->at(pos++))->value());
-            break;
-        case dods_int16_c:
-            static_cast<Int16*>(*i)->set_value(static_cast<Int16*>(row->at(pos++))->value());
-            break;
-        case dods_int32_c:
-            static_cast<Int32*>(*i)->set_value(static_cast<Int32*>(row->at(pos++))->value());
-            break;
-        case dods_uint16_c:
-            static_cast<UInt16*>(*i)->set_value(static_cast<UInt16*>(row->at(pos++))->value());
-            break;
-        case dods_uint32_c:
-            static_cast<UInt32*>(*i)->set_value(static_cast<UInt32*>(row->at(pos++))->value());
-            break;
-        case dods_float32_c:
-            static_cast<Float32*>(*i)->set_value(static_cast<Float32*>(row->at(pos++))->value());
-            break;
-        case dods_float64_c:
-            static_cast<Float64*>(*i)->set_value(static_cast<Float64*>(row->at(pos++))->value());
-            break;
-        case dods_str_c:
-            static_cast<Str*>(*i)->set_value(static_cast<Str*>(row->at(pos++))->value());
-            break;
-        case dods_url_c:
-            static_cast<Url*>(*i)->set_value(static_cast<Url*>(row->at(pos++))->value());
-            break;
-        default:
-            throw InternalErr(__FILE__, __LINE__, "Expected a scalar type when loading values for selection expression evaluation.");
-        }
-    }
-}
+    reset_row_number();
 
-#endif
+    if (recur)
+        for (Vars_iter i = var_begin(), e = var_end(); i != e; ++i)
+            if ((*i)->type() == dods_sequence_c)
+                reset_row_number(true);
+}
 
 // Notes:
 // Assume that read() is implemented so that, when reading data for a nested
@@ -551,35 +493,21 @@ void Sequence::load_prototypes_with_values(int row_number)
  */
 bool Sequence::read_row(int row, DDS &dds, ConstraintEvaluator &eval, bool ce_eval)
 {
-    DBG2(cerr << "Entering Sequence::read_row for " << name() << endl);
+    DBG2(cerr << "Entering Sequence::read_row for " << name() << ", row number " << row << ", current row " << d_row_number << endl);
     if (row < d_row_number) throw InternalErr("Trying to back up inside a sequence!");
 
-    DBG2(cerr << "read_row: row number " << row << ", current row " << d_row_number << endl);
     if (row == d_row_number) {
         DBG2(cerr << "Leaving Sequence::read_row for " << name() << endl);
         return false;
     }
 
-    dds.timeout_on();
-
     bool eof = false;  // Start out assuming EOF is false.
     while (!eof && d_row_number < row) {
         if (!read_p()) {
             // jhrg original version from 10/9/13 : eof = (read() == false);
             eof = read();
         }
-#if 0
-        // A change (3/9/15): I've made the is_synthesized property
-        // work so that the prototype variables in the Sequence are loaded
-        // with the scalar values for the ith row so that the eval_selection()
-        // method will function correctly.
-
-        // See note above
 
-        if (d_is_synthesized) {
-            load_prototypes_with_values(d_row_number);
-        }
-#endif
         // Advance the row number if ce_eval is false (we're not supposed to
         // evaluate the selection) or both ce_eval and the selection are
         // true.
@@ -594,8 +522,6 @@ bool Sequence::read_row(int row, DDS &dds, ConstraintEvaluator &eval, bool ce_ev
     // data values inside themselves.
     set_read_p(true);
 
-    dds.timeout_off();
-
     // Return true if we have valid data, false if we've read to the EOF.
     DBG2(cerr << "Leaving Sequence::read_row for " << name() << " with eof: " << eof << endl);
     return !eof; // jhrg 10/10/13 was: eof == 0;
@@ -624,14 +550,14 @@ inline bool Sequence::is_end_of_rows(int i)
  <li>Sending a one-level sequence:
  <pre>
  Dataset {
- Sequence {
- Int x;
- Int y;
- } flat;
+     Sequence {
+         Int x;
+         Int y;
+     } flat;
  } case_1;
  </pre>
 
- Serialize it by reading successive rows and sending all of those that
+ Serialize case_1 by reading successive rows and sending all of those that
  satisfy the CE. Before each row, send a start of instance (SOI) marker.
  Once all rows have been sent, send an End of Sequence (EOS)
  marker.[serialize_leaf].</li>
@@ -639,16 +565,16 @@ inline bool Sequence::is_end_of_rows(int i)
  <li>Sending a nested sequence:
  <pre>
  Dataset {
- Sequence {
- Int t;
- Sequence {
- Int z;
- } inner;
- } outer;
+     Sequence {
+         Int t;
+         Sequence {
+             Int z;
+         } inner;
+     } outer;
  } case_2;
  </pre>
 
- Serialize by reading the first row of outer and storing the values. Do
+ Serialize case_2 by reading the first row of outer and storing the values. Do
  not evaluate the CE [serialize_parent_part_one]. Call serialize() for inner
  and read each row for it, evaluating the CE for each row that is read.
  After the first row of inner is read and satisfies the CE, write out the
@@ -675,8 +601,6 @@ inline bool Sequence::is_end_of_rows(int i)
  */
 bool Sequence::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
-    DBG2(cerr << "Entering Sequence::serialize for " << name() << endl);
-
     // Special case leaf sequences!
     bool status = false;
 
@@ -685,10 +609,6 @@ bool Sequence::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, boo
     else
         status = serialize_parent_part_one(dds, eval, m);
 
-#ifdef CLEAR_LOCAL_DATA
-    clear_local_data();
-#endif
-
     return status;
 }
 
@@ -859,7 +779,7 @@ bool Sequence::serialize_leaf(DDS &dds, ConstraintEvaluator &eval, Marshaller &m
 
  @note Even though each Sequence variable has a \e values field, only the
  top-most Sequence in a hierarchy of Sequences holds values. The field
- accessed by the var_value() method is completely linked object; access
+ accessed by the var_value() method is a completely linked object; access
  the values of nested Sequences using the BaseType objects returned by
  var_value().
 
@@ -878,8 +798,6 @@ void Sequence::intern_data(ConstraintEvaluator &eval, DDS &dds)
     // instances when the intern_data_parent_part_two() code is run.
     sequence_values_stack_t sequence_values_stack;
 
-    DBG2(cerr << "    pushing d_values of " << name() << " (" << &d_values
-            << ") on stack; size: " << sequence_values_stack.size() << endl);
     sequence_values_stack.push(&d_values);
 
     intern_data_private(eval, dds, sequence_values_stack);
@@ -942,13 +860,15 @@ void Sequence::intern_data_parent_part_one(DDS & dds, ConstraintEvaluator & eval
 
     // if the size of the stack is larger than the original size (retrieved
     // above) then pop the top set of d_values from the stack. If it's the
-    // same, then no nested sequences, or possible the last nested sequence,
+    // same, then no nested sequences, or possibly the last nested sequence,
     // were pushed onto the stack, so there is nothing to pop.
     if (sequence_values_stack.size() > orig_stack_size) {
         DBG2(cerr << "    popping d_values (" << sequence_values_stack.top()
                 << ") off stack; size: " << sequence_values_stack.size() << endl);
         sequence_values_stack.pop();
-    } DBG(cerr << "Leaving intern_data_parent_part_one for " << name() << endl);
+    }
+
+    DBG(cerr << "Leaving intern_data_parent_part_one for " << name() << endl);
 }
 
 void Sequence::intern_data_parent_part_two(DDS &dds, ConstraintEvaluator &eval,
@@ -996,7 +916,9 @@ void Sequence::intern_data_parent_part_two(DDS &dds, ConstraintEvaluator &eval,
                 << " to " << values << endl);
         values->push_back(row_data);
         set_unsent_data(false);
-    } DBG(cerr << "Leaving intern_data_parent_part_two for " << name() << endl);
+    }
+
+    DBG(cerr << "Leaving intern_data_parent_part_two for " << name() << endl);
 }
 
 void Sequence::intern_data_for_leaf(DDS &dds, ConstraintEvaluator &eval, sequence_values_stack_t &sequence_values_stack)
@@ -1048,7 +970,9 @@ void Sequence::intern_data_for_leaf(DDS &dds, ConstraintEvaluator &eval, sequenc
         DBG2(cerr << "    popping d_values (" << sequence_values_stack.top()
                 << ") off stack; size: " << sequence_values_stack.size() << endl);
         sequence_values_stack.pop();
-    } DBG(cerr << "Leaving intern_data_for_leaf for " << name() << endl);
+    }
+
+    DBG(cerr << "Leaving intern_data_for_leaf for " << name() << endl);
 }
 
 /** @brief Deserialize (read from the network) the entire Sequence.
@@ -1073,6 +997,8 @@ void Sequence::intern_data_for_leaf(DDS &dds, ConstraintEvaluator &eval, sequenc
  */
 bool Sequence::deserialize(UnMarshaller &um, DDS *dds, bool reuse)
 {
+#if 0
+    // Nathan's tip - this is something that should never happen
     DataDDS *dd = dynamic_cast<DataDDS *>(dds);
     if (!dd) throw InternalErr("Expected argument 'dds' to be a DataDDS!");
 
@@ -1086,7 +1012,7 @@ bool Sequence::deserialize(UnMarshaller &um, DDS *dds, bool reuse)
                 string("The protocl version (") + dd->get_protocol()
                         + ") indicates that this\nis an old server which may not correctly transmit Sequence variables.\nContact the server administrator.");
     }
-
+#endif
     while (true) {
         // Grab the sequence stream's marker.
         unsigned char marker = read_marker(um);
@@ -1318,8 +1244,7 @@ void Sequence::set_leaf_sequence(int lvl)
         // in serialize_leaf() and serialize_parent_part_one()).
         if ((*iter)->type() == dods_sequence_c && (*iter)->send_p()) {
             if (has_child_sequence)
-                throw Error(
-                        "This implementation does not support more than one nested sequence at a level. Contact the server administrator.");
+                throw Error("This implementation does not support more than one nested sequence at a level. Contact the server administrator.");
 
             has_child_sequence = true;
             static_cast<Sequence&>(**iter).set_leaf_sequence(++lvl);
diff --git a/Sequence.h b/Sequence.h
index 4bcdbbc..b4b6701 100644
--- a/Sequence.h
+++ b/Sequence.h
@@ -217,10 +217,6 @@ protected:
 
     virtual void intern_data_parent_part_two(DDS &dds, ConstraintEvaluator &eval,
             sequence_values_stack_t &sequence_values_stack);
-#if 0
-    // See note in Sequence.cc
-    virtual void load_prototypes_with_values(int d_row_number);
-#endif
 
 public:
 
@@ -253,13 +249,15 @@ public:
 
     virtual void intern_data(ConstraintEvaluator &eval, DDS &dds);
     virtual bool serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval = true);
-#if 0
-    virtual bool serialize_no_release(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval = true);
-#endif
     virtual bool deserialize(UnMarshaller &um, DDS *dds, bool reuse = false);
 
     /// Rest the row number counter
     void reset_row_number();
+    // I added a second method instead of a param with a default value because I think
+    // this will result only in an addition to the ABI/API, not a change. 5/16/15 jhrg
+    void reset_row_number(bool recur);
+    void increment_row_number(unsigned int i) { d_row_number += i; }
+    int get_row_number() const { return d_row_number; }
 
     int get_starting_row_number();
 
@@ -270,7 +268,7 @@ public:
     virtual void set_row_number_constraint(int start, int stop, int stride = 1);
 
     /// Get the unsent data property
-    bool get_unsent_data()
+    bool get_unsent_data() const
     {
         return d_unsent_data;
     }
diff --git a/ServerFunctionsList.cc b/ServerFunctionsList.cc
index acc91cc..e92716f 100644
--- a/ServerFunctionsList.cc
+++ b/ServerFunctionsList.cc
@@ -40,9 +40,6 @@
 
 #include "ServerFunctionsList.h"
 
-using std::cerr;
-using std::string;
-using std::endl;
 using namespace std;
 using namespace libdap;
 
diff --git a/SignalHandler.cc b/SignalHandler.cc
index 82fd446..4af52fd 100644
--- a/SignalHandler.cc
+++ b/SignalHandler.cc
@@ -119,7 +119,7 @@ SignalHandler::dispatcher(int signum)
         // Calling _exit() or abort() is not a good thing for a library to be
         // doing. This results in a warning from rpmlint
         default:
-            throw Error("Signal handler operation on an unsupported signal.");
+            throw Error(internal_error, "Signal handler operation on an unsupported signal.");
         }
     }
     else
diff --git a/Str.cc b/Str.cc
index c1dd25a..3918adf 100644
--- a/Str.cc
+++ b/Str.cc
@@ -136,17 +136,17 @@ Str::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
 
     DBG(cerr << "Entering (" << this->name() << " [" << this << "])" << endl);
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_str( d_buf ) ;
 
     DBG(cerr << "Exiting: buf = " << d_buf << endl);
@@ -308,13 +308,32 @@ Str::ops(BaseType *b, int op)
         throw InternalErr(__FILE__, __LINE__, "Argument value was not read!");
     }
 
+    return d4_ops(b, op);
+}
+
+/**
+ * @see BaseType::d4_ops(BaseType *, int)
+ */
+bool Str::d4_ops(BaseType *b, int op)
+{
     switch (b->type()) {
+    case dods_byte_c:
+    case dods_int8_c:
+    case dods_int16_c:
+    case dods_uint16_c:
+    case dods_int32_c:
+    case dods_uint32_c:
+    case dods_int64_c:
+    case dods_uint64_c:
+    case dods_float32_c:
+    case dods_float64_c:
+        throw Error(malformed_expr, "Relational operators can only compare compatible types (string, number).");
     case dods_str_c:
         return StrCmp<string, string>(op, d_buf, static_cast<Str*>(b)->value());
     case dods_url_c:
         return StrCmp<string, string>(op, d_buf, static_cast<Url*>(b)->value());
     default:
-        return false;
+        throw Error(malformed_expr, "Relational operators only work with scalar types.");
     }
 }
 
diff --git a/Str.h b/Str.h
index 9e02f4a..02b2761 100644
--- a/Str.h
+++ b/Str.h
@@ -104,6 +104,7 @@ public:
                            bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Structure.cc b/Structure.cc
index fe4823d..b81c04a 100644
--- a/Structure.cc
+++ b/Structure.cc
@@ -396,8 +396,9 @@ bool
 Structure::serialize(ConstraintEvaluator &eval, DDS &dds,
                      Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
@@ -405,9 +406,9 @@ Structure::serialize(ConstraintEvaluator &eval, DDS &dds,
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
 #endif
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     for (Vars_iter i = d_vars.begin(); i != d_vars.end(); i++) {
         if ((*i)->send_p()) {
 #ifdef CHECKSUMS
diff --git a/UInt16.cc b/UInt16.cc
index c45dde4..4a16b79 100644
--- a/UInt16.cc
+++ b/UInt16.cc
@@ -121,16 +121,17 @@ UInt16::width(bool) const
 bool
 UInt16::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_uint16( d_buf ) ;
 
     return true;
diff --git a/UInt32.cc b/UInt32.cc
index 389dce7..4eaec2c 100644
--- a/UInt32.cc
+++ b/UInt32.cc
@@ -122,16 +122,17 @@ UInt32::width(bool) const
 bool
 UInt32::serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
 {
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_on();
-
+#endif
     if (!read_p())
         read();  // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if USE_LOCAL_TIMEOUT_SCHEME
     dds.timeout_off();
-
+#endif
     m.put_uint32( d_buf ) ;
 
     return true;
diff --git a/UInt64.cc b/UInt64.cc
index 4282088..58aa954 100644
--- a/UInt64.cc
+++ b/UInt64.cc
@@ -58,20 +58,26 @@ namespace libdap {
 
 /** The UInt64 constructor accepts the name of the variable to be created.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Atomic_Types
+
     @param n A string containing the name of the variable to be created.
     variable is created
 */
-UInt64::UInt64(const string &n) : BaseType(n, dods_uint64_c), d_buf(0)
+UInt64::UInt64(const string &n) : BaseType(n, dods_uint64_c, true /*is_dap4*/), d_buf(0)
 {}
 
 /** The UInt64 server-side constructor accepts the name of the variable and
     the dataset name from which this instance is created.
 
+    @note This type is available in DAP4 only.
+    See http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1#Atomic_Types
+
     @param n A string containing the name of the variable to be created.
     @param d A string containing the name of the dataset from which this
     variable is created
 */
-UInt64::UInt64(const string &n, const string &d)  : BaseType(n, d, dods_uint64_c), d_buf(0)
+UInt64::UInt64(const string &n, const string &d)  : BaseType(n, d, dods_uint64_c, true /*is_dap4*/), d_buf(0)
 {}
 
 UInt64::UInt64(const UInt64 &copy_from) : BaseType(copy_from)
@@ -196,6 +202,35 @@ UInt64::ops(BaseType *b, int op)
     }
 }
 
+bool
+UInt64::d4_ops(BaseType *b, int op)
+{
+    switch (b->type()) {
+        case dods_int8_c:
+            return USCmp<dods_uint64, dods_int8>(op, d_buf, static_cast<Int8*>(b)->value());
+        case dods_byte_c:
+            return Cmp<dods_uint64, dods_byte>(op, d_buf, static_cast<Byte*>(b)->value());
+        case dods_int16_c:
+            return USCmp<dods_uint64, dods_int16>(op, d_buf, static_cast<Int16*>(b)->value());
+        case dods_uint16_c:
+            return Cmp<dods_uint64, dods_uint16>(op, d_buf, static_cast<UInt16*>(b)->value());
+        case dods_int32_c:
+            return USCmp<dods_uint64, dods_int32>(op, d_buf, static_cast<Int32*>(b)->value());
+        case dods_uint32_c:
+            return Cmp<dods_uint64, dods_uint32>(op, d_buf, static_cast<UInt32*>(b)->value());
+        case dods_int64_c:
+            return USCmp<dods_uint64, dods_int64>(op, d_buf, static_cast<Int64*>(b)->value());
+        case dods_uint64_c:
+            return Cmp<dods_uint64, dods_uint64>(op, d_buf, static_cast<UInt64*>(b)->value());
+        case dods_float32_c:
+            return USCmp<dods_uint64, dods_float32>(op, d_buf, static_cast<Float32*>(b)->value());
+        case dods_float64_c:
+            return USCmp<dods_uint64, dods_float64>(op, d_buf, static_cast<Float64*>(b)->value());
+        default:
+            return false;
+    }
+}
+
 /** @brief dumps information about this object
  *
  * Displays the pointer value of this instance and information about this
diff --git a/UInt64.h b/UInt64.h
index 4410d88..774657b 100644
--- a/UInt64.h
+++ b/UInt64.h
@@ -83,6 +83,7 @@ public:
     virtual void print_val(ostream &out, string space = "",  bool print_decl_p = true);
 
     virtual bool ops(BaseType *b, int op);
+    virtual bool d4_ops(BaseType *b, int op);
 
     virtual void dump(ostream &strm) const ;
 };
diff --git a/Vector.cc b/Vector.cc
index 7768da5..17234e2 100644
--- a/Vector.cc
+++ b/Vector.cc
@@ -192,6 +192,10 @@ unsigned int Vector::m_create_cardinal_data_buffer_for_type(unsigned int numElts
 
     m_delete_cardinal_data_buffer();
 
+    // Handle this special case where this is an array that holds no values
+    if (numEltsOfType == 0)
+        return 0;
+
     // Actually new up the array with enough bytes to hold numEltsOfType of the actual type.
     unsigned int bytesPerElt = d_proto->width();
     unsigned int bytesNeeded = bytesPerElt * numEltsOfType;
@@ -350,7 +354,32 @@ int Vector::element_count(bool leaves)
  @brief Indicates that the data is ready to send. */
 void Vector::set_send_p(bool state)
 {
-    d_proto->set_send_p(state);
+    if (d_proto) {
+        d_proto->set_send_p(state);
+
+        // because some code may depend on the BaseType*s held in d_compound_buf
+        // behaving as if they are 'ordinary' DAP variables, make sure their send_p
+        // flag is set if they exist. Because space in the vector is allocated
+        // before values (BaseType*s) are added, check for nulls and limit the
+        // iteration to only those elements actually in the object including any
+        // constraints that may have been applied - these are values not declarations.
+        // jhrg 5/13/16
+        switch (d_proto->type()) {
+        case dods_structure_c:
+        case dods_sequence_c:
+        case dods_grid_c:
+            if (d_compound_buf.size() > 0) {
+                for (unsigned long long i = 0; i < (unsigned) d_length; ++i) {
+                    if (d_compound_buf[i]) d_compound_buf[i]->set_send_p(state);
+                }
+            }
+            break;
+
+        default:
+            break;
+        }
+    }
+
     BaseType::set_send_p(state);
 }
 
@@ -364,7 +393,24 @@ void Vector::set_read_p(bool state)
 {
     if (d_proto) {
         d_proto->set_read_p(state);
+
+        // See comment above.
+        switch (d_proto->type()) {
+        case dods_structure_c:
+        case dods_sequence_c:
+        case dods_grid_c:
+            if (d_compound_buf.size() > 0) {
+                for (unsigned long long i = 0; i < (unsigned)d_length; ++i) {
+                    if (d_compound_buf[i]) d_compound_buf[i]->set_read_p(state);
+                }
+            }
+            break;
+
+        default:
+            break;
+        }
     }
+
     BaseType::set_read_p(state);
 }
 
@@ -592,8 +638,11 @@ void Vector::intern_data(ConstraintEvaluator &eval, DDS &dds)
             DBG(cerr << "Vector::intern_data: found ctor" << endl);
             // For these cases, we need to call read() for each of the 'num'
             // elements in the 'd_compound_buf[]' array of BaseType object pointers.
-            if (d_compound_buf.capacity() == 0)
-                throw InternalErr(__FILE__, __LINE__, "The capacity of *this* vector is 0.");
+            //
+            // I changed the test here from '... = 0' to '... < num' to accommodate
+            // the case where the array is zero-length.
+            if (d_compound_buf.capacity() < (unsigned)num)
+                throw InternalErr(__FILE__, __LINE__, "The capacity of this Vector is less than the number of elements.");
 
             for (int i = 0; i < num; ++i)
                 d_compound_buf[i]->intern_data(eval, dds);
@@ -619,18 +668,27 @@ void Vector::intern_data(ConstraintEvaluator &eval, DDS &dds)
 
 bool Vector::serialize(ConstraintEvaluator & eval, DDS & dds, Marshaller &m, bool ce_eval)
 {
+#if 0
     dds.timeout_on();
-
-    if (!read_p())
+#endif
+    // Added to streamline zero-length arrays. Not needed for correct function,
+    // but explicitly handling this case here makes the code easier to follow.
+    // In libdap::Vector::val2buf() there is a test that will catch the zero-length
+    // case as well. We still need to call serialize since it will write size
+    // information that the client depends on. jhrg 2/17/16
+    if (length() == 0)
+        set_read_p(true);
+    else if (!read_p())
         read(); // read() throws Error and InternalErr
 
     if (ce_eval && !eval.eval_selection(dds, dataset()))
         return true;
-
+#if 0
     dds.timeout_off();
-
+#endif
     // length() is not capacity; it must be set explicitly in read().
     int num = length();
+
     bool status = false;
 
     switch (d_proto->type()) {
@@ -741,6 +799,13 @@ bool Vector::deserialize(UnMarshaller &um, DDS * dds, bool reuse)
                         << length() << " " << d_proto->type_name() << endl);
             }
 
+            // Added to accommodate zero-length arrays.
+            // Note that the rest of the cases will just send the size without data
+            // but that these calls trigger error testing in the UnMarshaller code.
+            // jhrg 1/28/16
+            if (num == 0)
+                return true;
+
             if (d_proto->type() == dods_byte_c)
                 um.get_vector((char **) &d_buf, num, *this);
             else
@@ -845,7 +910,7 @@ void Vector::compute_checksum(Crc32 &checksum)
     }
 }
 
-void Vector::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*/)
+void Vector::intern_data(/*Crc32 &checksum, DMR &dmr, ConstraintEvaluator &eval*/)
 {
     if (!read_p())
         read(); // read() throws Error and InternalErr
@@ -869,16 +934,20 @@ void Vector::intern_data(Crc32 &checksum/*, DMR &dmr, ConstraintEvaluator &eval*
 
         case dods_str_c:
         case dods_url_c:
+#if 0
         	compute_checksum(checksum);
+#endif
             break;
 
         case dods_opaque_c:
         case dods_structure_c:
         case dods_sequence_c:
-            assert(d_compound_buf.capacity() != 0);
+            // Modified the assert here from '... != 0' to '... >= length())
+            // to accommodate the case of a zero-length array. jhrg 1/28/16
+            assert(d_compound_buf.capacity() >= (unsigned)length());
 
             for (int i = 0, e = length(); i < e; ++i)
-                d_compound_buf[i]->intern_data(checksum/*, dmr, eval*/);
+                d_compound_buf[i]->intern_data(/*checksum, dmr, eval*/);
             break;
 
         case dods_array_c:      // No Array of Array in DAP4 either...
@@ -900,6 +969,12 @@ Vector::serialize(D4StreamMarshaller &m, DMR &dmr, /*ConstraintEvaluator &eval,*
 #endif
     int64_t num = length();	// The constrained length in elements
 
+    DBG(cerr << __PRETTY_FUNCTION__ << ", num: " << num << endl);
+
+    // Added in case we're trying to serialize a zero-length array. jhrg 1/27/16
+    if (num == 0)
+        return;
+
     switch (d_proto->type()) {
         case dods_byte_c:
         case dods_char_c:
@@ -977,7 +1052,11 @@ Vector::deserialize(D4StreamUnMarshaller &um, DMR &dmr)
             m_create_cardinal_data_buffer_for_type(length());
     }
 
-    DBG(cerr << "Vector::deserialize, " << name() << ", length(): " << length() << endl);
+    DBG(cerr << __FUNCTION__ << name() << ", length(): " << length() << endl);
+
+    // Added in case we're trying to deserialize a zero-length array. jhrg 1/27/16
+    if (length() == 0)
+        return;
 
     switch (d_proto->type()) {
         case dods_byte_c:
@@ -1080,6 +1159,10 @@ unsigned int Vector::val2buf(void *val, bool reuse)
 {
     // Jose Garcia
 
+    // Added for zero-length arrays - support in the handlers. jhrg 1/29/16
+    if (!val && length() == 0)
+        return 0;
+
     // I *think* this method has been mainly designed to be use by read which
     // is implemented in the surrogate library. Passing NULL as a pointer to
     // this method will be an error of the creator of the surrogate library.
diff --git a/Vector.h b/Vector.h
index a21e25b..c20d1f3 100644
--- a/Vector.h
+++ b/Vector.h
@@ -190,7 +190,7 @@ public:
 
     // DAP4
     virtual void compute_checksum(Crc32 &checksum);
-    virtual void intern_data(Crc32 &checksum);
+    virtual void intern_data(/*Crc32 &checksum*/);
     virtual void serialize(D4StreamMarshaller &m, DMR &dmr, bool filter = false);
 #if 0
     virtual void serialize_no_release(D4StreamMarshaller &m, DMR &dmr, bool filter = false);
diff --git a/XDRFileMarshaller.cc b/XDRFileMarshaller.cc
index 2cecdc3..336b3cf 100644
--- a/XDRFileMarshaller.cc
+++ b/XDRFileMarshaller.cc
@@ -122,15 +122,13 @@ void XDRFileMarshaller::put_float64(dods_float64 val)
 void XDRFileMarshaller::put_uint16(dods_uint16 val)
 {
     if (!XDR_UINT16(_sink, &val))
-        throw Error(
-            "Network I/O Error. Could not send uint 16 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not send uint 16 data.");
 }
 
 void XDRFileMarshaller::put_uint32(dods_uint32 val)
 {
     if (!XDR_UINT32(_sink, &val))
-        throw Error(
-            "Network I/O Error. Could not send uint 32 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not send uint 32 data.");
 }
 
 void XDRFileMarshaller::put_str(const string &val)
@@ -138,8 +136,7 @@ void XDRFileMarshaller::put_str(const string &val)
     const char *out_tmp = val.c_str();
 
     if (!xdr_string(_sink, (char **) &out_tmp, max_str_len))
-        throw Error(
-            "Network I/O Error. Could not send string data.\nThis may be due to a bug in libdap, on the server or a\nproblem with the network connection.");
+        throw Error("Network I/O Error. Could not send string data.");
 }
 
 void XDRFileMarshaller::put_url(const string &val)
@@ -150,15 +147,13 @@ void XDRFileMarshaller::put_url(const string &val)
 void XDRFileMarshaller::put_opaque(char *val, unsigned int len)
 {
     if (!xdr_opaque(_sink, val, len))
-        throw Error(
-            "Network I/O Error. Could not send opaque data.\nThis may be due to a bug in libdap, on the server or a\nproblem with the network connection.");
+        throw Error("Network I/O Error. Could not send opaque data.");
 }
 
 void XDRFileMarshaller::put_int(int val)
 {
     if (!xdr_int(_sink, &val))
-        throw Error(
-            "Network I/O Error(1). This may be due to a bug in libdap or a\nproblem with the network connection.");
+        throw Error("Network I/O Error(1).");
 }
 
 void XDRFileMarshaller::put_vector(char *val, int num, Vector &)
@@ -168,8 +163,7 @@ void XDRFileMarshaller::put_vector(char *val, int num, Vector &)
     put_int(num);
 
     if (!xdr_bytes(_sink, (char **) &val, (unsigned int *) &num, DODS_MAX_ARRAY)) {
-        throw Error(
-            "Network I/O Error(2). This may be due to a bug in libdap or a\nproblem with the network connection.");
+        throw Error("Network I/O Error(2).");
     }
 }
 
@@ -182,8 +176,7 @@ void XDRFileMarshaller::put_vector(char *val, int num, int width, Vector &vec)
     BaseType *var = vec.var();
     if (!xdr_array(_sink, (char **) &val, (unsigned int *) &num, DODS_MAX_ARRAY, width,
         XDRUtils::xdr_coder(var->type()))) {
-        throw Error(
-            "Network I/O Error(2). This may be due to a bug in libdap or a\nproblem with the network connection.");
+        throw Error("Network I/O Error(2).");
     }
 }
 
diff --git a/XDRFileUnMarshaller.cc b/XDRFileUnMarshaller.cc
index 1185e70..1bf1bfd 100644
--- a/XDRFileUnMarshaller.cc
+++ b/XDRFileUnMarshaller.cc
@@ -94,49 +94,49 @@ void
 XDRFileUnMarshaller::get_byte( dods_byte &val )
 {
     if( !xdr_char( _source, (char *)&val ) )
-        throw Error("Network I/O Error. Could not read byte data. This may be due to a\nbug in DODS or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not read byte data.");
 }
 
 void
 XDRFileUnMarshaller::get_int16( dods_int16 &val )
 {
     if( !XDR_INT16( _source, &val ) )
-        throw Error("Network I/O Error. Could not read int 16 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not read int 16 data.");
 }
 
 void
 XDRFileUnMarshaller::get_int32( dods_int32 &val )
 {
     if( !XDR_INT32( _source, &val ) )
-        throw Error("Network I/O Error. Could not read int 32 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not read int 32 data.");
 }
 
 void
 XDRFileUnMarshaller::get_float32( dods_float32 &val )
 {
     if( !xdr_float( _source, &val ) )
-        throw Error("Network I/O Error. Could not read float 32 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not read float 32 data.");
 }
 
 void
 XDRFileUnMarshaller::get_float64( dods_float64 &val )
 {
     if( !xdr_double( _source, &val ) )
-        throw Error("Network I/O Error. Could not read float 64 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error.Could not read float 64 data.");
 }
 
 void
 XDRFileUnMarshaller::get_uint16( dods_uint16 &val )
 {
     if( !XDR_UINT16( _source, &val ) )
-        throw Error("Network I/O Error. Could not read uint 16 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not read uint 16 data.");
 }
 
 void
 XDRFileUnMarshaller::get_uint32( dods_uint32 &val )
 {
     if( !XDR_UINT32( _source, &val ) )
-        throw Error("Network I/O Error. Could not read uint 32 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+        throw Error("Network I/O Error. Could not read uint 32 data.");
 }
 
 void
@@ -145,7 +145,7 @@ XDRFileUnMarshaller::get_str( string &val )
     char *in_tmp = NULL ;
 
     if( !xdr_string( _source, &in_tmp, max_str_len ) )
-        throw Error("Network I/O Error. Could not read string data.\nThis may be due to a bug in libdap, on the server or a\nproblem with the network connection.");
+        throw Error("Network I/O Error. Could not read string data.");
 
     val = in_tmp ;
 
@@ -175,7 +175,7 @@ void
 XDRFileUnMarshaller::get_vector( char **val, unsigned int &num, Vector & )
 {
     if( !xdr_bytes( _source, val, &num, DODS_MAX_ARRAY) )
-	throw Error("Network I/O error. Could not read packed array data.\nThis may be due to a bug in libdap or a problem with\nthe network connection.");
+	throw Error("Network I/O error (1).");
 }
 
 void
@@ -186,7 +186,7 @@ XDRFileUnMarshaller::get_vector( char **val, unsigned int &num, int width, Vecto
     if( !xdr_array( _source, val, &num, DODS_MAX_ARRAY, width,
 		    XDRUtils::xdr_coder( var->type() ) ) )
     {
-	throw Error("Network I/O error. Could not read packed array data.\nThis may be due to a bug in libdap or a problem with\nthe network connection.");
+	throw Error("Network I/O error (2).");
     }
 }
 
diff --git a/XDRStreamMarshaller.cc b/XDRStreamMarshaller.cc
index 958ecb8..3da6503 100644
--- a/XDRStreamMarshaller.cc
+++ b/XDRStreamMarshaller.cc
@@ -5,8 +5,9 @@
 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
 // Access Protocol.
 
-// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Copyright (c) 2002,2003,2016 OPeNDAP, Inc.
 // Author: Patrick West <pwest at ucar.edu>
+//         James Gallagher <jgallagher at opendap.org>
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -30,6 +31,7 @@
 // Authors:
 //      pwest       Patrick West <pwest at ucar.edu>
 
+
 #include "config.h"
 
 #ifdef HAVE_PTHREAD_H
@@ -63,7 +65,7 @@ using namespace std;
 namespace libdap {
 
 char *XDRStreamMarshaller::d_buf = 0;
-#define XDR_DAP_BUFF_SIZE 256
+static const int XDR_DAP_BUFF_SIZE=256;
 
 
 /** Build an instance of XDRStreamMarshaller. Bind the C++ stream out to this
@@ -78,7 +80,7 @@ XDRStreamMarshaller::XDRStreamMarshaller(ostream &out) :
     d_out(out), d_partial_put_byte_count(0), tm(0)
 {
     if (!d_buf) d_buf = (char *) malloc(XDR_DAP_BUFF_SIZE);
-    if (!d_buf) throw Error("Failed to allocate memory for data serialization.");
+    if (!d_buf) throw Error(internal_error, "Failed to allocate memory for data serialization.");
 
     xdrmem_create(&d_sink, d_buf, XDR_DAP_BUFF_SIZE, XDR_ENCODE);
 
@@ -89,16 +91,18 @@ XDRStreamMarshaller::XDRStreamMarshaller(ostream &out) :
 
 XDRStreamMarshaller::~XDRStreamMarshaller()
 {
+    // Added this because when USE_POS... is not defined, 'tm' has no
+    // type, which the compiler complains about.
+#ifdef USE_POSIX_THREADS
     delete tm;
-
+#endif
     xdr_destroy(&d_sink);
 }
 
 void XDRStreamMarshaller::put_byte(dods_byte val)
 {
      if (!xdr_setpos(&d_sink, 0))
-        throw Error(
-            "Network I/O Error. Could not send byte data - unable to set stream position.");
+        throw Error("Network I/O Error. Could not send byte data - unable to set stream position.");
 
     if (!xdr_char(&d_sink, (char *) &val))
         throw Error(
@@ -212,7 +216,7 @@ void XDRStreamMarshaller::put_uint16(dods_uint16 val)
 
     if (!XDR_UINT16(&d_sink, &val))
         throw Error(
-            "Network I/O Error. Could not send uint 16 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+            "Network I/O Error. Could not send uint 16 data.");
 
     unsigned int bytes_written = xdr_getpos(&d_sink);
     if (!bytes_written)
@@ -234,7 +238,7 @@ void XDRStreamMarshaller::put_uint32(dods_uint32 val)
 
     if (!XDR_UINT32(&d_sink, &val))
         throw Error(
-            "Network I/O Error. Could not send uint 32 data. This may be due to a\nbug in libdap or a problem with the network connection.");
+            "Network I/O Error. Could not send uint 32 data.");
 
     unsigned int bytes_written = xdr_getpos(&d_sink);
     if (!bytes_written)
@@ -420,14 +424,14 @@ void XDRStreamMarshaller::put_vector(char *val, int num, Vector &)
 #else
         d_out.write(byte_buf, bytes_written);
         xdr_destroy(&byte_sink);
-        delete byte_buf;
+        delete [] byte_buf;
 #endif
 
     }
     catch (...) {
         DBG(cerr << "Caught an exception in put_vector_thread" << endl);
         xdr_destroy(&byte_sink);
-        delete byte_buf;
+        delete [] byte_buf;
         throw;
     }
 }
@@ -445,11 +449,14 @@ void XDRStreamMarshaller::put_vector(char *val, int num, Vector &)
  */
 void XDRStreamMarshaller::put_vector(char *val, unsigned int num, int width, Type type)
 {
-    if (!val) throw InternalErr(__FILE__, __LINE__, "Buffer pointer is not set.");
+    assert(val || num == 0);
 
     // write the number of array members being written, then set the position back to 0
     put_int(num);
 
+    if (num == 0)
+        return;
+
     int use_width = width;
     if (use_width < 4) use_width = 4;
 
@@ -485,12 +492,12 @@ void XDRStreamMarshaller::put_vector(char *val, unsigned int num, int width, Typ
 #else
         d_out.write(vec_buf, bytes_written);
         xdr_destroy(&vec_sink);
-        delete vec_buf;
+        delete [] vec_buf;
 #endif
     }
     catch (...) {
         xdr_destroy(&vec_sink);
-        delete vec_buf;
+        delete [] vec_buf;
         throw;
     }
 }
@@ -546,12 +553,12 @@ void XDRStreamMarshaller::put_vector_part(char *val, unsigned int num, int width
             d_partial_put_byte_count += num;
 
             xdr_destroy(&byte_sink);
-            delete byte_buf;
+            delete [] byte_buf;
 #endif
         }
         catch (...) {
             xdr_destroy(&byte_sink);
-            delete byte_buf;
+            delete [] byte_buf;
             throw;
         }
     }
@@ -597,12 +604,12 @@ void XDRStreamMarshaller::put_vector_part(char *val, unsigned int num, int width
             d_partial_put_byte_count += (size - 4);
 
             xdr_destroy(&vec_sink);
-            delete vec_buf;
+            delete [] vec_buf;
 #endif
         }
         catch (...) {
             xdr_destroy(&vec_sink);
-            delete vec_buf;
+            delete [] vec_buf;
             throw;
         }
     }
diff --git a/XDRStreamMarshaller.h b/XDRStreamMarshaller.h
index ea7998b..b3a8cd4 100644
--- a/XDRStreamMarshaller.h
+++ b/XDRStreamMarshaller.h
@@ -68,7 +68,6 @@ private:
     void put_vector(char *val, unsigned int num, int width, Type type);
 
     friend class MarshallerTest;
-    friend class MarshallerThread;
 
 public:
     XDRStreamMarshaller(ostream &out); //, bool checksum = false, bool write_data = true) ;
diff --git a/XDRStreamUnMarshaller.cc b/XDRStreamUnMarshaller.cc
index 7e94e64..027ccc0 100644
--- a/XDRStreamUnMarshaller.cc
+++ b/XDRStreamUnMarshaller.cc
@@ -56,7 +56,7 @@ XDRStreamUnMarshaller::XDRStreamUnMarshaller(istream &in) : /*&d_source( 0 ),*/
     if (!d_buf)
         d_buf = (char *) malloc(XDR_DAP_BUFF_SIZE);
     if (!d_buf)
-        throw Error("Failed to allocate memory for data serialization.");
+        throw Error(internal_error, "Failed to allocate memory for data serialization.");
 
     //&d_source = new XDR;
     xdrmem_create(&d_source, d_buf, XDR_DAP_BUFF_SIZE, XDR_DECODE);
@@ -102,7 +102,9 @@ void XDRStreamUnMarshaller::get_byte(dods_byte &val)
         }
     }
 
-    DBG2( std::cerr << "_in.gcount(): " << d_in.gcount() << std::endl ); DBG2( std::cerr << "_in.tellg(): " << d_in.tellg() << std::endl ); DBG2( std::cerr << "_buf[0]: " << hex << d_buf[0] << "; _buf[1]: " << d_buf[1]
+    DBG2( std::cerr << "_in.gcount(): " << d_in.gcount() << std::endl );
+    DBG2( std::cerr << "_in.tellg(): " << d_in.tellg() << std::endl );
+    DBG2( std::cerr << "_buf[0]: " << hex << d_buf[0] << "; _buf[1]: " << d_buf[1]
             << "; _buf[2]: " << d_buf[2] << "; _buf[3]: " << d_buf[3]
             << dec << std::endl );
 
diff --git a/XMLWriter.cc b/XMLWriter.cc
index b2585a9..be1c533 100644
--- a/XMLWriter.cc
+++ b/XMLWriter.cc
@@ -30,12 +30,11 @@
 
 #include "config.h"
 
-#include "XMLWriter.h"
-
 #include <libxml/encoding.h>
 #include <libxml/xmlwriter.h>
 
-#include <InternalErr.h>
+#include "XMLWriter.h"
+#include "InternalErr.h"
 
 const char *ENCODING = "ISO-8859-1";
 const int XML_BUF_SIZE = 2000000;
@@ -117,11 +116,6 @@ const char *XMLWriter::get_doc() {
 
     if (!d_doc_buf->content)
         throw InternalErr(__FILE__, __LINE__, "Error retrieving response document as string");
-#if 0
-    // This is not needed when the TextWriter is freed before getting buffer content.
-    if (xmlTextWriterFlush(d_writer) < 0)
-        throw InternalErr(__FILE__, __LINE__, "Error flushing the xml writer buffer");
-#endif
 
     return (const char *)d_doc_buf->content;
 }
@@ -141,11 +135,6 @@ unsigned int XMLWriter::get_doc_size() {
 
     if (!d_doc_buf->content)
         throw InternalErr(__FILE__, __LINE__, "Error retrieving response document as string");
-#if 0
-    // This is not needed when the TextWriter is freed before getting buffer content.
-    if (xmlTextWriterFlush(d_writer) < 0)
-        throw InternalErr(__FILE__, __LINE__, "Error flushing the xml writer buffer");
-#endif
 
     // how much of the buffer is in use?
     return d_doc_buf->use;
diff --git a/XMLWriter.h b/XMLWriter.h
index 4c80cca..8fde264 100644
--- a/XMLWriter.h
+++ b/XMLWriter.h
@@ -30,7 +30,6 @@
 #ifndef XMLWRITER_H_
 #define XMLWRITER_H_
 
-#include <libxml/encoding.h>
 #include <libxml/xmlwriter.h>
 
 #include <string>
@@ -53,7 +52,7 @@ public:
     XMLWriter(const std::string &pad = "    ");
     virtual ~XMLWriter();
 
-    xmlTextWriterPtr get_writer() { return d_writer; }
+    xmlTextWriterPtr get_writer() const { return d_writer; }
     const char *get_doc();
     unsigned int get_doc_size();
 };
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index 931ce08..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,1226 +0,0 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf.  It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.14.1], [],
-      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too.  Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory.  The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run.  This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-#    fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-#    fails if $ac_aux_dir is absolute,
-#    fails when called from a subdirectory in a VPATH build with
-#          a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
-#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-#   MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH.  The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL                                            -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
-  $1_TRUE=
-  $1_FALSE='#'
-else
-  $1_TRUE='#'
-  $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
-  AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery.  Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
-      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
-      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
-      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
-      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                    [depcc="$$1"   am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
-               [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_$1_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
-  fi
-  am__universal=false
-  m4_case([$1], [CC],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac],
-    [CXX],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac])
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_$1_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
-  [--enable-dependency-tracking],
-  [do not reject slow dependency extractors])
-AS_HELP_STRING(
-  [--disable-dependency-tracking],
-  [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-  am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking.              -*- Autoconf -*-
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
-  # Older Autoconf quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
-     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake.                             -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much.  Some checks are only needed if
-# your package does certain things.  But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out.  PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition.  After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names.  We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
-             [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
-  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
-  [ok:ok],,
-  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-			     [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES([CC])],
-		  [m4_define([AC_PROG_CC],
-			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES([CXX])],
-		  [m4_define([AC_PROG_CXX],
-			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES([OBJC])],
-		  [m4_define([AC_PROG_OBJC],
-			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
-		  [_AM_DEPENDENCIES([OBJCXX])],
-		  [m4_define([AC_PROG_OBJCXX],
-			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
-  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake at gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
-
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
-    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
-  fi
-fi])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated.  The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot.  For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Copyright (C) 1998-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_LEX
-# -----------
-# Autoconf leaves LEX=: if lex or flex can't be found.  Change that to a
-# "missing" invocation, for better error output.
-AC_DEFUN([AM_PROG_LEX],
-[AC_PREREQ([2.50])dnl
-AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
-AC_REQUIRE([AC_PROG_LEX])dnl
-if test "$LEX" = :; then
-  LEX=${am_missing_run}flex
-fi])
-
-# Check to see how 'make' treats includes.	            -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
-  am_missing_run="$MISSING "
-else
-  am_missing_run=
-  AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling.                     -*- Autoconf -*-
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME.  Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
-  [whether $CC understands -c and -o together],
-  [am_cv_prog_cc_c_o],
-  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
-  # Make sure it works both with $CC and with simple cc.
-  # Following AC_PROG_CC_C_O, we do the test twice because some
-  # compilers refuse to overwrite an existing .o file with -o,
-  # though they will create one.
-  am_cv_prog_cc_c_o=yes
-  for am_i in 1 2; do
-    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
-         && test -f conftest2.$ac_objext; then
-      : OK
-    else
-      am_cv_prog_cc_c_o=no
-      break
-    fi
-  done
-  rm -f core conftest*
-  unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
-   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane.    -*- Autoconf -*-
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[[\\\"\#\$\&\'\`$am_lf]]*)
-    AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
-  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   am_has_slept=no
-   for am_try in 1 2; do
-     echo "timestamp, slept: $am_has_slept" > conftest.file
-     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-     if test "$[*]" = "X"; then
-	# -L didn't work.
-	set X `ls -t "$srcdir/configure" conftest.file`
-     fi
-     if test "$[*]" != "X $srcdir/configure conftest.file" \
-	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-	# If neither matched, then we have a broken ls.  This can happen
-	# if, for instance, CONFIG_SHELL is bash and it inherits a
-	# broken ls alias from the environment.  This has actually
-	# happened.  Such a system could not be considered "sane".
-	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment])
-     fi
-     if test "$[2]" = conftest.file || test $am_try -eq 2; then
-       break
-     fi
-     # Just in case.
-     sleep 1
-     am_has_slept=yes
-   done
-   test "$[2]" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
-  am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
-  [AC_MSG_CHECKING([that generated files are newer than configure])
-   if test -n "$am_sleep_pid"; then
-     # Hide warnings about reused PIDs.
-     wait $am_sleep_pid 2>/dev/null
-   fi
-   AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
-  [--enable-silent-rules],
-  [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
-  [--disable-silent-rules],
-  [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
-   [am_cv_make_support_nested_variables],
-   [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-	@$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using '$V' instead of '$(V)' breaks IRIX make.
-  AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries.  This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip".  However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
-  AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball.                            -*- Autoconf -*-
-
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-#     tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-#     $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
-  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
-  [m4_case([$1],
-    [ustar],
-     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
-      # There is notably a 21 bits limit for the UID and the GID.  In fact,
-      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
-      # and bug#13588).
-      am_max_uid=2097151 # 2^21 - 1
-      am_max_gid=$am_max_uid
-      # The $UID and $GID variables are not portable, so we need to resort
-      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
-      # below are definitely unexpected, so allow the users to see them
-      # (that is, avoid stderr redirection).
-      am_uid=`id -u || echo unknown`
-      am_gid=`id -g || echo unknown`
-      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
-      if test $am_uid -le $am_max_uid; then
-         AC_MSG_RESULT([yes])
-      else
-         AC_MSG_RESULT([no])
-         _am_tools=none
-      fi
-      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
-      if test $am_gid -le $am_max_gid; then
-         AC_MSG_RESULT([yes])
-      else
-        AC_MSG_RESULT([no])
-        _am_tools=none
-      fi],
-
-  [pax],
-    [],
-
-  [m4_fatal([Unknown tar format])])
-
-  AC_MSG_CHECKING([how to create a $1 tar archive])
-
-  # Go ahead even if we have the value already cached.  We do so because we
-  # need to set the values for the 'am__tar' and 'am__untar' variables.
-  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
-  for _am_tool in $_am_tools; do
-    case $_am_tool in
-    gnutar)
-      for _am_tar in tar gnutar gtar; do
-        AM_RUN_LOG([$_am_tar --version]) && break
-      done
-      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-      am__untar="$_am_tar -xf -"
-      ;;
-    plaintar)
-      # Must skip GNU tar: if it does not support --format= it doesn't create
-      # ustar tarball either.
-      (tar --version) >/dev/null 2>&1 && continue
-      am__tar='tar chf - "$$tardir"'
-      am__tar_='tar chf - "$tardir"'
-      am__untar='tar xf -'
-      ;;
-    pax)
-      am__tar='pax -L -x $1 -w "$$tardir"'
-      am__tar_='pax -L -x $1 -w "$tardir"'
-      am__untar='pax -r'
-      ;;
-    cpio)
-      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-      am__untar='cpio -i -H $1 -d'
-      ;;
-    none)
-      am__tar=false
-      am__tar_=false
-      am__untar=false
-      ;;
-    esac
-
-    # If the value was cached, stop now.  We just wanted to have am__tar
-    # and am__untar set.
-    test -n "${am_cv_prog_tar_$1}" && break
-
-    # tar/untar a dummy directory, and stop if the command works.
-    rm -rf conftest.dir
-    mkdir conftest.dir
-    echo GrepMe > conftest.dir/file
-    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-    rm -rf conftest.dir
-    if test -s conftest.tar; then
-      AM_RUN_LOG([$am__untar <conftest.tar])
-      AM_RUN_LOG([cat conftest.dir/file])
-      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-    fi
-  done
-  rm -rf conftest.dir
-
-  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([gl/m4/00gnulib.m4])
-m4_include([gl/m4/absolute-header.m4])
-m4_include([gl/m4/alloca.m4])
-m4_include([gl/m4/btowc.m4])
-m4_include([gl/m4/byteswap.m4])
-m4_include([gl/m4/codeset.m4])
-m4_include([gl/m4/configmake.m4])
-m4_include([gl/m4/eealloc.m4])
-m4_include([gl/m4/extensions.m4])
-m4_include([gl/m4/extern-inline.m4])
-m4_include([gl/m4/fcntl-o.m4])
-m4_include([gl/m4/glibc21.m4])
-m4_include([gl/m4/gnulib-common.m4])
-m4_include([gl/m4/gnulib-comp.m4])
-m4_include([gl/m4/gnulib-tool.m4])
-m4_include([gl/m4/include_next.m4])
-m4_include([gl/m4/langinfo_h.m4])
-m4_include([gl/m4/lib-ld.m4])
-m4_include([gl/m4/lib-link.m4])
-m4_include([gl/m4/lib-prefix.m4])
-m4_include([gl/m4/localcharset.m4])
-m4_include([gl/m4/locale-fr.m4])
-m4_include([gl/m4/locale-ja.m4])
-m4_include([gl/m4/locale-zh.m4])
-m4_include([gl/m4/locale_h.m4])
-m4_include([gl/m4/localeconv.m4])
-m4_include([gl/m4/lock.m4])
-m4_include([gl/m4/longlong.m4])
-m4_include([gl/m4/mbrtowc.m4])
-m4_include([gl/m4/mbsinit.m4])
-m4_include([gl/m4/mbstate_t.m4])
-m4_include([gl/m4/mbtowc.m4])
-m4_include([gl/m4/multiarch.m4])
-m4_include([gl/m4/nl_langinfo.m4])
-m4_include([gl/m4/off_t.m4])
-m4_include([gl/m4/regex.m4])
-m4_include([gl/m4/ssize_t.m4])
-m4_include([gl/m4/stdbool.m4])
-m4_include([gl/m4/stddef_h.m4])
-m4_include([gl/m4/stdint.m4])
-m4_include([gl/m4/stdlib_h.m4])
-m4_include([gl/m4/sys_types_h.m4])
-m4_include([gl/m4/threadlib.m4])
-m4_include([gl/m4/unistd_h.m4])
-m4_include([gl/m4/warn-on-use.m4])
-m4_include([gl/m4/wchar_h.m4])
-m4_include([gl/m4/wchar_t.m4])
-m4_include([gl/m4/wcrtomb.m4])
-m4_include([gl/m4/wctype_h.m4])
-m4_include([gl/m4/wint_t.m4])
-m4_include([conf/acinclude.m4])
-m4_include([conf/cppunit.m4])
-m4_include([conf/gcov_valgrind.m4])
-m4_include([conf/libtool.m4])
-m4_include([conf/ltoptions.m4])
-m4_include([conf/ltsugar.m4])
-m4_include([conf/ltversion.m4])
-m4_include([conf/lt~obsolete.m4])
-m4_include([conf/pkg.m4])
diff --git a/build-deb-pkg.sh b/build-deb-pkg.sh
new file mode 100755
index 0000000..3d2f4e3
--- /dev/null
+++ b/build-deb-pkg.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# Build a debian package.
+# 
+# This is not a 'real' debian package build - that will take more work.
+# See https://www.debian.org/doc/manuals/maint-guide/dreq.en.html for more
+# info. The initent of this script is to get a libdap.deb fileso that we
+# can use apt to install a binary libdap during the install phase of the
+# BES travis-ci build.
+
+package=libdap
+
+version=`awk -f get-version.awk < DEBIAN/control`
+
+deb_dir=`pwd`/${package}_${version}
+
+# First, make the destination directory
+
+mkdir $deb_dir
+
+# copy the control file
+
+cp -r DEBIAN $deb_dir
+
+# run configure so that 'make install' will use the correct names
+# within 'deb_dir'
+
+./configure --prefix=$deb_dir/usr --exec-prefix=$deb_dir/usr \
+    --sysconfdir=$deb_dir/etc
+
+# build and install; assume the this is only being run for a build
+# that's know to work
+
+make -j9 install
+
+# hackery: edit the dap-config script so that the $deb_dir prefix is
+# removed from the paths returned by --cflags and --libs
+sed "s at prefix=$deb_dir/usr at prefix=/usr at g" < $deb_dir/usr/bin/dap-config \
+    > $deb_dir/usr/bin/dap-config.tmp
+
+mv $deb_dir/usr/bin/dap-config.tmp $deb_dir/usr/bin/dap-config
+
+# now, the debian magic
+
+dpkg-deb --build $deb_dir
diff --git a/ce_expr.lex b/ce_expr.lex
index 9742648..0a6a219 100644
--- a/ce_expr.lex
+++ b/ce_expr.lex
@@ -58,7 +58,7 @@
 
 #define YY_DECL int ce_exprlex YY_PROTO(( void ))
 #define YY_FATAL_ERROR(msg) {\
-    throw(Error(string("Error scanning constraint expression text: ") + string(msg))); \
+    throw(libdap::Error(malformed_expr, std::string("Error scanning constraint expression text: ") + std::string(msg))); \
     yy_fatal_error(msg); /* see das.lex */ \
 }
 
diff --git a/ce_expr.tab.cc b/ce_expr.tab.cc
deleted file mode 100644
index f7b1731..0000000
--- a/ce_expr.tab.cc
+++ /dev/null
@@ -1,2994 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "3.0.1"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-
-/* Substitute the variable and function names.  */
-#define yyparse         ce_exprparse
-#define yylex           ce_exprlex
-#define yyerror         ce_exprerror
-#define yydebug         ce_exprdebug
-#define yynerrs         ce_exprnerrs
-
-#define yylval          ce_exprlval
-#define yychar          ce_exprchar
-
-/* Copy the first part of user declarations.  */
-
-#line 75 "ce_expr.tab.cc" /* yacc.c:339  */
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
-   by #include "ce_expr.tab.hh".  */
-#ifndef YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED
-# define YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int ce_exprdebug;
-#endif
-/* "%code requires" blocks.  */
-#line 41 "ce_expr.yy" /* yacc.c:355  */
-
-
-#include "config.h"
-
-#include <cassert>
-#include <cstdlib>
-#include <cstring>
-
-#include <iostream>
-#include <sstream>
-#include <iterator>
-#include <string>
-#include <stack>
-
-//#define DODS_DEBUG
-
-#include "debug.h"
-#include "escaping.h"
-
-#include "DDS.h"
-#include "ConstraintEvaluator.h"
-
-#include "BaseType.h"
-
-#include "Byte.h"
-#include "Int16.h"
-#include "UInt16.h"
-#include "Int32.h"
-#include "UInt32.h"
-#include "Float32.h"
-#include "Float64.h"
-#include "Str.h"
-#include "Url.h"
-#include "Array.h"
-#include "Structure.h"
-#include "Sequence.h"
-#include "Grid.h"
-
-#include "Error.h"
-
-#include "util.h"
-#include "parser.h"
-#include "ce_parser.h"
-#include "expr.h"
-#include "RValue.h"
-
-using std::cerr;
-using std::endl;
-using namespace libdap ;
-
-#define EVALUATOR(arg) (static_cast<ce_parser_arg*>(arg)->get_eval())
-#define DDS(arg) (static_cast<ce_parser_arg*>(arg)->get_dds())
-
-// #define YYPARSE_PARAM arg
-
-int ce_exprlex(void);		/* the scanner; see expr.lex */
-
-void ce_exprerror(ce_parser_arg *arg, const string &s); 
-void ce_exprerror(ce_parser_arg *arg, const string &s, const string &s2);
-void no_such_func(ce_parser_arg *arg, const string &name);
-void no_such_ident(ce_parser_arg *arg, const string &name, const string &word);
-
-int_list *make_array_index(value &i1, value &i2, value &i3);
-int_list *make_array_index(value &i1, value &i2);
-int_list *make_array_index(value &i1);
-int_list_list *make_array_indices(int_list *index);
-int_list_list *append_array_index(int_list_list *indices, int_list *index);
-
-void delete_array_indices(int_list_list *indices);
-bool bracket_projection(DDS &table, const char *name, int_list_list *indices);
-
-void process_array_indices(BaseType *variable, int_list_list *indices); 
-void process_grid_indices(BaseType *variable, int_list_list *indices); 
-void process_sequence_indices(BaseType *variable, int_list_list *indices);
-
-/* Replace these with method calls. jhrg 8/31/06 */
-bool is_array_t(BaseType *variable);
-bool is_grid_t(BaseType *variable);
-bool is_sequence_t(BaseType *variable);
-
-BaseType *make_variable(ConstraintEvaluator &eval, const value &val);
-bool_func get_function(const ConstraintEvaluator &eval, const char *name);
-btp_func get_btp_function(const ConstraintEvaluator &eval, const char *name);
-proj_func get_proj_function(const ConstraintEvaluator &eval, const char *name);
-
-template<class arg_list, class arg_type>
-arg_list make_fast_arg_list(unsigned long vector_size_hint, arg_type arg_value);
-
-template<class arg_list, class arg_type>
-arg_list make_fast_arg_list(arg_list int_values, arg_type arg_value);
-
-template<class t, class T>
-rvalue *build_constant_array(vector<t> *values, DDS *dds);
-
-
-#line 201 "ce_expr.tab.cc" /* yacc.c:355  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_STR = 258,
-    SCAN_WORD = 259,
-    SCAN_EQUAL = 260,
-    SCAN_NOT_EQUAL = 261,
-    SCAN_GREATER = 262,
-    SCAN_GREATER_EQL = 263,
-    SCAN_LESS = 264,
-    SCAN_LESS_EQL = 265,
-    SCAN_REGEXP = 266,
-    SCAN_STAR = 267,
-    SCAN_HASH_BYTE = 268,
-    SCAN_HASH_INT16 = 269,
-    SCAN_HASH_UINT16 = 270,
-    SCAN_HASH_INT32 = 271,
-    SCAN_HASH_UINT32 = 272,
-    SCAN_HASH_FLOAT32 = 273,
-    SCAN_HASH_FLOAT64 = 274
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 145 "ce_expr.yy" /* yacc.c:355  */
-
-    bool boolean;
-    int op;
-    char id[ID_MAX];
-    
-    libdap::dods_byte byte_value;
-    libdap::dods_int16 int16_value;
-    libdap::dods_uint16 uint16_value;
-    libdap::dods_int32 int32_value;
-    libdap::dods_uint32 uint32_value;
-    libdap::dods_float32 float32_value;
-    libdap::dods_float64 float64_value;
-    
-    libdap::byte_arg_list byte_values;
-    libdap::int16_arg_list int16_values;
-    libdap::uint16_arg_list uint16_values;
-    libdap::int32_arg_list int32_values;
-    libdap::uint32_arg_list uint32_values;
-    libdap::float32_arg_list float32_values;
-    libdap::float64_arg_list float64_values;
-    
-    libdap::value val;               // value is defined in expr.h
-
-    libdap::bool_func b_func;
-    libdap::btp_func bt_func;
-
-    libdap::int_list *int_l_ptr;
-    libdap::int_list_list *int_ll_ptr;
-    
-    libdap::rvalue *rval_ptr;
-    libdap::rvalue_list *r_val_l_ptr;
-
-#line 266 "ce_expr.tab.cc" /* yacc.c:355  */
-};
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE ce_exprlval;
-
-int ce_exprparse (ce_parser_arg *arg);
-
-#endif /* !YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED  */
-
-/* Copy the second part of user declarations.  */
-
-#line 281 "ce_expr.tab.cc" /* yacc.c:358  */
-/* Unqualified %code blocks.  */
-#line 232 "ce_expr.yy" /* yacc.c:359  */
-
-/* This global is used by the rule 'arg_length_hint' so that the hint can 
-   be used during the paraent rule's parse. See fast_int32_arg_list. */
-unsigned long arg_length_hint_value = 0;
-
-#line 289 "ce_expr.tab.cc" /* yacc.c:359  */
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                 \
-    while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
-#  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYSIZE_T yyi;                         \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
-      while (0)
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  28
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   167
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  29
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  36
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  80
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  149
-
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   274
-
-#define YYTRANSLATE(YYX)                                                \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    20,     2,
-      22,    24,     2,     2,    21,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    23,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,    27,     2,    28,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    25,     2,    26,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19
-};
-
-#if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
-{
-       0,   241,   241,   247,   249,   249,   253,   259,   260,   266,
-     278,   282,   286,   310,   316,   322,   328,   334,   340,   346,
-     355,   366,   370,   377,   384,   388,   395,   402,   406,   413,
-     420,   424,   431,   438,   442,   449,   456,   460,   467,   474,
-     478,   485,   492,   514,   515,   521,   530,   541,   548,   562,
-     563,   573,   577,   583,   590,   599,   604,   609,   647,   671,
-     684,   690,   699,   705,   716,   721,   735,   739,   753,   762,
-     769,   781,   792,   807,   823,   824,   825,   826,   827,   828,
-     829
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 0
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "SCAN_STR", "SCAN_WORD", "SCAN_EQUAL",
-  "SCAN_NOT_EQUAL", "SCAN_GREATER", "SCAN_GREATER_EQL", "SCAN_LESS",
-  "SCAN_LESS_EQL", "SCAN_REGEXP", "SCAN_STAR", "SCAN_HASH_BYTE",
-  "SCAN_HASH_INT16", "SCAN_HASH_UINT16", "SCAN_HASH_INT32",
-  "SCAN_HASH_UINT32", "SCAN_HASH_FLOAT32", "SCAN_HASH_FLOAT64", "'&'",
-  "','", "'('", "':'", "')'", "'{'", "'}'", "'['", "']'", "$accept",
-  "constraint_expr", "$@1", "projection", "proj_clause",
-  "array_const_special_form", "arg_length_hint", "fast_byte_arg_list",
-  "fast_byte_arg", "fast_int16_arg_list", "fast_int16_arg",
-  "fast_uint16_arg_list", "fast_uint16_arg", "fast_int32_arg_list",
-  "fast_int32_arg", "fast_uint32_arg_list", "fast_uint32_arg",
-  "fast_float32_arg_list", "fast_float32_arg", "fast_float64_arg_list",
-  "fast_float64_arg", "proj_function", "selection", "clause",
-  "bool_function", "r_value", "r_value_list", "arg_list", "id_or_const",
-  "array_projection_rvalue", "array_projection", "array_proj_clause",
-  "name", "array_indices", "array_index", "rel_op", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-      38,    44,    40,    58,    41,   123,   125,    91,    93
-};
-# endif
-
-#define YYPACT_NINF -57
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-57)))
-
-#define YYTABLE_NINF -66
-
-#define yytable_value_is_error(Yytable_value) \
-  0
-
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int16 yypact[] =
-{
-      49,   -57,    -5,    15,    24,    25,    34,    36,    64,   103,
-     -57,    28,    12,    60,   -57,   -57,   -57,     6,    -2,    57,
-      22,    22,    22,    22,    22,    22,    22,    74,   -57,    74,
-      81,   -57,    -2,     9,    -2,   -57,    21,   -15,   -57,   -57,
-     101,   102,   -57,   -57,    -2,   -57,   104,   105,   106,   107,
-     108,   109,   110,   -11,   114,   -57,   -57,    96,   114,   -57,
-      -2,     8,   111,   -57,    57,    57,   -57,    -2,   131,   132,
-     133,   134,   136,   137,   138,    57,    74,   -57,   -57,   -57,
-     -57,   -57,   -57,   -57,    26,    10,   -57,   -57,   119,   -57,
-     -57,    58,   -57,   -57,    59,   -57,   -57,    93,   -57,   -57,
-      94,   -57,   -57,    95,   -57,   -57,    99,   -57,   -57,   100,
-     -57,   120,   -57,    57,   -57,    27,   117,   -57,   131,   -57,
-     132,   -57,   133,   -57,   134,   -57,   136,   -57,   137,   -57,
-     138,   -57,     4,    33,    11,   -57,   -57,   -57,   -57,   -57,
-     -57,   -57,   -57,   -57,   -57,   118,   121,   -57,   -57
-};
-
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       2,    65,    64,     0,     0,     0,     0,     0,     0,     0,
-       4,     0,     3,     7,    12,    10,    11,    60,     9,    56,
-       0,     0,     0,     0,     0,     0,     0,     0,     1,     0,
-       0,    64,    62,     0,    61,    66,    58,    57,    51,    53,
-      55,     0,    49,    52,     0,    20,     0,     0,     0,     0,
-       0,     0,     0,    57,     5,    43,    47,     0,     6,     8,
-      63,     0,     0,    67,    56,     0,    42,    59,     0,     0,
-       0,     0,     0,     0,     0,    56,     0,    74,    75,    76,
-      77,    78,    79,    80,     0,     0,    68,    69,     0,    54,
-      23,     0,    21,    26,     0,    24,    29,     0,    27,    32,
-       0,    30,    35,     0,    33,    38,     0,    36,    41,     0,
-      39,     0,    44,     0,    46,     0,     0,    50,     0,    13,
-       0,    14,     0,    15,     0,    16,     0,    17,     0,    18,
-       0,    19,    50,     0,     0,    70,    71,    22,    25,    28,
-      31,    34,    37,    40,    45,     0,     0,    72,    73
-};
-
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-     -57,   -57,   -57,   122,   -57,     5,    87,   -57,    29,   -57,
-      30,   -57,    31,   -57,    32,   -57,    35,   -57,    20,   -57,
-      37,   -57,   125,    75,   -57,   -27,    42,   -56,   -57,   -57,
-     -57,   -57,     3,   -26,   -33,   -57
-};
-
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,    11,    27,    12,    13,    38,    46,    91,    92,    94,
-      95,    97,    98,   100,   101,   103,   104,   106,   107,   109,
-     110,    15,    54,    55,    56,    39,    40,    41,    42,    43,
-      16,    17,    44,    34,    35,    84
-};
-
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
-static const yytype_int16 yytable[] =
-{
-      57,    63,    57,    18,   -48,    14,    60,    64,    88,     1,
-      31,    75,   -64,    61,   115,   145,   -64,    19,    67,   111,
-      32,    62,   116,   146,   -48,    33,    45,    63,    28,    36,
-      37,    85,    29,    18,    63,    14,    86,    20,    89,     3,
-       4,     5,     6,     7,     8,     9,    21,    22,   -65,    57,
-     134,   113,     1,     2,    65,   135,    23,   114,    24,   144,
-      36,    37,     3,     4,     5,     6,     7,     8,     9,    10,
-       3,     4,     5,     6,     7,     8,     9,    36,    53,   118,
-     120,    30,   119,   121,     1,     2,    25,     3,     4,     5,
-       6,     7,     8,     9,     3,     4,     5,     6,     7,     8,
-       9,    77,    78,    79,    80,    81,    82,    83,    47,    48,
-      49,    50,    51,    52,   122,   124,   126,   123,   125,   127,
-     128,   130,    65,   129,   131,    26,    66,    68,    69,    70,
-      71,    72,    73,    74,    76,    90,    93,    96,    99,    87,
-     102,   105,   108,   117,   132,   136,   147,   137,   142,   148,
-     138,   112,    59,   139,    58,   133,   140,     0,     0,     0,
-       0,   141,     0,     0,     0,     0,     0,   143
-};
-
-static const yytype_int16 yycheck[] =
-{
-      27,    34,    29,     0,     0,     0,    32,    22,    64,     3,
-       4,    22,    27,     4,     4,     4,    27,    22,    44,    75,
-      17,    12,    12,    12,    20,    27,     4,    60,     0,     3,
-       4,    23,    20,    30,    67,    30,    28,    22,    65,    13,
-      14,    15,    16,    17,    18,    19,    22,    22,    27,    76,
-      23,    25,     3,     4,    21,    28,    22,    84,    22,    26,
-       3,     4,    13,    14,    15,    16,    17,    18,    19,    20,
-      13,    14,    15,    16,    17,    18,    19,     3,     4,    21,
-      21,    21,    24,    24,     3,     4,    22,    13,    14,    15,
-      16,    17,    18,    19,    13,    14,    15,    16,    17,    18,
-      19,     5,     6,     7,     8,     9,    10,    11,    21,    22,
-      23,    24,    25,    26,    21,    21,    21,    24,    24,    24,
-      21,    21,    21,    24,    24,    22,    24,    23,    23,    23,
-      23,    23,    23,    23,    20,     4,     4,     4,     4,    28,
-       4,     4,     4,    24,    24,    28,    28,   118,   128,    28,
-     120,    76,    30,   122,    29,   113,   124,    -1,    -1,    -1,
-      -1,   126,    -1,    -1,    -1,    -1,    -1,   130
-};
-
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
-{
-       0,     3,     4,    13,    14,    15,    16,    17,    18,    19,
-      20,    30,    32,    33,    34,    50,    59,    60,    61,    22,
-      22,    22,    22,    22,    22,    22,    22,    31,     0,    20,
-      21,     4,    61,    27,    62,    63,     3,     4,    34,    54,
-      55,    56,    57,    58,    61,     4,    35,    35,    35,    35,
-      35,    35,    35,     4,    51,    52,    53,    54,    51,    32,
-      62,     4,    12,    63,    22,    21,    24,    62,    23,    23,
-      23,    23,    23,    23,    23,    22,    20,     5,     6,     7,
-       8,     9,    10,    11,    64,    23,    28,    28,    56,    54,
-       4,    36,    37,     4,    38,    39,     4,    40,    41,     4,
-      42,    43,     4,    44,    45,     4,    46,    47,     4,    48,
-      49,    56,    52,    25,    54,     4,    12,    24,    21,    24,
-      21,    24,    21,    24,    21,    24,    21,    24,    21,    24,
-      21,    24,    24,    55,    23,    28,    28,    37,    39,    41,
-      43,    45,    47,    49,    26,     4,    12,    28,    28
-};
-
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    29,    30,    30,    31,    30,    30,    32,    32,    33,
-      33,    33,    33,    34,    34,    34,    34,    34,    34,    34,
-      35,    36,    36,    37,    38,    38,    39,    40,    40,    41,
-      42,    42,    43,    44,    44,    45,    46,    46,    47,    48,
-      48,    49,    50,    51,    51,    52,    52,    52,    53,    54,
-      54,    54,    54,    55,    55,    56,    56,    57,    57,    58,
-      59,    60,    60,    60,    61,    61,    62,    62,    63,    63,
-      63,    63,    63,    63,    64,    64,    64,    64,    64,    64,
-      64
-};
-
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     0,     1,     0,     3,     3,     1,     3,     1,
-       1,     1,     1,     6,     6,     6,     6,     6,     6,     6,
-       1,     1,     3,     1,     1,     3,     1,     1,     3,     1,
-       1,     3,     1,     1,     3,     1,     1,     3,     1,     1,
-       3,     1,     4,     1,     3,     5,     3,     1,     4,     1,
-       4,     1,     1,     1,     3,     1,     0,     1,     1,     2,
-       1,     2,     2,     3,     1,     1,     1,     2,     3,     3,
-       5,     5,     7,     7,     1,     1,     1,     1,     1,     1,
-       1
-};
-
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (arg, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
-
-/* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
-
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Type, Value, arg); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, ce_parser_arg *arg)
-{
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
-  YYUSE (arg);
-  if (!yyvaluep)
-    return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-  YYUSE (yytype);
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, ce_parser_arg *arg)
-{
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, arg);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, ce_parser_arg *arg)
-{
-  unsigned long int yylno = yyrline[yyrule];
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-             yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                                              , arg);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule, arg); \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                    return 2;
-                  yysize = yysize1;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  {
-    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-      return 2;
-    yysize = yysize1;
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, ce_parser_arg *arg)
-{
-  YYUSE (yyvaluep);
-  YYUSE (arg);
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-int
-yyparse (ce_parser_arg *arg)
-{
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
-
-       Refer to the stacks through separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
-                    &yystacksize);
-
-        yyss = yyss1;
-        yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
-
-      {
-        yytype_int16 *yyss1 = yyss;
-        union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-#line 241 "ce_expr.yy" /* yacc.c:1646  */
-    {
-             DBG(cerr << "Mark all variables" << endl);
-		     DDS(arg)->mark_all(true);
-		     (yyval.boolean) = true;
-		 }
-#line 1482 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 4:
-#line 249 "ce_expr.yy" /* yacc.c:1646  */
-    { DDS(arg)->mark_all(true); }
-#line 1488 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 5:
-#line 250 "ce_expr.yy" /* yacc.c:1646  */
-    { 
-		     (yyval.boolean) = (yyvsp[0].boolean);
-		 }
-#line 1496 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 6:
-#line 254 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		     (yyval.boolean) = (yyvsp[-2].boolean) && (yyvsp[0].boolean);
-		 }
-#line 1504 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 8:
-#line 261 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		     (yyval.boolean) = (yyvsp[-2].boolean) && (yyvsp[0].boolean);
-		 }
-#line 1512 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 9:
-#line 267 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		     BaseType *var = DDS(arg)->var((yyvsp[0].id));
-		     if (var) {
-			     DBG(cerr << "Marking " << (yyvsp[0].id) << endl);
-			     (yyval.boolean) = DDS(arg)->mark((yyvsp[0].id), true);
-			     DBG(cerr << "result: " << (yyval.boolean) << endl);
-		     }
-		     else {
-			     no_such_ident(arg, (yyvsp[0].id), "identifier");
-		     }
-		}
-#line 1528 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 10:
-#line 279 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = (yyvsp[0].boolean);
-		}
-#line 1536 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 11:
-#line 283 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = (yyvsp[0].boolean);
-		}
-#line 1544 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 12:
-#line 287 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            Array *array = dynamic_cast<Array*>((yyvsp[0].rval_ptr)->bvalue(*DDS(arg)));
-            if (array) { 
-                /* When the special form appears here (not as a function argument)
-                set send_p so the data will be sent and add it to the DDS. This 
-                streamlines testing (and is likely what is intended). */
-                
-                array->set_send_p(true);
-                DDS(arg)->add_var_nocopy(array);
-                
-                return true;
-            }
-            else {
-                ce_exprerror(arg, "Could not create the anonymous vector using the # special form");
-                return false;
-            }
-        }
-#line 1566 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 13:
-#line 311 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_byte, Byte>((yyvsp[-1].byte_values), DDS(arg));
-        }
-#line 1574 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 14:
-#line 317 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_int16, Int16>((yyvsp[-1].int16_values), DDS(arg));
-        }
-#line 1582 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 15:
-#line 323 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_uint16, UInt16>((yyvsp[-1].uint16_values), DDS(arg));
-        }
-#line 1590 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 16:
-#line 329 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_int32, Int32>((yyvsp[-1].int32_values), DDS(arg));
-        }
-#line 1598 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 17:
-#line 335 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_uint32, UInt32>((yyvsp[-1].uint32_values), DDS(arg));
-        }
-#line 1606 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 18:
-#line 341 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_float32, Float32>((yyvsp[-1].float32_values), DDS(arg));
-        }
-#line 1614 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 19:
-#line 347 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = build_constant_array<dods_float64, Float64>((yyvsp[-1].float64_values), DDS(arg));
-        }
-#line 1622 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 20:
-#line 356 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              if (!check_int32((yyvsp[0].id)))
-                  throw Error(malformed_expr, "#<type>(hint, value, ...) special form expected hint to be an integer");
-                   
-              arg_length_hint_value = atoi((yyvsp[0].id));
-              (yyval.boolean) = true;
-          }
-#line 1634 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 21:
-#line 367 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.byte_values) = make_fast_arg_list<byte_arg_list, dods_byte>(arg_length_hint_value, (yyvsp[0].byte_value));
-          }
-#line 1642 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 22:
-#line 371 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.byte_values) = make_fast_arg_list<byte_arg_list, dods_byte>((yyvsp[-2].byte_values), (yyvsp[0].byte_value));
-          }
-#line 1650 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 23:
-#line 378 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.byte_value) = strtol((yyvsp[0].id), 0, 0);
-          }
-#line 1658 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 24:
-#line 385 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.int16_values) = make_fast_arg_list<int16_arg_list, dods_int16>(arg_length_hint_value, (yyvsp[0].int16_value));
-          }
-#line 1666 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 25:
-#line 389 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.int16_values) = make_fast_arg_list<int16_arg_list, dods_int16>((yyvsp[-2].int16_values), (yyvsp[0].int16_value));
-          }
-#line 1674 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 26:
-#line 396 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.int16_value) = strtol((yyvsp[0].id), 0, 0);
-          }
-#line 1682 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 27:
-#line 403 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.uint16_values) = make_fast_arg_list<uint16_arg_list, dods_uint16>(arg_length_hint_value, (yyvsp[0].uint16_value));
-          }
-#line 1690 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 28:
-#line 407 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.uint16_values) = make_fast_arg_list<uint16_arg_list, dods_uint16>((yyvsp[-2].uint16_values), (yyvsp[0].uint16_value));
-          }
-#line 1698 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 29:
-#line 414 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.uint16_value) = strtoul((yyvsp[0].id), 0, 0);
-          }
-#line 1706 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 30:
-#line 421 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.int32_values) = make_fast_arg_list<int32_arg_list, dods_int32>(arg_length_hint_value, (yyvsp[0].int32_value));
-          }
-#line 1714 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 31:
-#line 425 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.int32_values) = make_fast_arg_list<int32_arg_list, dods_int32>((yyvsp[-2].int32_values), (yyvsp[0].int32_value));
-          }
-#line 1722 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 32:
-#line 432 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.int32_value) = strtol((yyvsp[0].id), 0, 0);
-          }
-#line 1730 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 33:
-#line 439 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.uint32_values) = make_fast_arg_list<uint32_arg_list, dods_uint32>(arg_length_hint_value, (yyvsp[0].uint32_value));
-          }
-#line 1738 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 34:
-#line 443 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.uint32_values) = make_fast_arg_list<uint32_arg_list, dods_uint32>((yyvsp[-2].uint32_values), (yyvsp[0].uint32_value));
-          }
-#line 1746 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 35:
-#line 450 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.uint32_value) = strtoul((yyvsp[0].id), 0, 0);
-          }
-#line 1754 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 36:
-#line 457 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.float32_values) = make_fast_arg_list<float32_arg_list, dods_float32>(arg_length_hint_value, (yyvsp[0].float32_value));
-          }
-#line 1762 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 37:
-#line 461 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.float32_values) = make_fast_arg_list<float32_arg_list, dods_float32>((yyvsp[-2].float32_values), (yyvsp[0].float32_value));
-          }
-#line 1770 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 38:
-#line 468 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.float32_value) = strtof((yyvsp[0].id), 0);
-          }
-#line 1778 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 39:
-#line 475 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.float64_values) = make_fast_arg_list<float64_arg_list, dods_float64>(arg_length_hint_value, (yyvsp[0].float64_value));
-          }
-#line 1786 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 40:
-#line 479 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.float64_values) = make_fast_arg_list<float64_arg_list, dods_float64>((yyvsp[-2].float64_values), (yyvsp[0].float64_value));
-          }
-#line 1794 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 41:
-#line 486 "ce_expr.yy" /* yacc.c:1646  */
-    {
-              (yyval.float64_value) = strtod((yyvsp[0].id), 0);
-          }
-#line 1802 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 42:
-#line 493 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    proj_func p_f = 0;
-		    btp_func f = 0;
-
-		    if ((f = get_btp_function(*(EVALUATOR(arg)), (yyvsp[-3].id)))) {
-			    EVALUATOR(arg)->append_clause(f, (yyvsp[-1].r_val_l_ptr));
-			    (yyval.boolean) = true;
-		    }
-		    else if ((p_f = get_proj_function(*(EVALUATOR(arg)), (yyvsp[-3].id)))) { 
-		        DDS &dds = dynamic_cast<DDS&>(*(DDS(arg)));
-			    BaseType **args = build_btp_args( (yyvsp[-1].r_val_l_ptr), dds );
-			    (*p_f)(((yyvsp[-1].r_val_l_ptr)) ? (yyvsp[-1].r_val_l_ptr)->size():0, args, dds, *(EVALUATOR(arg)));
-			    delete[] args;
-			    (yyval.boolean) = true;
-		    }
-		    else {
-			    no_such_func(arg, (yyvsp[-3].id));
-		    }
-		}
-#line 1826 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 44:
-#line 516 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = (yyvsp[-2].boolean) && (yyvsp[0].boolean);
-		}
-#line 1834 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 45:
-#line 522 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    if ((yyvsp[-4].rval_ptr)) {
-			EVALUATOR(arg)->append_clause((yyvsp[-3].op), (yyvsp[-4].rval_ptr), (yyvsp[-1].r_val_l_ptr));
-			(yyval.boolean) = true;
-		    }
-		    else
-			(yyval.boolean) = false;
-		}
-#line 1847 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 46:
-#line 531 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    if ((yyvsp[-2].rval_ptr)) {
-			rvalue_list *rv = new rvalue_list;
-			rv->push_back((yyvsp[0].rval_ptr));
-			EVALUATOR(arg)->append_clause((yyvsp[-1].op), (yyvsp[-2].rval_ptr), rv);
-			(yyval.boolean) = true;
-		    }
-		    else
-			(yyval.boolean) = false;
-		}
-#line 1862 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 47:
-#line 542 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = (yyvsp[0].boolean);
-		}
-#line 1870 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 48:
-#line 549 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		   bool_func b_func = get_function((*EVALUATOR(arg)), (yyvsp[-3].id));
-		   if (!b_func) {
-		       no_such_func(arg, (yyvsp[-3].id));
-		   }
-		   else {
-		       EVALUATOR(arg)->append_clause(b_func, (yyvsp[-1].r_val_l_ptr));
-		       (yyval.boolean) = true;
-		   }
-	       }
-#line 1885 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 50:
-#line 564 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    btp_func func = get_btp_function((*EVALUATOR(arg)), (yyvsp[-3].id));
-		    if (func) {
-			    (yyval.rval_ptr) = new rvalue(func, (yyvsp[-1].r_val_l_ptr));
-		    } 
-		    else { 
-			    no_such_func(arg, (yyvsp[-3].id));
-		    }
-		}
-#line 1899 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 51:
-#line 574 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = (yyvsp[0].rval_ptr);
-        }
-#line 1907 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 52:
-#line 578 "ce_expr.yy" /* yacc.c:1646  */
-    {
-            (yyval.rval_ptr) = (yyvsp[0].rval_ptr);
-        }
-#line 1915 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 53:
-#line 584 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    if ((yyvsp[0].rval_ptr))
-			    (yyval.r_val_l_ptr) = make_rvalue_list((yyvsp[0].rval_ptr));
-		    else
-			    (yyval.r_val_l_ptr) = 0;
-		}
-#line 1926 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 54:
-#line 591 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    if ((yyvsp[-2].r_val_l_ptr) && (yyvsp[0].rval_ptr))
-			    (yyval.r_val_l_ptr) = append_rvalue_list((yyvsp[-2].r_val_l_ptr), (yyvsp[0].rval_ptr));
-		    else
-			    (yyval.r_val_l_ptr) = 0;
-		}
-#line 1937 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 55:
-#line 600 "ce_expr.yy" /* yacc.c:1646  */
-    {  
-		      (yyval.r_val_l_ptr) = (yyvsp[0].r_val_l_ptr);
-	      }
-#line 1945 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 56:
-#line 604 "ce_expr.yy" /* yacc.c:1646  */
-    { 
-		      (yyval.r_val_l_ptr) = 0; 
-	      }
-#line 1953 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 57:
-#line 610 "ce_expr.yy" /* yacc.c:1646  */
-    { 
-		    BaseType *btp = DDS(arg)->var(www2id((yyvsp[0].id)));
-		    if (btp) {
-                btp->set_in_selection(true);
-                (yyval.rval_ptr) = new rvalue(btp);
-		    }
-		    else {
-			    value new_val;
-			    string name_tmp;
-			    if (check_int32((yyvsp[0].id))) {
-			        new_val.type = dods_int32_c;
-			        new_val.v.i = atoi((yyvsp[0].id));
-			    }
-			    else if (check_uint32((yyvsp[0].id))) {
-			        new_val.type = dods_uint32_c;
-			        new_val.v.ui = atoi((yyvsp[0].id));
-			    }
-			    else if (check_float64((yyvsp[0].id))) {
-			        new_val.type = dods_float64_c;
-			        new_val.v.f = atof((yyvsp[0].id));
-			    }
-			    else {
-			        new_val.type = dods_str_c;
-				// The 'new' here was used because www2id() modifies the
-				// std::string arg in place but 'value' holds a string*.
-			        // new_val.v.s = new string(www2id($1));
-				// I replcaed this with a local tmp to avoid the dynamic
-				// allocation and the need to call delete. This was part of
-				// the fix for ticket 2240. jhrg 7/30/14
-				name_tmp = (yyvsp[0].id);
-				name_tmp = www2id(name_tmp);
-				new_val.v.s = &name_tmp;
-			    }
-			    BaseType *btp = make_variable((*EVALUATOR(arg)), new_val);
-			    (yyval.rval_ptr) = new rvalue(btp);
-		    }
-		}
-#line 1995 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 58:
-#line 648 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    if ((yyvsp[0].val).type != dods_str_c || (yyvsp[0].val).v.s == 0 || (yyvsp[0].val).v.s->empty())
-                        ce_exprerror(arg, "Malformed string", "");
-                        
-                    BaseType *var = DDS(arg)->var(www2id(*((yyvsp[0].val).v.s)));
-                    if (var) {
-                        (yyval.rval_ptr) = new rvalue(var);
-                    }
-                    else {
-                        var = make_variable((*EVALUATOR(arg)), (yyvsp[0].val)); 
-                        (yyval.rval_ptr) = new rvalue(var);
-                    }
-		    // When the scanner (ce_expr.lex) returns the SCAN_STR token type
-		    // it makes a local copy of the string in a new std::string object
-		    // that we must delete. Fix for a bug report by Aron.Bartle at mechdyne.com
-		    // See ticket 2240. jhrg 7/30/14
-		    delete (yyvsp[0].val).v.s;
-                }
-#line 2018 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 59:
-#line 672 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    if (!bracket_projection((*DDS(arg)), (yyvsp[-1].id), (yyvsp[0].int_ll_ptr)))
-                      no_such_ident(arg, (yyvsp[-1].id), "array, grid or sequence");
-                    
-                    // strncpy($$, $1, ID_MAX-1);
-                    // $$[ID_MAX-1] = '\0';
-
-                    DDS(arg)->mark((yyvsp[-1].id), true);
-                    (yyval.rval_ptr) = new rvalue(DDS(arg)->var((yyvsp[-1].id)));
-                }
-#line 2033 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 60:
-#line 685 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    (yyval.boolean) = (*DDS(arg)).mark((yyvsp[0].id), true);
-                }
-#line 2041 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 61:
-#line 691 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    //string name = www2id($1);
-                    if (!bracket_projection((*DDS(arg)), (yyvsp[-1].id), (yyvsp[0].int_ll_ptr)))
-                      no_such_ident(arg, (yyvsp[-1].id), "array, grid or sequence");
-                    
-                    strncpy((yyval.id), (yyvsp[-1].id), ID_MAX-1);
-                    (yyval.id)[ID_MAX-1] = '\0';
-                }
-#line 2054 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 62:
-#line 700 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    string name = string((yyvsp[-1].id)) + string((yyvsp[0].id));
-                    strncpy((yyval.id), name.c_str(), ID_MAX-1);
-                    (yyval.id)[ID_MAX-1] = '\0';
-                }
-#line 2064 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 63:
-#line 706 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    string name = string((yyvsp[-2].id)) + string((yyvsp[-1].id));
-                    if (!bracket_projection((*DDS(arg)), name.c_str(), (yyvsp[0].int_ll_ptr)))
-                      no_such_ident(arg, name.c_str(), "array, grid or sequence");
-
-                    strncpy((yyval.id), name.c_str(), ID_MAX-1);
-                    (yyval.id)[ID_MAX-1] = '\0';
-                }
-#line 2077 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 64:
-#line 717 "ce_expr.yy" /* yacc.c:1646  */
-    { 
-                    strncpy((yyval.id), www2id((yyvsp[0].id)).c_str(), ID_MAX-1);
-                    (yyval.id)[ID_MAX-1] = '\0';
-                }
-#line 2086 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 65:
-#line 722 "ce_expr.yy" /* yacc.c:1646  */
-    {
-                    if ((yyvsp[0].val).type != dods_str_c || (yyvsp[0].val).v.s == 0 || (yyvsp[0].val).v.s->empty())
-                        ce_exprerror(arg, "Malformed string", "");
-                        
-                    strncpy((yyval.id), www2id(*((yyvsp[0].val).v.s)).c_str(), ID_MAX-1);
-		    // See comment about regarding the scanner's behavior WRT SCAN_STR.
-		    // jhrg 7/30/14
-                    delete (yyvsp[0].val).v.s;
-
-                    (yyval.id)[ID_MAX-1] = '\0';
-                }
-#line 2102 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 66:
-#line 736 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    (yyval.int_ll_ptr) = make_array_indices((yyvsp[0].int_l_ptr));
-		}
-#line 2110 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 67:
-#line 740 "ce_expr.yy" /* yacc.c:1646  */
-    {
-		    (yyval.int_ll_ptr) = append_array_index((yyvsp[-1].int_ll_ptr), (yyvsp[0].int_l_ptr));
-		}
-#line 2118 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 68:
-#line 754 "ce_expr.yy" /* yacc.c:1646  */
-    {
-    if (!check_uint32((yyvsp[-1].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-1].id)) + "' is not a valid array index.");
-    value i;
-    i.type = dods_uint32_c;
-    i.v.i = atoi((yyvsp[-1].id));
-    (yyval.int_l_ptr) = make_array_index(i);
-}
-#line 2131 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 69:
-#line 763 "ce_expr.yy" /* yacc.c:1646  */
-    {
-    value i;
-    i.type = dods_int32_c;
-    i.v.i =-1;
-    (yyval.int_l_ptr) = make_array_index(i);
-}
-#line 2142 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 70:
-#line 770 "ce_expr.yy" /* yacc.c:1646  */
-    {
-    if (!check_uint32((yyvsp[-3].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-3].id)) + "' is not a valid array index.");
-    if (!check_uint32((yyvsp[-1].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-1].id)) + "' is not a valid array index.");
-    value i,j;
-    i.type = j.type = dods_uint32_c;
-    i.v.i = atoi((yyvsp[-3].id));
-    j.v.i = atoi((yyvsp[-1].id));
-    (yyval.int_l_ptr) = make_array_index(i, j);
-}
-#line 2158 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 71:
-#line 782 "ce_expr.yy" /* yacc.c:1646  */
-    {
-    if (!check_uint32((yyvsp[-3].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-3].id)) + "' is not a valid array index.");
-    value i,j;
-    i.type = dods_uint32_c;
-    j.type = dods_int32_c;  /* signed */
-    i.v.i = atoi((yyvsp[-3].id));
-    j.v.i = -1;
-    (yyval.int_l_ptr) = make_array_index(i, j);
-}
-#line 2173 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 72:
-#line 793 "ce_expr.yy" /* yacc.c:1646  */
-    {
-    if (!check_uint32((yyvsp[-5].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-5].id)) + "' is not a valid array index.");
-    if (!check_uint32((yyvsp[-3].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-3].id)) + "' is not a valid array index.");
-    if (!check_uint32((yyvsp[-1].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-1].id)) + "' is not a valid array index.");
-    value i, j, k;
-    i.type = j.type = k.type = dods_uint32_c;
-    i.v.i = atoi((yyvsp[-5].id));
-    j.v.i = atoi((yyvsp[-3].id));
-    k.v.i = atoi((yyvsp[-1].id));
-    (yyval.int_l_ptr) = make_array_index(i, j, k);
-}
-#line 2192 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 73:
-#line 808 "ce_expr.yy" /* yacc.c:1646  */
-    {
-    if (!check_uint32((yyvsp[-5].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-5].id)) + "' is not a valid array index.");
-    if (!check_uint32((yyvsp[-3].id)))
-        throw Error(malformed_expr, "The word `" + string((yyvsp[-3].id)) + "' is not a valid array index.");
-    value i, j, k;
-    i.type = j.type = dods_uint32_c;
-    k.type = dods_int32_c;
-    i.v.i = atoi((yyvsp[-5].id));
-    j.v.i = atoi((yyvsp[-3].id));
-    k.v.i = -1;
-    (yyval.int_l_ptr) = make_array_index(i, j, k);
-}
-#line 2210 "ce_expr.tab.cc" /* yacc.c:1646  */
-    break;
-
-
-#line 2214 "ce_expr.tab.cc" /* yacc.c:1646  */
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now 'shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error.  |
-`--------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (arg, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (arg, yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
-
-      if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
-      else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval, arg);
-          yychar = YYEMPTY;
-        }
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-        YYABORT;
-
-
-      yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp, arg);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (arg, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, arg);
-    }
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp, arg);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  return yyresult;
-}
-#line 832 "ce_expr.yy" /* yacc.c:1906  */
-
-
-// All these error reporting function now throw instances of Error. The expr
-// parser no longer returns an error code to indicate and error. 2/16/2000
-// jhrg.
-
-void
-ce_exprerror(ce_parser_arg *, const string &s)
-{
-    //ce_exprerror(s.c_str());
-    string msg = "Constraint expression parse error: " + (string) s;
-    throw Error(malformed_expr, msg);
-}
-
-void ce_exprerror(ce_parser_arg *, const string &s, const string &s2)
-{
-    //ce_exprerror(s.c_str(), s2.c_str());
-    string msg = "Constraint expression parse error: " + (string) s + ": " + (string) s2;
-    throw Error(malformed_expr, msg);    
-}
-
-void no_such_ident(ce_parser_arg *arg, const string &name, const string &word)
-{
-    string msg = "No such " + word + " in dataset";
-    ce_exprerror(arg, msg /*.c_str()*/, name);
-}
-
-void no_such_func(ce_parser_arg *arg, const string &name)
-{
-    ce_exprerror(arg, "Not a registered function", name);
-    //no_such_func(name/*.c_str()*/);
-}
-
-/* If we're calling this, assume var is not a Sequence. But assume that the
- name contains a dot and it's a separator. Look for the rightmost dot and
- then look to see if the name to the left is a sequence. Return a pointer
- to the sequence if it is otherwise return null. Uses tail-recursion to
- 'walk' back from right to left looking at each dot. This way the sequence
- will be found even if there are structures between the field and the
- Sequence. */
-static Sequence *
-parent_is_sequence(DDS &table, const string &n)
-{
-    string::size_type dotpos = n.find_last_of('.');
-    if (dotpos == string::npos)
-        return 0;
-
-    string s = n.substr(0, dotpos);
-
-    // If the thing returned by table.var is not a Sequence, this cast
-    // will yield null.
-    Sequence *seq = dynamic_cast<Sequence*> (table.var(s));
-    if (seq)
-        return seq;
-    else
-        return parent_is_sequence(table, s);
-}
-
-bool bracket_projection(DDS &table, const char *name, int_list_list *indices)
-{
-    BaseType *var = table.var(name);
-    Sequence *seq; // used in last else-if clause
-
-    if (!var)
-        return false;
-
-    if (is_array_t(var)) {
-        /* calls to set_send_p should be replaced with
-         calls to DDS::mark so that arrays of Structures,
-         etc. will be processed correctly when individual
-         elements are projected using short names.
-         9/1/98 jhrg */
-        /* var->set_send_p(true); */
-        //table.mark(name, true);
-        // We don't call mark() here for an array. Instead it is called from
-        // within the parser. jhrg 10/10/08
-        process_array_indices(var, indices); // throws on error
-        delete_array_indices(indices);
-    }
-    else if (is_grid_t(var)) {
-        process_grid_indices(var, indices);
-        table.mark(name, true);
-        delete_array_indices(indices);
-    }
-    else if (is_sequence_t(var)) {
-        table.mark(name, true);
-        process_sequence_indices(var, indices);
-        delete_array_indices(indices);
-    }
-    else if ((seq = parent_is_sequence(table, name))) {
-        process_sequence_indices(seq, indices);
-        table.mark(name, true);
-        delete_array_indices(indices);
-    }
-    else {
-        return false;
-    }
-
-    return true;
-}
-
-// Given three values (I1, I2, I3), all of which must be integers, build an
-// int_list which contains those values.
-// 
-// Note that we added support for * in the rightmost position of an index
-// (i.e., [*], [n:*], [n:m:*]) and indicate that star using -1 as an index value.
-// Bescause of this change, the test for the type of the rightmost value in
-// the index subexpr was changed to include signed int.
-// jhrg 12/20/12
-//
-// Returns: A pointer to an int_list of three integers or NULL if any of the
-// values are not integers.
-
-int_list *
-make_array_index(value &i1, value &i2, value &i3)
-{
-    if (i1.type != dods_uint32_c || i2.type != dods_uint32_c || (i3.type != dods_uint32_c && i3.type != dods_int32_c))
-        return (int_list *) 0;
-
-    int_list *index = new int_list;
-
-    index->push_back((int) i1.v.i);
-    index->push_back((int) i2.v.i);
-    index->push_back((int) i3.v.i);
-
-    DBG(cout << "index: ");
-    DBG(copy(index->begin(), index->end(), ostream_iterator<int>(cerr, " ")));
-    DBG(cerr << endl);
-
-    return index;
-}
-
-int_list *
-make_array_index(value &i1, value &i2)
-{
-    if (i1.type != dods_uint32_c || (i2.type != dods_uint32_c && i2.type != dods_int32_c))
-	return (int_list *) 0;
-
-    int_list *index = new int_list;
-
-    index->push_back((int) i1.v.i);
-    index->push_back(1);
-    index->push_back((int) i2.v.i);
-
-    DBG(cout << "index: ");
-    DBG(copy(index->begin(), index->end(), ostream_iterator<int>(cerr, " ")));
-    DBG(cerr << endl);
-
-    return index;
-}
-
-int_list *
-make_array_index(value &i1)
-{
-    if (i1.type != dods_uint32_c && i1.type != dods_int32_c)
-	return (int_list *) 0;
-
-    int_list *index = new int_list;
-
-    // When the CE is Array[*] that means all of the elements, but the value
-    // of i1 will be -1. Make the projection triple be 0:1:-1 which is a 
-    // pattern that libdap::Array will recognize.
-    if (i1.v.i == -1)
-        index->push_back(0);
-    else
-        index->push_back((int) i1.v.i);
-    index->push_back(1);
-    index->push_back((int) i1.v.i);
-
-    DBG(cout << "index: ");
-    DBG(copy(index->begin(), index->end(), ostream_iterator<int>(cerr, " ")));
-    DBG(cerr << endl);
-
-    return index;
-}
-
-int_list_list *
-make_array_indices(int_list *index)
-{
-    int_list_list *indices = new int_list_list;
-
-    DBG(cout << "index: ");
-    DBG(copy(index->begin(), index->end(), ostream_iterator<int>(cerr, " ")));
-    DBG(cerr << endl);
-
-    assert(index);
-    indices->push_back(index);
-
-    return indices;
-}
-
-int_list_list *
-append_array_index(int_list_list *indices, int_list *index)
-{
-    assert(indices);
-    assert(index);
-
-    indices->push_back(index);
-
-    return indices;
-}
-
-// Delete an array indices list. 
-
-void delete_array_indices(int_list_list *indices)
-{
-    assert(indices);
-
-    for (int_list_citer i = indices->begin(); i != indices->end(); i++) {
-	int_list *il = *i;
-	assert(il);
-	delete il;
-    }
-
-    delete indices;
-}
-
-bool is_array_t(BaseType *variable)
-{
-    assert(variable);
-
-    if (variable->type() != dods_array_c)
-	return false;
-    else
-	return true;
-}
-
-bool is_grid_t(BaseType *variable)
-{
-    assert(variable);
-
-    if (variable->type() != dods_grid_c)
-	return false;
-    else
-	return true;
-}
-
-bool is_sequence_t(BaseType *variable)
-{
-    assert(variable);
-
-    if (variable->type() != dods_sequence_c)
-	return false;
-    else
-	return true;
-}
-
-void process_array_indices(BaseType *variable, int_list_list *indices)
-{
-    assert(variable);
-
-    Array *a = dynamic_cast<Array *>(variable); // replace with dynamic cast
-    if (!a)
-        throw Error(malformed_expr,
-		    string("The constraint expression evaluator expected an array; ") + variable->name() + " is not an array.");
-
-    if (a->dimensions(true) != (unsigned) indices->size())
-        throw Error(malformed_expr,
-		    string("Error: The number of dimensions in the constraint for ") + variable->name()
-                    + " must match the number in the array.");
-
-    DBG(cerr << "Before applying projection to array:" << endl);
-    DBG(a->print_decl(cerr, "", true, false, true));
-
-    assert(indices);
-    
-    int_list_citer p = indices->begin();
-    Array::Dim_iter r = a->dim_begin();
-    for (; p != indices->end() && r != a->dim_end(); p++, r++) {
-        int_list *index = *p;
-        assert(index);
-
-        int_citer q = index->begin();
-        assert(q != index->end());
-        int start = *q;
-
-        q++;
-        int stride = *q;
-
-        q++;
-        int stop = *q;
-
-        q++;
-        if (q != index->end())
-            throw Error(malformed_expr, string("Too many values in index list for ") + a->name() + ".");
-
-        DBG(cerr << "process_array_indices: Setting constraint on " 
-            << a->name() << "[" << start << ":" << stop << "]"
-            << endl);
-
-        // It's possible that an array will appear more than once in a CE
-        // (for example, if an array of structures is constrained so that
-        // only two fields are projected and there's an associated hyperslab).
-        // However, in this case the two hyperslabs must be equal; test for
-        // that here.
-        //
-        // We added '*' to mean 'the last element' in the array and use an index of -1
-        // to indicate that. If 'stop' is -1, don't test it here because dimension_stop()
-        // won't be -1 but the actual ending index of the array. jhrg 12/20/12
-
-        if (a->send_p() && (a->dimension_start(r, true) != start || (a->dimension_stop(r, true) != stop && stop != -1)
-                            || a->dimension_stride(r, true) != stride))
-            throw Error(malformed_expr,
-                    string("The Array was already projected differently in the constraint expression: ") + a->name() + ".");
-
-        a->add_constraint(r, start, stride, stop);
-
-        DBG(cerr << "Set Constraint: " << a->dimension_size(r, true) << endl);
-    }
-
-    DBG(cerr << "After applying projection to array:" << endl);
-    DBG(a->print_decl(cerr, "", true, false, true));
-
-
-    if (p != indices->end() && r == a->dim_end())
-        throw Error(malformed_expr, string("Too many indices in constraint for ") + a->name() + ".");
-}
-
-void process_grid_indices(BaseType *variable, int_list_list *indices)
-{
-    assert(variable);
-    assert(variable->type() == dods_grid_c);
-    Grid *g = dynamic_cast<Grid *>(variable);
-    if (!g)
-        throw Error(unknown_error, "Expected a Grid variable");
-
-    Array *a = g->get_array();
-
-    if (a->dimensions(true) != (unsigned) indices->size())
-        throw Error(malformed_expr,
-		    string("Error: The number of dimensions in the constraint for ") + variable->name()
-		    + " must match the number in the grid.");
-
-    // First do the constraints on the ARRAY in the grid.
-    process_array_indices(g->array_var(), indices);
-
-    // Now process the maps.
-    Grid::Map_iter r = g->map_begin();
-
-    // Suppress all maps by default.
-    for (; r != g->map_end(); r++) {
-        (*r)->set_send_p(false);
-    }
-
-    // Add specified maps to the current projection.
-    assert(indices);
-    int_list_citer p = indices->begin();
-    r = g->map_begin();
-    for (; p != indices->end() && r != g->map_end(); p++, r++) {
-        int_list *index = *p;
-        assert(index);
-
-        int_citer q = index->begin();
-        assert(q != index->end());
-        int start = *q;
-
-        q++;
-        int stride = *q;
-
-        q++;
-        int stop = *q;
-
-        BaseType *btp = *r;
-        assert(btp);
-        assert(btp->type() == dods_array_c);
-        Array *a = (Array *) btp;
-        a->set_send_p(true);
-        a->reset_constraint();
-
-        q++;
-        if (q != index->end()) {
-            throw Error(malformed_expr, string("Too many values in index list for ") + a->name() + ".");
-        }
-
-        DBG(cerr << "process_grid_indices: Setting constraint on "
-            << a->name() << "[" << start << ":"
-            << stop << "]" << endl);
-    
-        Array::Dim_iter si = a->dim_begin();
-        a->add_constraint(si, start, stride, stop);
-
-    }
-
-    DBG(cout << "Grid Constraint: ";
-	for (Array::Dim_iter dp = ((Array *) g->array_var())->dim_begin();
-	     dp != ((Array *) g->array_var())->dim_end(); dp++)
-	    cout << ((Array *) g->array_var())->dimension_size(dp, true) << " ";
-	    cout << endl
-	);
-
-    if (p != indices->end() && r == g->map_end()) {
-        throw Error(malformed_expr,
-		    string("Too many indices in constraint for ") + (*r)->name() + ".");
-    }
-}
-
-void process_sequence_indices(BaseType *variable, int_list_list *indices)
-{
-    assert(variable);
-    assert(variable->type() == dods_sequence_c);
-    Sequence *s = dynamic_cast<Sequence *> (variable);
-    if (!s)
-        throw Error(malformed_expr, "Expected a Sequence variable");
-
-    // Add specified maps to the current projection.
-    assert(indices);
-    for (int_list_citer p = indices->begin(); p != indices->end(); p++) {
-        int_list *index = *p;
-        assert(index);
-
-        int_citer q = index->begin();
-        assert(q != index->end());
-        int start = *q;
-
-        q++;
-        int stride = *q;
-
-        q++;
-        int stop = *q;
-
-        q++;
-        if (q != index->end()) {
-            throw Error(malformed_expr, string("Too many values in index list for ") + s->name() + ".");
-        }
-
-        s->set_row_number_constraint(start, stop, stride);
-    }
-}
-
-// Given a value, wrap it up in a BaseType and return a pointer to the same.
-
-BaseType *
-make_variable(ConstraintEvaluator &eval, const value &val)
-{
-    BaseType *var;
-    switch (val.type) {
-    case dods_int32_c: {
-        var = new Int32("dummy");
-        var->val2buf((void *) &val.v.i);
-        break;
-    }
-
-    case dods_uint32_c: {
-        var = new UInt32("dummy");
-        var->val2buf((void *) &val.v.i);
-        break;
-    }
-
-    case dods_float64_c: {
-        var = new Float64("dummy");
-        var->val2buf((void *) &val.v.f);
-        break;
-    }
-
-    case dods_str_c: {
-        var = new Str("dummy");
-        var->val2buf((void *) val.v.s);
-        break;
-    }
-
-    default:
-        var = (BaseType *) 0;
-        return var;
-    }
-
-    var->set_read_p(true); // ...so the evaluator will know it has data
-    eval.append_constant(var);
-
-    return var;
-}
-
-// Given a string (passed in VAL), consult the DDS CE function lookup table
-// to see if a function by that name exists. 
-// NB: function arguments are type-checked at run-time.
-//
-// Returns: A pointer to the function or NULL if not such function exists.
-
-bool_func get_function(const ConstraintEvaluator &eval, const char *name)
-{
-    bool_func f;
-
-    if (eval.find_function(name, &f))
-        return f;
-    else
-        return 0;
-}
-
-btp_func get_btp_function(const ConstraintEvaluator &eval, const char *name)
-{
-    btp_func f;
-
-    if (eval.find_function(name, &f))
-        return f;
-    else
-        return 0;
-}
-
-proj_func get_proj_function(const ConstraintEvaluator &eval, const char *name)
-{
-    proj_func f;
-
-    if (eval.find_function(name, &f))
-        return f;
-    else
-        return 0;
-}
-
-template<class arg_type_list, class arg_type>
-arg_type_list
-make_fast_arg_list(unsigned long vector_size_hint, arg_type value)
-{
-    arg_type_list args = new std::vector<arg_type>;
-    
-    if (vector_size_hint > 0) args->reserve(vector_size_hint);
-    
-    args->push_back(value);
-    return args;
-}
-
-template<class arg_type_list, class arg_type>
-arg_type_list
-make_fast_arg_list(arg_type_list values, arg_type value)
-{
-    values->push_back(value);
-    return values;
-}
-
-template<class t, class T>
-rvalue *build_constant_array(vector<t> *values, DDS *dds)
-{
-    //vector<t> *values = $5;
-            
-    T i("");
-    Array *array = new Array("", &i);
-    array->append_dim(values->size());
-    
-    // TODO Make set_value_nocopy() methods so that values' pointers can be copied
-    // instead of allocating memory twice. jhrg 7/5/13
-            
-    array->set_value(*values, values->size());
-    delete values;
-    array->set_read_p(true);
-            
-    static unsigned long counter = 1;
-    string name;
-    do {
-        name = "g" + long_to_string(counter++);
-    } while (dds->var(name));
-    array->set_name(name);
-            
-    return new rvalue(array);
-}
-
diff --git a/ce_expr.tab.hh b/ce_expr.tab.hh
deleted file mode 100644
index 96a3de3..0000000
--- a/ce_expr.tab.hh
+++ /dev/null
@@ -1,215 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-#ifndef YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED
-# define YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int ce_exprdebug;
-#endif
-/* "%code requires" blocks.  */
-#line 41 "ce_expr.yy" /* yacc.c:1909  */
-
-
-#include "config.h"
-
-#include <cassert>
-#include <cstdlib>
-#include <cstring>
-
-#include <iostream>
-#include <sstream>
-#include <iterator>
-#include <string>
-#include <stack>
-
-//#define DODS_DEBUG
-
-#include "debug.h"
-#include "escaping.h"
-
-#include "DDS.h"
-#include "ConstraintEvaluator.h"
-
-#include "BaseType.h"
-
-#include "Byte.h"
-#include "Int16.h"
-#include "UInt16.h"
-#include "Int32.h"
-#include "UInt32.h"
-#include "Float32.h"
-#include "Float64.h"
-#include "Str.h"
-#include "Url.h"
-#include "Array.h"
-#include "Structure.h"
-#include "Sequence.h"
-#include "Grid.h"
-
-#include "Error.h"
-
-#include "util.h"
-#include "parser.h"
-#include "ce_parser.h"
-#include "expr.h"
-#include "RValue.h"
-
-using std::cerr;
-using std::endl;
-using namespace libdap ;
-
-#define EVALUATOR(arg) (static_cast<ce_parser_arg*>(arg)->get_eval())
-#define DDS(arg) (static_cast<ce_parser_arg*>(arg)->get_dds())
-
-// #define YYPARSE_PARAM arg
-
-int ce_exprlex(void);		/* the scanner; see expr.lex */
-
-void ce_exprerror(ce_parser_arg *arg, const string &s); 
-void ce_exprerror(ce_parser_arg *arg, const string &s, const string &s2);
-void no_such_func(ce_parser_arg *arg, const string &name);
-void no_such_ident(ce_parser_arg *arg, const string &name, const string &word);
-
-int_list *make_array_index(value &i1, value &i2, value &i3);
-int_list *make_array_index(value &i1, value &i2);
-int_list *make_array_index(value &i1);
-int_list_list *make_array_indices(int_list *index);
-int_list_list *append_array_index(int_list_list *indices, int_list *index);
-
-void delete_array_indices(int_list_list *indices);
-bool bracket_projection(DDS &table, const char *name, int_list_list *indices);
-
-void process_array_indices(BaseType *variable, int_list_list *indices); 
-void process_grid_indices(BaseType *variable, int_list_list *indices); 
-void process_sequence_indices(BaseType *variable, int_list_list *indices);
-
-/* Replace these with method calls. jhrg 8/31/06 */
-bool is_array_t(BaseType *variable);
-bool is_grid_t(BaseType *variable);
-bool is_sequence_t(BaseType *variable);
-
-BaseType *make_variable(ConstraintEvaluator &eval, const value &val);
-bool_func get_function(const ConstraintEvaluator &eval, const char *name);
-btp_func get_btp_function(const ConstraintEvaluator &eval, const char *name);
-proj_func get_proj_function(const ConstraintEvaluator &eval, const char *name);
-
-template<class arg_list, class arg_type>
-arg_list make_fast_arg_list(unsigned long vector_size_hint, arg_type arg_value);
-
-template<class arg_list, class arg_type>
-arg_list make_fast_arg_list(arg_list int_values, arg_type arg_value);
-
-template<class t, class T>
-rvalue *build_constant_array(vector<t> *values, DDS *dds);
-
-
-#line 140 "ce_expr.tab.hh" /* yacc.c:1909  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_STR = 258,
-    SCAN_WORD = 259,
-    SCAN_EQUAL = 260,
-    SCAN_NOT_EQUAL = 261,
-    SCAN_GREATER = 262,
-    SCAN_GREATER_EQL = 263,
-    SCAN_LESS = 264,
-    SCAN_LESS_EQL = 265,
-    SCAN_REGEXP = 266,
-    SCAN_STAR = 267,
-    SCAN_HASH_BYTE = 268,
-    SCAN_HASH_INT16 = 269,
-    SCAN_HASH_UINT16 = 270,
-    SCAN_HASH_INT32 = 271,
-    SCAN_HASH_UINT32 = 272,
-    SCAN_HASH_FLOAT32 = 273,
-    SCAN_HASH_FLOAT64 = 274
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 145 "ce_expr.yy" /* yacc.c:1909  */
-
-    bool boolean;
-    int op;
-    char id[ID_MAX];
-    
-    libdap::dods_byte byte_value;
-    libdap::dods_int16 int16_value;
-    libdap::dods_uint16 uint16_value;
-    libdap::dods_int32 int32_value;
-    libdap::dods_uint32 uint32_value;
-    libdap::dods_float32 float32_value;
-    libdap::dods_float64 float64_value;
-    
-    libdap::byte_arg_list byte_values;
-    libdap::int16_arg_list int16_values;
-    libdap::uint16_arg_list uint16_values;
-    libdap::int32_arg_list int32_values;
-    libdap::uint32_arg_list uint32_values;
-    libdap::float32_arg_list float32_values;
-    libdap::float64_arg_list float64_values;
-    
-    libdap::value val;               // value is defined in expr.h
-
-    libdap::bool_func b_func;
-    libdap::btp_func bt_func;
-
-    libdap::int_list *int_l_ptr;
-    libdap::int_list_list *int_ll_ptr;
-    
-    libdap::rvalue *rval_ptr;
-    libdap::rvalue_list *r_val_l_ptr;
-
-#line 205 "ce_expr.tab.hh" /* yacc.c:1909  */
-};
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE ce_exprlval;
-
-int ce_exprparse (ce_parser_arg *arg);
-
-#endif /* !YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED  */
diff --git a/ce_expr.yy b/ce_expr.yy
index 90abc55..aa08612 100644
--- a/ce_expr.yy
+++ b/ce_expr.yy
@@ -355,7 +355,7 @@ array_const_special_form: SCAN_HASH_FLOAT64 '(' arg_length_hint ':' fast_float64
 arg_length_hint: SCAN_WORD
           {
               if (!check_int32($1))
-                  throw Error(malformed_expr, "#<type>(hint, value, ...) special form expected hint to be an integer");
+                  throw Error(malformed_expr, "$<type>(hint, value, ...) special form expected hint to be an integer");
                    
               arg_length_hint_value = atoi($1);
               $$ = true;
@@ -838,28 +838,30 @@ rel_op:		SCAN_EQUAL
 void
 ce_exprerror(ce_parser_arg *, const string &s)
 {
-    //ce_exprerror(s.c_str());
-    string msg = "Constraint expression parse error: " + (string) s;
+    string msg = "Constraint expression parse error: " +s;
     throw Error(malformed_expr, msg);
 }
 
 void ce_exprerror(ce_parser_arg *, const string &s, const string &s2)
 {
-    //ce_exprerror(s.c_str(), s2.c_str());
-    string msg = "Constraint expression parse error: " + (string) s + ": " + (string) s2;
+    string msg = "Constraint expression parse error: " + s + ": " + s2;
     throw Error(malformed_expr, msg);    
 }
 
 void no_such_ident(ce_parser_arg *arg, const string &name, const string &word)
 {
+#if 0
     string msg = "No such " + word + " in dataset";
-    ce_exprerror(arg, msg /*.c_str()*/, name);
+    ce_exprerror(arg, msg , name);
+#endif
+    string msg = "Constraint expression parse error: No such " + word + " in dataset: " + name;
+    throw Error(no_such_variable, msg);    
+    
 }
 
 void no_such_func(ce_parser_arg *arg, const string &name)
 {
     ce_exprerror(arg, "Not a registered function", name);
-    //no_such_func(name/*.c_str()*/);
 }
 
 /* If we're calling this, assume var is not a Sequence. But assume that the
diff --git a/cgi_util.h b/cgi_util.h
index 247f431..1d406d6 100644
--- a/cgi_util.h
+++ b/cgi_util.h
@@ -10,6 +10,6 @@
 #ifndef CGI_UTIL_H_
 #define CGI_UTIL_H_
 
-#include <>mime_util.h>
+#include <mime_util.h>
 
 #endif /* CGI_UTIL_H_ */
diff --git a/conf/._compile b/conf/._compile
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._compile and /dev/null differ
diff --git a/conf/._config.guess b/conf/._config.guess
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._config.guess and /dev/null differ
diff --git a/conf/._config.sub b/conf/._config.sub
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._config.sub and /dev/null differ
diff --git a/conf/._depcomp b/conf/._depcomp
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._depcomp and /dev/null differ
diff --git a/conf/._install-sh b/conf/._install-sh
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._install-sh and /dev/null differ
diff --git a/conf/._libtool.m4 b/conf/._libtool.m4
deleted file mode 100644
index be261c0..0000000
Binary files a/conf/._libtool.m4 and /dev/null differ
diff --git a/conf/._ltmain.sh b/conf/._ltmain.sh
deleted file mode 100644
index be261c0..0000000
Binary files a/conf/._ltmain.sh and /dev/null differ
diff --git a/conf/._ltoptions.m4 b/conf/._ltoptions.m4
deleted file mode 100644
index be261c0..0000000
Binary files a/conf/._ltoptions.m4 and /dev/null differ
diff --git a/conf/._ltsugar.m4 b/conf/._ltsugar.m4
deleted file mode 100644
index be261c0..0000000
Binary files a/conf/._ltsugar.m4 and /dev/null differ
diff --git a/conf/._ltversion.m4 b/conf/._ltversion.m4
deleted file mode 100644
index be261c0..0000000
Binary files a/conf/._ltversion.m4 and /dev/null differ
diff --git a/conf/._lt~obsolete.m4 b/conf/._lt~obsolete.m4
deleted file mode 100644
index be261c0..0000000
Binary files a/conf/._lt~obsolete.m4 and /dev/null differ
diff --git a/conf/._missing b/conf/._missing
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._missing and /dev/null differ
diff --git a/conf/._test-driver b/conf/._test-driver
deleted file mode 100755
index 79bcbdd..0000000
Binary files a/conf/._test-driver and /dev/null differ
diff --git a/conf/arg-nonnull.h b/conf/arg-nonnull.h
new file mode 100644
index 0000000..226d1a8
--- /dev/null
+++ b/conf/arg-nonnull.h
@@ -0,0 +1,26 @@
+/* A C macro for declaring that specific arguments must not be NULL.
+   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
+   that the values passed as arguments n, ..., m must be non-NULL pointers.
+   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
+#ifndef _GL_ARG_NONNULL
+# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
+#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
+# else
+#  define _GL_ARG_NONNULL(params)
+# endif
+#endif
diff --git a/conf/c++defs.h b/conf/c++defs.h
new file mode 100644
index 0000000..d521417
--- /dev/null
+++ b/conf/c++defs.h
@@ -0,0 +1,271 @@
+/* C++ compatible function declaration macros.
+   Copyright (C) 2010-2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GL_CXXDEFS_H
+#define _GL_CXXDEFS_H
+
+/* The three most frequent use cases of these macros are:
+
+   * For providing a substitute for a function that is missing on some
+     platforms, but is declared and works fine on the platforms on which
+     it exists:
+
+       #if @GNULIB_FOO@
+       # if !@HAVE_FOO@
+       _GL_FUNCDECL_SYS (foo, ...);
+       # endif
+       _GL_CXXALIAS_SYS (foo, ...);
+       _GL_CXXALIASWARN (foo);
+       #elif defined GNULIB_POSIXCHECK
+       ...
+       #endif
+
+   * For providing a replacement for a function that exists on all platforms,
+     but is broken/insufficient and needs to be replaced on some platforms:
+
+       #if @GNULIB_FOO@
+       # if @REPLACE_FOO@
+       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+       #   undef foo
+       #   define foo rpl_foo
+       #  endif
+       _GL_FUNCDECL_RPL (foo, ...);
+       _GL_CXXALIAS_RPL (foo, ...);
+       # else
+       _GL_CXXALIAS_SYS (foo, ...);
+       # endif
+       _GL_CXXALIASWARN (foo);
+       #elif defined GNULIB_POSIXCHECK
+       ...
+       #endif
+
+   * For providing a replacement for a function that exists on some platforms
+     but is broken/insufficient and needs to be replaced on some of them and
+     is additionally either missing or undeclared on some other platforms:
+
+       #if @GNULIB_FOO@
+       # if @REPLACE_FOO@
+       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+       #   undef foo
+       #   define foo rpl_foo
+       #  endif
+       _GL_FUNCDECL_RPL (foo, ...);
+       _GL_CXXALIAS_RPL (foo, ...);
+       # else
+       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
+       _GL_FUNCDECL_SYS (foo, ...);
+       #  endif
+       _GL_CXXALIAS_SYS (foo, ...);
+       # endif
+       _GL_CXXALIASWARN (foo);
+       #elif defined GNULIB_POSIXCHECK
+       ...
+       #endif
+*/
+
+/* _GL_EXTERN_C declaration;
+   performs the declaration with C linkage.  */
+#if defined __cplusplus
+# define _GL_EXTERN_C extern "C"
+#else
+# define _GL_EXTERN_C extern
+#endif
+
+/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
+   declares a replacement function, named rpl_func, with the given prototype,
+   consisting of return type, parameters, and attributes.
+   Example:
+     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
+                                  _GL_ARG_NONNULL ((1)));
+ */
+#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
+  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
+#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
+  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
+
+/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
+   declares the system function, named func, with the given prototype,
+   consisting of return type, parameters, and attributes.
+   Example:
+     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
+                                  _GL_ARG_NONNULL ((1)));
+ */
+#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
+  _GL_EXTERN_C rettype func parameters_and_attributes
+
+/* _GL_CXXALIAS_RPL (func, rettype, parameters);
+   declares a C++ alias called GNULIB_NAMESPACE::func
+   that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
+   Example:
+     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
+ */
+#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
+  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                                \
+    {                                                         \
+      rettype (*const func) parameters = ::rpl_func;          \
+    }                                                         \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
+   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
+   except that the C function rpl_func may have a slightly different
+   declaration.  A cast is used to silence the "invalid conversion" error
+   that would otherwise occur.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                                     \
+    {                                                              \
+      rettype (*const func) parameters =                           \
+        reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
+    }                                                              \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS (func, rettype, parameters);
+   declares a C++ alias called GNULIB_NAMESPACE::func
+   that redirects to the system provided function func, if GNULIB_NAMESPACE
+   is defined.
+   Example:
+     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
+ */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+  /* If we were to write
+       rettype (*const func) parameters = ::func;
+     like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
+     better (remove an indirection through a 'static' pointer variable),
+     but then the _GL_CXXALIASWARN macro below would cause a warning not only
+     for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
+# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                     \
+    {                                              \
+      static rettype (*func) parameters = ::func;  \
+    }                                              \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
+   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
+   except that the C function func may have a slightly different declaration.
+   A cast is used to silence the "invalid conversion" error that would
+   otherwise occur.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                          \
+    {                                                   \
+      static rettype (*func) parameters =               \
+        reinterpret_cast<rettype(*)parameters>(::func); \
+    }                                                   \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
+   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
+   except that the C function is picked among a set of overloaded functions,
+   namely the one with rettype2 and parameters2.  Two consecutive casts
+   are used to silence the "cannot find a match" and "invalid conversion"
+   errors that would otherwise occur.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+  /* The outer cast must be a reinterpret_cast.
+     The inner cast: When the function is defined as a set of overloaded
+     functions, it works as a static_cast<>, choosing the designated variant.
+     When the function is defined as a single variant, it works as a
+     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+    namespace GNULIB_NAMESPACE                                                \
+    {                                                                         \
+      static rettype (*func) parameters =                                     \
+        reinterpret_cast<rettype(*)parameters>(                               \
+          (rettype2(*)parameters2)(::func));                                  \
+    }                                                                         \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN (func);
+   causes a warning to be emitted when ::func is used but not when
+   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
+   variants.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN(func) \
+   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN_1(func,namespace) \
+   _GL_CXXALIASWARN_2 (func, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+   we enable the warning only when not optimizing.  */
+# if !__OPTIMIZE__
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+    _GL_WARN_ON_USE (func, \
+                     "The symbol ::" #func " refers to the system function. " \
+                     "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+     extern __typeof__ (func) func
+# else
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+     _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN(func) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
+   causes a warning to be emitted when the given overloaded variant of ::func
+   is used but not when GNULIB_NAMESPACE::func is used.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
+                        GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
+   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+   we enable the warning only when not optimizing.  */
+# if !__OPTIMIZE__
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
+                         "The symbol ::" #func " refers to the system function. " \
+                         "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+     extern __typeof__ (func) func
+# else
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+     _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+#endif /* _GL_CXXDEFS_H */
diff --git a/conf/check_zlib.m4 b/conf/check_zlib.m4
new file mode 100644
index 0000000..9beac0f
--- /dev/null
+++ b/conf/check_zlib.m4
@@ -0,0 +1,122 @@
+##### http://autoconf-archive.cryp.to/check_zlib.html
+#
+# SYNOPSIS
+#
+#   CHECK_ZLIB()
+#
+# DESCRIPTION
+#
+#   This macro searches for an installed zlib library. If nothing was
+#   specified when calling configure, it searches first in /usr/local
+#   and then in /usr. If the --with-zlib=DIR is specified, it will try
+#   to find it in DIR/include/zlib.h and DIR/lib/libz.a. If
+#   --without-zlib is specified, the library is not searched at all.
+#
+#   If either the header file (zlib.h) or the library (libz) is not
+#   found, the configuration exits on error, asking for a valid zlib
+#   installation directory or --without-zlib.
+#
+#   The macro defines the symbol HAVE_LIBZ if the library is found. You
+#   should use autoheader to include a definition for this symbol in a
+#   config.h file. Sample usage in a C/C++ source is as follows:
+#
+#     #ifdef HAVE_LIBZ
+#     #include <zlib.h>
+#     #endif /* HAVE_LIBZ */
+#
+# LAST MODIFICATION
+#
+#   2004-09-20
+#
+# COPYLEFT
+#
+#   Copyright (c) 2004 Loic Dachary <loic at senga.org>
+#
+#   This program is free software; you can redistribute it and/or
+#   modify it under the terms of the GNU General Public License as
+#   published by the Free Software Foundation; either version 2 of the
+#   License, or (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+#   General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+#   02111-1307, USA.
+#
+#   As a special exception, the respective Autoconf Macro's copyright
+#   owner gives unlimited permission to copy, distribute and modify the
+#   configure scripts that are the output of Autoconf when processing
+#   the Macro. You need not follow the terms of the GNU General Public
+#   License when using or distributing such scripts, even though
+#   portions of the text of the Macro appear in them. The GNU General
+#   Public License (GPL) does govern all other use of the material that
+#   constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the
+#   Autoconf Macro released by the Autoconf Macro Archive. When you
+#   make and distribute a modified version of the Autoconf Macro, you
+#   may extend this special exception to the GPL to apply to your
+#   modified version as well.
+
+AC_DEFUN([DAP_CHECK_ZLIB],
+#
+# Handle user hints
+#
+[
+AC_ARG_WITH(zlib,
+[  --with-zlib=DIR root directory path of zlib installation [defaults to
+                    /usr/local or /usr if not found in /usr/local]
+  --without-zlib to disable zlib usage completely],
+[if test "$withval" != no ; then
+  if test -d "$withval"
+  then
+    ZLIB_HOME="$withval"
+  else
+    AC_MSG_WARN([Sorry, $withval does not exist, checking usual places])
+  fi
+else
+  AC_MSG_WARN([zlib is required for deflate, not disabled])
+fi])
+
+ZLIB_OLD_LDFLAGS=$LDFLAGS
+ZLIB_OLD_CPPFLAGS=$CPPFLAGS
+
+#
+# Locate zlib, if wanted
+#
+if test -n "${ZLIB_HOME}"
+then
+        LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
+        CPPFLAGS="$CPPFLAGS -I${ZLIB_HOME}/include"
+fi
+AC_LANG_SAVE
+AC_LANG_C
+AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
+AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
+AC_LANG_RESTORE
+
+if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"
+then
+        #
+        # If both library and header were found, use them
+        #
+        ZLIB_LIBS="-lz"
+else
+        #
+        # If either header or library was not found, revert and bomb
+        #
+        AC_MSG_ERROR([zlib is required for deflate, specify a valid zlib installation with --with-zlib=DIR])
+fi
+
+LDFLAGS="$ZLIB_OLD_LDFLAGS"
+CPPFLAGS="$ZLIB_OLD_CPPFLAGS"
+
+AC_SUBST([ZLIB_LIBS])
+AC_SUBST([ZLIB_LDFLAGS])
+AC_SUBST([ZLIB_CFLAGS])
+
+])
diff --git a/conf/compile b/conf/compile
deleted file mode 100755
index 531136b..0000000
--- a/conf/compile
+++ /dev/null
@@ -1,347 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-10-14.11; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey at cygnus.com>.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" ""	$nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
-  file=$1
-  case $file in
-    / | /[!/]*) # absolute file, and not a UNC file
-      if test -z "$file_conv"; then
-	# lazily determine how to convert abs files
-	case `uname -s` in
-	  MINGW*)
-	    file_conv=mingw
-	    ;;
-	  CYGWIN*)
-	    file_conv=cygwin
-	    ;;
-	  *)
-	    file_conv=wine
-	    ;;
-	esac
-      fi
-      case $file_conv/,$2, in
-	*,$file_conv,*)
-	  ;;
-	mingw/*)
-	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
-	  ;;
-	cygwin/*)
-	  file=`cygpath -m "$file" || echo "$file"`
-	  ;;
-	wine/*)
-	  file=`winepath -w "$file" || echo "$file"`
-	  ;;
-      esac
-      ;;
-  esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
-  func_file_conv "$1"
-  if test -z "$lib_path"; then
-    lib_path=$file
-  else
-    lib_path="$lib_path;$file"
-  fi
-  linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
-  lib=$1
-  found=no
-  save_IFS=$IFS
-  IFS=';'
-  for dir in $lib_path $LIB
-  do
-    IFS=$save_IFS
-    if $shared && test -f "$dir/$lib.dll.lib"; then
-      found=yes
-      lib=$dir/$lib.dll.lib
-      break
-    fi
-    if test -f "$dir/$lib.lib"; then
-      found=yes
-      lib=$dir/$lib.lib
-      break
-    fi
-    if test -f "$dir/lib$lib.a"; then
-      found=yes
-      lib=$dir/lib$lib.a
-      break
-    fi
-  done
-  IFS=$save_IFS
-
-  if test "$found" != yes; then
-    lib=$lib.lib
-  fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
-  # Assume a capable shell
-  lib_path=
-  shared=:
-  linker_opts=
-  for arg
-  do
-    if test -n "$eat"; then
-      eat=
-    else
-      case $1 in
-	-o)
-	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
-	  eat=1
-	  case $2 in
-	    *.o | *.[oO][bB][jJ])
-	      func_file_conv "$2"
-	      set x "$@" -Fo"$file"
-	      shift
-	      ;;
-	    *)
-	      func_file_conv "$2"
-	      set x "$@" -Fe"$file"
-	      shift
-	      ;;
-	  esac
-	  ;;
-	-I)
-	  eat=1
-	  func_file_conv "$2" mingw
-	  set x "$@" -I"$file"
-	  shift
-	  ;;
-	-I*)
-	  func_file_conv "${1#-I}" mingw
-	  set x "$@" -I"$file"
-	  shift
-	  ;;
-	-l)
-	  eat=1
-	  func_cl_dashl "$2"
-	  set x "$@" "$lib"
-	  shift
-	  ;;
-	-l*)
-	  func_cl_dashl "${1#-l}"
-	  set x "$@" "$lib"
-	  shift
-	  ;;
-	-L)
-	  eat=1
-	  func_cl_dashL "$2"
-	  ;;
-	-L*)
-	  func_cl_dashL "${1#-L}"
-	  ;;
-	-static)
-	  shared=false
-	  ;;
-	-Wl,*)
-	  arg=${1#-Wl,}
-	  save_ifs="$IFS"; IFS=','
-	  for flag in $arg; do
-	    IFS="$save_ifs"
-	    linker_opts="$linker_opts $flag"
-	  done
-	  IFS="$save_ifs"
-	  ;;
-	-Xlinker)
-	  eat=1
-	  linker_opts="$linker_opts $2"
-	  ;;
-	-*)
-	  set x "$@" "$1"
-	  shift
-	  ;;
-	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
-	  func_file_conv "$1"
-	  set x "$@" -Tp"$file"
-	  shift
-	  ;;
-	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
-	  func_file_conv "$1" mingw
-	  set x "$@" "$file"
-	  shift
-	  ;;
-	*)
-	  set x "$@" "$1"
-	  shift
-	  ;;
-      esac
-    fi
-    shift
-  done
-  if test -n "$linker_opts"; then
-    linker_opts="-link$linker_opts"
-  fi
-  exec "$@" $linker_opts
-  exit 1
-}
-
-eat=
-
-case $1 in
-  '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
-  -h | --h*)
-    cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake at gnu.org>.
-EOF
-    exit $?
-    ;;
-  -v | --v*)
-    echo "compile $scriptversion"
-    exit $?
-    ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
-    func_cl_wrapper "$@"      # Doesn't return...
-    ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
-  if test -n "$eat"; then
-    eat=
-  else
-    case $1 in
-      -o)
-	# configure might choose to run compile as 'compile cc -o foo foo.c'.
-	# So we strip '-o arg' only if arg is an object.
-	eat=1
-	case $2 in
-	  *.o | *.obj)
-	    ofile=$2
-	    ;;
-	  *)
-	    set x "$@" -o "$2"
-	    shift
-	    ;;
-	esac
-	;;
-      *.c)
-	cfile=$1
-	set x "$@" "$1"
-	shift
-	;;
-      *)
-	set x "$@" "$1"
-	shift
-	;;
-    esac
-  fi
-  shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
-  # If no '-o' option was seen then we might have been invoked from a
-  # pattern rule where we don't need one.  That is ok -- this is a
-  # normal compilation that the losing compiler can handle.  If no
-  # '.c' file was seen then we are probably linking.  That is also
-  # ok.
-  exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file.  Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
-  if mkdir "$lockdir" >/dev/null 2>&1; then
-    break
-  fi
-  sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
-  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
-  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/conf/config.guess b/conf/config.guess
deleted file mode 100755
index 9afd676..0000000
--- a/conf/config.guess
+++ /dev/null
@@ -1,1568 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright 1992-2013 Free Software Foundation, Inc.
-
-timestamp='2013-11-29'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program.  This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-#
-# Originally written by Per Bothner.
-#
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-#
-# Please send patches with a ChangeLog entry to config-patches at gnu.org.
-
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi at noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-case "${UNAME_SYSTEM}" in
-Linux|GNU|GNU/*)
-	# If the system lacks a compiler, then just pick glibc.
-	# We could probably try harder.
-	LIBC=gnu
-
-	eval $set_cc_for_build
-	cat <<-EOF > $dummy.c
-	#include <features.h>
-	#if defined(__UCLIBC__)
-	LIBC=uclibc
-	#elif defined(__dietlibc__)
-	LIBC=dietlibc
-	#else
-	LIBC=gnu
-	#endif
-	EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	;;
-esac
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    sh5el) machine=sh5le-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep -q __ELF__
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-		os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit ;;
-    *:Bitrig:*:*)
-	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
-	exit ;;
-    *:OpenBSD:*:*)
-	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-	exit ;;
-    *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit ;;
-    *:SolidBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
-	exit ;;
-    macppc:MirBSD:*:*)
-	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
-	exit ;;
-    *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit ;;
-    alpha:OSF1:*:*)
-	case $UNAME_RELEASE in
-	*4.0)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-		;;
-	*5.*)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-		;;
-	esac
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Pn.n version is a patched version.
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-	exitcode=$?
-	trap '' 0
-	exit $exitcode ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit ;;
-    *:z/VM:*:*)
-	echo s390-ibm-zvmoe
-	exit ;;
-    *:OS400:*:*)
-	echo powerpc-ibm-os400
-	exit ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit ;;
-    arm*:riscos:*:*|arm*:RISCOS:*:*)
-	echo arm-unknown-riscos
-	exit ;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit ;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit ;;
-    DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7; exit ;;
-	esac ;;
-    s390x:SunOS:*:*)
-	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-	echo i386-pc-auroraux${UNAME_RELEASE}
-	exit ;;
-    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	eval $set_cc_for_build
-	SUN_ARCH="i386"
-	# If there is a compiler, see if it is configured for 64-bit objects.
-	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_64BIT_ARCH >/dev/null
-	    then
-		SUN_ARCH="x86_64"
-	    fi
-	fi
-	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-	echo m68k-milan-mint${UNAME_RELEASE}
-	exit ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-	echo m68k-hades-mint${UNAME_RELEASE}
-	exit ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-	echo m68k-unknown-mint${UNAME_RELEASE}
-	exit ;;
-    m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
-	exit ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c &&
-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-	  SYSTEM_NAME=`$dummy $dummyarg` &&
-	    { echo "$SYSTEM_NAME"; exit; }
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit ;;
-    AViiON:dgux:*:*)
-	# DG/UX returns AViiON for all architectures
-	UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
-	exit ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit ;;
-    ia64:AIX:*:*)
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-		then
-			echo "$SYSTEM_NAME"
-		else
-			echo rs6000-ibm-aix3.2.5
-		fi
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit ;;
-    *:AIX:*:[4567])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit ;;                             # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit ;;
-    9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-		if [ -x /usr/bin/getconf ]; then
-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-		    case "${sc_cpu_version}" in
-		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-		      532)                      # CPU_PA_RISC2_0
-			case "${sc_kernel_bits}" in
-			  32) HP_ARCH="hppa2.0n" ;;
-			  64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-			esac ;;
-		    esac
-		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^		//' << EOF >$dummy.c
-
-		#define _HPUX_SOURCE
-		#include <stdlib.h>
-		#include <unistd.h>
-
-		int main ()
-		{
-		#if defined(_SC_KERNEL_BITS)
-		    long bits = sysconf(_SC_KERNEL_BITS);
-		#endif
-		    long cpu  = sysconf (_SC_CPU_VERSION);
-
-		    switch (cpu)
-			{
-			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-			case CPU_PA_RISC2_0:
-		#if defined(_SC_KERNEL_BITS)
-			    switch (bits)
-				{
-				case 64: puts ("hppa2.0w"); break;
-				case 32: puts ("hppa2.0n"); break;
-				default: puts ("hppa2.0"); break;
-				} break;
-		#else  /* !defined(_SC_KERNEL_BITS) */
-			    puts ("hppa2.0"); break;
-		#endif
-			default: puts ("hppa1.0"); break;
-			}
-		    exit (0);
-		}
-EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-		    test -z "$HP_ARCH" && HP_ARCH=hppa
-		fi ;;
-	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
-	then
-	    eval $set_cc_for_build
-
-	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-	    # generating 64-bit code.  GNU and HP use different nomenclature:
-	    #
-	    # $ CC_FOR_BUILD=cc ./config.guess
-	    # => hppa2.0w-hp-hpux11.23
-	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-	    # => hppa64-hp-hpux11.23
-
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep -q __LP64__
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit ;;
-    3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-		{ echo "$SYSTEM_NAME"; exit; }
-	echo unknown-hitachi-hiuxwe2
-	exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-	exit ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-	exit ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-	exit ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-	exit ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-	      -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
-    5000:UNIX_System_V:4.*:*)
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit ;;
-    *:FreeBSD:*:*)
-	UNAME_PROCESSOR=`/usr/bin/uname -p`
-	case ${UNAME_PROCESSOR} in
-	    amd64)
-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	    *)
-		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	esac
-	exit ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit ;;
-    *:MINGW64*:*)
-	echo ${UNAME_MACHINE}-pc-mingw64
-	exit ;;
-    *:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit ;;
-    i*:MSYS*:*)
-	echo ${UNAME_MACHINE}-pc-msys
-	exit ;;
-    i*:windows32*:*)
-	# uname -m includes "-pc" on this system.
-	echo ${UNAME_MACHINE}-mingw32
-	exit ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit ;;
-    *:Interix*:*)
-	case ${UNAME_MACHINE} in
-	    x86)
-		echo i586-pc-interix${UNAME_RELEASE}
-		exit ;;
-	    authenticamd | genuineintel | EM64T)
-		echo x86_64-unknown-interix${UNAME_RELEASE}
-		exit ;;
-	    IA64)
-		echo ia64-unknown-interix${UNAME_RELEASE}
-		exit ;;
-	esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit ;;
-    8664:Windows_NT:*)
-	echo x86_64-pc-mks
-	exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit ;;
-    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-	echo x86_64-unknown-cygwin
-	exit ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    *:GNU:*:*)
-	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit ;;
-    *:GNU/*:*:*)
-	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
-	exit ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit ;;
-    aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    aarch64_be:Linux:*:*)
-	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-	esac
-	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    arc:Linux:*:* | arceb:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    arm*:Linux:*:*)
-	eval $set_cc_for_build
-	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-	    | grep -q __ARM_EABI__
-	then
-	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	else
-	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-		| grep -q __ARM_PCS_VFP
-	    then
-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
-	    else
-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
-	    fi
-	fi
-	exit ;;
-    avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
-	exit ;;
-    crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
-	exit ;;
-    frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    i*86:Linux:*:*)
-	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
-	exit ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    mips:Linux:*:* | mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef ${UNAME_MACHINE}
-	#undef ${UNAME_MACHINE}el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=${UNAME_MACHINE}el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=${UNAME_MACHINE}
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
-	;;
-    or1k:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    padre:Linux:*:*)
-	echo sparc-unknown-linux-${LIBC}
-	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-${LIBC}
-	exit ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-	# Look for CPU level
-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-	  *)    echo hppa-unknown-linux-${LIBC} ;;
-	esac
-	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-${LIBC}
-	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-${LIBC}
-	exit ;;
-    ppc64le:Linux:*:*)
-	echo powerpc64le-unknown-linux-${LIBC}
-	exit ;;
-    ppcle:Linux:*:*)
-	echo powerpcle-unknown-linux-${LIBC}
-	exit ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
-	exit ;;
-    sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
-	exit ;;
-    x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-	exit ;;
-    i*86:DYNIX/ptx:4*:*)
-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-	# earlier versions are messed up and put the nodename in both
-	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-	# Unixware is an offshoot of SVR4, but it has its own version
-	# number series starting with 2...
-	# I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-	# Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit ;;
-    i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
-	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit ;;
-    i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
-	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit ;;
-    i*86:*:5:[678]*)
-	# UnixWare 7.x, OpenUNIX and OpenServer 6.
-	case `/bin/uname -X | grep "^Machine"` in
-	    *486*)	     UNAME_MACHINE=i486 ;;
-	    *Pentium)	     UNAME_MACHINE=i586 ;;
-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit ;;
-    i*86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-	# uname -m prints for DJGPP always 'pc', but it prints nothing about
-	# the processor, so we play safe by assuming i586.
-	# Note: whatever this is, it MUST be the same as what config.sub
-	# prints for the "djgpp" host, or else GDB configury will decide that
-	# this is a cross-build.
-	echo i586-pc-msdosdjgpp
-	exit ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit ;;
-    M68*:*:R3V[5678]*:*)
-	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4; exit; } ;;
-    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-	OS_REL='.3'
-	test -r /etc/.relid \
-	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit ;;
-    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-			# says <Richard.M.Bartel at ccMail.Census.GOV>
-	echo i586-unisys-sysv4
-	exit ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes at openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit ;;
-    *:*:*:FTX*)
-	# From seanf at swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit ;;
-    i*86:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo ${UNAME_MACHINE}-stratus-vos
-	exit ;;
-    *:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo hppa1.1-stratus-vos
-	exit ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-		echo mips-nec-sysv${UNAME_RELEASE}
-	else
-		echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-	exit ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit ;;
-    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
-	echo i586-pc-haiku
-	exit ;;
-    x86_64:Haiku:*:*)
-	echo x86_64-unknown-haiku
-	exit ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-7:SUPER-UX:*:*)
-	echo sx7-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-8:SUPER-UX:*:*)
-	echo sx8-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-8R:SUPER-UX:*:*)
-	echo sx8r-nec-superux${UNAME_RELEASE}
-	exit ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit ;;
-    *:Darwin:*:*)
-	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	eval $set_cc_for_build
-	if test "$UNAME_PROCESSOR" = unknown ; then
-	    UNAME_PROCESSOR=powerpc
-	fi
-	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		    grep IS_64BIT_ARCH >/dev/null
-		then
-		    case $UNAME_PROCESSOR in
-			i386) UNAME_PROCESSOR=x86_64 ;;
-			powerpc) UNAME_PROCESSOR=powerpc64 ;;
-		    esac
-		fi
-	    fi
-	elif test "$UNAME_PROCESSOR" = i386 ; then
-	    # Avoid executing cc on OS X 10.9, as it ships with a stub
-	    # that puts up a graphical alert prompting to install
-	    # developer tools.  Any system running Mac OS X 10.7 or
-	    # later (Darwin 11 and later) is required to have a 64-bit
-	    # processor. This is not true of the ARM version of Darwin
-	    # that Apple uses in portable devices.
-	    UNAME_PROCESSOR=x86_64
-	fi
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
-	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
-	echo neo-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    NSE-*:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit ;;
-    *:Plan9:*:*)
-	# "uname -m" is not consistent, so use $cputype instead. 386
-	# is converted to i386 for consistency with other x86
-	# operating systems.
-	if test "$cputype" = "386"; then
-	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
-	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
-	exit ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit ;;
-    SEI:*:*:SEIUX)
-	echo mips-sei-seiux${UNAME_RELEASE}
-	exit ;;
-    *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit ;;
-    *:*VMS:*:*)
-	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms ; exit ;;
-	    I*) echo ia64-dec-vms ; exit ;;
-	    V*) echo vax-dec-vms ; exit ;;
-	esac ;;
-    *:XENIX:*:SysV)
-	echo i386-pc-xenix
-	exit ;;
-    i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-	exit ;;
-    i*86:rdos:*:*)
-	echo ${UNAME_MACHINE}-pc-rdos
-	exit ;;
-    i*86:AROS:*:*)
-	echo ${UNAME_MACHINE}-pc-aros
-	exit ;;
-    x86_64:VMkernel:*:*)
-	echo ${UNAME_MACHINE}-unknown-esx
-	exit ;;
-esac
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-	"4"
-#else
-	""
-#endif
-	); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/conf/config.sub b/conf/config.sub
deleted file mode 100755
index 61cb4bc..0000000
--- a/conf/config.sub
+++ /dev/null
@@ -1,1793 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright 1992-2013 Free Software Foundation, Inc.
-
-timestamp='2013-10-01'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program.  This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-
-
-# Please send patches with a ChangeLog entry to config-patches at gnu.org.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright 1992-2013 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit ;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
-  kopensolaris*-gnu* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  android-linux)
-    os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze*)
-		os=
-		basic_machine=$1
-		;;
-	-bluegene*)
-		os=-cnk
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
-	-chorusrdb)
-		os=-chorusrdb
-		basic_machine=$1
-		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco6)
-		os=-sco5v6
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5v6*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*178)
-		os=-lynxos178
-		;;
-	-lynx*5)
-		os=-lynxos5
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| aarch64 | aarch64_be \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| am33_2.0 \
-	| arc | arceb \
-	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
-	| avr | avr32 \
-	| be32 | be64 \
-	| bfin \
-	| c4x | c8051 | clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| epiphany \
-	| fido | fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| hexagon \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k | iq2000 \
-	| k1om \
-	| le32 | le64 \
-	| lm32 \
-	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64octeon | mips64octeonel \
-	| mips64orion | mips64orionel \
-	| mips64r5900 | mips64r5900el \
-	| mips64vr | mips64vrel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mips64vr5900 | mips64vr5900el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipsr5900 | mipsr5900el \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| moxie \
-	| mt \
-	| msp430 \
-	| nds32 | nds32le | nds32be \
-	| nios | nios2 | nios2eb | nios2el \
-	| ns16k | ns32k \
-	| open8 \
-	| or1k | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle \
-	| pyramid \
-	| rl78 | rx \
-	| score \
-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-	| spu \
-	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-	| ubicom32 \
-	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-	| we32k \
-	| x86 | xc16x | xstormy16 | xtensa \
-	| z8k | z80)
-		basic_machine=$basic_machine-unknown
-		;;
-	c54x)
-		basic_machine=tic54x-unknown
-		;;
-	c55x)
-		basic_machine=tic55x-unknown
-		;;
-	c6x)
-		basic_machine=tic6x-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-	ms1)
-		basic_machine=mt-unknown
-		;;
-
-	strongarm | thumb | xscale)
-		basic_machine=arm-unknown
-		;;
-	xgate)
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	xscaleeb)
-		basic_machine=armeb-unknown
-		;;
-
-	xscaleel)
-		basic_machine=armel-unknown
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| aarch64-* | aarch64_be-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* | avr32-* \
-	| be32-* | be64-* \
-	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| c8051-* | clipper-* | craynv-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| hexagon-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| k1om-* \
-	| le32-* | le64-* \
-	| lm32-* \
-	| m32c-* | m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-	| microblaze-* | microblazeel-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64octeon-* | mips64octeonel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64r5900-* | mips64r5900el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mips64vr5900-* | mips64vr5900el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipsr5900-* | mipsr5900el-* \
-	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
-	| mt-* \
-	| msp430-* \
-	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* | nios2eb-* | nios2el-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
-	| open8-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-	| pyramid-* \
-	| rl78-* | romp-* | rs6000-* | rx-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
-	| tahoe-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tile*-* \
-	| tron-* \
-	| ubicom32-* \
-	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-	| vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xc16x-* | xps100-* \
-	| xstormy16-* | xtensa*-* \
-	| ymp-* \
-	| z8k-* | z80-*)
-		;;
-	# Recognize the basic CPU types without company name, with glob match.
-	xtensa*)
-		basic_machine=$basic_machine-unknown
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aros)
-		basic_machine=i386-pc
-		os=-aros
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	blackfin)
-		basic_machine=bfin-unknown
-		os=-linux
-		;;
-	blackfin-*)
-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	bluegene*)
-		basic_machine=powerpc-ibm
-		os=-cnk
-		;;
-	c54x-*)
-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c55x-*)
-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c6x-*)
-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	cegcc)
-		basic_machine=arm-unknown
-		os=-cegcc
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
-	cr16 | cr16-*)
-		basic_machine=cr16-unknown
-		os=-elf
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	crisv32 | crisv32-* | etraxfs*)
-		basic_machine=crisv32-axis
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	crx)
-		basic_machine=crx-unknown
-		os=-elf
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dicos)
-		basic_machine=i686-pc
-		os=-dicos
-		;;
-	djgpp)
-		basic_machine=i586-pc
-		os=-msdosdjgpp
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m68knommu)
-		basic_machine=m68k-unknown
-		os=-linux
-		;;
-	m68knommu-*)
-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	microblaze*)
-		basic_machine=microblaze-xilinx
-		;;
-	mingw64)
-		basic_machine=x86_64-pc
-		os=-mingw64
-		;;
-	mingw32)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	mingw32ce)
-		basic_machine=arm-unknown
-		os=-mingw32ce
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	ms1-*)
-		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-		;;
-	msys)
-		basic_machine=i686-pc
-		os=-msys
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	nacl)
-		basic_machine=le32-unknown
-		os=-nacl
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	neo-tandem)
-		basic_machine=neo-tandem
-		;;
-	nse-tandem)
-		basic_machine=nse-tandem
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	openrisc | openrisc-*)
-		basic_machine=or32-unknown
-		;;
-	os400)
-		basic_machine=powerpc-ibm
-		os=-os400
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	parisc)
-		basic_machine=hppa-unknown
-		os=-linux
-		;;
-	parisc-*)
-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pc98)
-		basic_machine=i386-pc
-		;;
-	pc98-*)
-		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
-		;;
-	pentium4)
-		basic_machine=i786-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc | ppcbe)	basic_machine=powerpc-unknown
-		;;
-	ppc-* | ppcbe-*)
-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rdos | rdos64)
-		basic_machine=x86_64-pc
-		os=-rdos
-		;;
-	rdos32)
-		basic_machine=i386-pc
-		os=-rdos
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sde)
-		basic_machine=mipsisa32-sde
-		os=-elf
-		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sh5el)
-		basic_machine=sh5le-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	strongarm-* | thumb-*)
-		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-	tile*)
-		basic_machine=$basic_machine-unknown
-		os=-linux-gnu
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	tpf)
-		basic_machine=s390x-ibm
-		os=-tpf
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xbox)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	xscale-* | xscalee[bl]-*)
-		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	z80-*-coff)
-		basic_machine=z80-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	mmix)
-		basic_machine=mmix-knuth
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-	# First match some system type aliases
-	# that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-auroraux)
-		os=-auroraux
-		;;
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* | -plan9* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -bitrig* | -openbsd* | -solidbsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
-	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
-			;;
-		    *)
-			os=-nto$os
-			;;
-		esac
-		;;
-	-nto-qnx*)
-		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-	-os400*)
-		os=-os400
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-syllable*)
-		os=-syllable
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2 )
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-	-tpf*)
-		os=-tpf
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
-		;;
-	-aros*)
-		os=-aros
-		;;
-	-zvmoe)
-		os=-zvmoe
-		;;
-	-dicos*)
-		os=-dicos
-		;;
-	-nacl*)
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	score-*)
-		os=-elf
-		;;
-	spu-*)
-		os=-elf
-		;;
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-	c4x-* | tic4x-*)
-		os=-coff
-		;;
-	c8051-*)
-		os=-elf
-		;;
-	hexagon-*)
-		os=-elf
-		;;
-	tic54x-*)
-		os=-coff
-		;;
-	tic55x-*)
-		os=-coff
-		;;
-	tic6x-*)
-		os=-coff
-		;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mep-*)
-		os=-elf
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	or1k-*)
-		os=-elf
-		;;
-	or32-*)
-		os=-coff
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-haiku)
-		os=-haiku
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-knuth)
-		os=-mmixware
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-cnk*|-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-os400*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-tpf*)
-				vendor=ibm
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/conf/depcomp b/conf/depcomp
deleted file mode 100755
index 4ebd5b3..0000000
--- a/conf/depcomp
+++ /dev/null
@@ -1,791 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2013-05-30.07; # UTC
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
-
-case $1 in
-  '')
-    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
-    exit 1;
-    ;;
-  -h | --h*)
-    cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
-  depmode     Dependency tracking mode.
-  source      Source file read by 'PROGRAMS ARGS'.
-  object      Object file output by 'PROGRAMS ARGS'.
-  DEPDIR      directory where to store dependencies.
-  depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputting dependencies.
-  libtool     Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake at gnu.org>.
-EOF
-    exit $?
-    ;;
-  -v | --v*)
-    echo "depcomp $scriptversion"
-    exit $?
-    ;;
-esac
-
-# Get the directory component of the given path, and save it in the
-# global variables '$dir'.  Note that this directory component will
-# be either empty or ending with a '/' character.  This is deliberate.
-set_dir_from ()
-{
-  case $1 in
-    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
-      *) dir=;;
-  esac
-}
-
-# Get the suffix-stripped basename of the given path, and save it the
-# global variable '$base'.
-set_base_from ()
-{
-  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
-}
-
-# If no dependency file was actually created by the compiler invocation,
-# we still have to create a dummy depfile, to avoid errors with the
-# Makefile "include basename.Plo" scheme.
-make_dummy_depfile ()
-{
-  echo "#dummy" > "$depfile"
-}
-
-# Factor out some common post-processing of the generated depfile.
-# Requires the auxiliary global variable '$tmpdepfile' to be set.
-aix_post_process_depfile ()
-{
-  # If the compiler actually managed to produce a dependency file,
-  # post-process it.
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependency.h'.
-    # Do two passes, one to just change these to
-    #   $object: dependency.h
-    # and one to simply output
-    #   dependency.h:
-    # which is needed to avoid the deleted-header problem.
-    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
-      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
-    } > "$depfile"
-    rm -f "$tmpdepfile"
-  else
-    make_dummy_depfile
-  fi
-}
-
-# A tabulation character.
-tab='	'
-# A newline character.
-nl='
-'
-# Character ranges might be problematic outside the C locale.
-# These definitions help.
-upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
-lower=abcdefghijklmnopqrstuvwxyz
-digits=0123456789
-alpha=${upper}${lower}
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
-  echo "depcomp: Variables source, object and depmode must be set" 1>&2
-  exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
-  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Avoid interferences from the environment.
-gccflag= dashmflag=
-
-# Some modes work just like other modes, but use different flags.  We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write.  Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
-  # HP compiler uses -M and no extra arg.
-  gccflag=-M
-  depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
-  # This is just like dashmstdout with a different argument.
-  dashmflag=-xM
-  depmode=dashmstdout
-fi
-
-cygpath_u="cygpath -u -f -"
-if test "$depmode" = msvcmsys; then
-  # This is just like msvisualcpp but w/o cygpath translation.
-  # Just convert the backslash-escaped backslashes to single forward
-  # slashes to satisfy depend.m4
-  cygpath_u='sed s,\\\\,/,g'
-  depmode=msvisualcpp
-fi
-
-if test "$depmode" = msvc7msys; then
-  # This is just like msvc7 but w/o cygpath translation.
-  # Just convert the backslash-escaped backslashes to single forward
-  # slashes to satisfy depend.m4
-  cygpath_u='sed s,\\\\,/,g'
-  depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
-  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
-  gccflag=-qmakedep=gcc,-MF
-  depmode=gcc
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff.  Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am.  Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
-  for arg
-  do
-    case $arg in
-    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
-    *)  set fnord "$@" "$arg" ;;
-    esac
-    shift # fnord
-    shift # $arg
-  done
-  "$@"
-  stat=$?
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  mv "$tmpdepfile" "$depfile"
-  ;;
-
-gcc)
-## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
-## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
-## (see the conditional assignment to $gccflag above).
-## There are various ways to get dependency output from gcc.  Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-##   up in a subdir.  Having to rename by hand is ugly.
-##   (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).  Also, it might not be
-##   supported by the other compilers which use the 'gcc' depmode.
-## - Using -M directly means running the compiler twice (even worse
-##   than renaming).
-  if test -z "$gccflag"; then
-    gccflag=-MD,
-  fi
-  "$@" -Wp,"$gccflag$tmpdepfile"
-  stat=$?
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  # The second -e expression handles DOS-style file names with drive
-  # letters.
-  sed -e 's/^[^:]*: / /' \
-      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header).  We avoid this by adding
-## dummy dependencies for each header file.  Too bad gcc doesn't do
-## this for us directly.
-## Some versions of gcc put a space before the ':'.  On the theory
-## that the space means something, we add a space to the output as
-## well.  hp depmode also adds that space, but also prefixes the VPATH
-## to the object.  Take care to not repeat it in the output.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-  tr ' ' "$nl" < "$tmpdepfile" \
-    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-    | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-hp)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
-sgi)
-  if test "$libtool" = yes; then
-    "$@" "-Wp,-MDupdate,$tmpdepfile"
-  else
-    "$@" -MDupdate "$tmpdepfile"
-  fi
-  stat=$?
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-
-  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
-    echo "$object : \\" > "$depfile"
-    # Clip off the initial element (the dependent).  Don't try to be
-    # clever and replace this with sed code, as IRIX sed won't handle
-    # lines with more than a fixed number of characters (4096 in
-    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like '#:fec' to the end of the
-    # dependency line.
-    tr ' ' "$nl" < "$tmpdepfile" \
-      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
-      | tr "$nl" ' ' >> "$depfile"
-    echo >> "$depfile"
-    # The second pass generates a dummy entry for each header file.
-    tr ' ' "$nl" < "$tmpdepfile" \
-      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-      >> "$depfile"
-  else
-    make_dummy_depfile
-  fi
-  rm -f "$tmpdepfile"
-  ;;
-
-xlc)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
-aix)
-  # The C for AIX Compiler uses -M and outputs the dependencies
-  # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts '$object:' at the
-  # start of each line; $object doesn't have directory information.
-  # Version 6 uses the directory in both cases.
-  set_dir_from "$object"
-  set_base_from "$object"
-  if test "$libtool" = yes; then
-    tmpdepfile1=$dir$base.u
-    tmpdepfile2=$base.u
-    tmpdepfile3=$dir.libs/$base.u
-    "$@" -Wc,-M
-  else
-    tmpdepfile1=$dir$base.u
-    tmpdepfile2=$dir$base.u
-    tmpdepfile3=$dir$base.u
-    "$@" -M
-  fi
-  stat=$?
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-    exit $stat
-  fi
-
-  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-  do
-    test -f "$tmpdepfile" && break
-  done
-  aix_post_process_depfile
-  ;;
-
-tcc)
-  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
-  # FIXME: That version still under development at the moment of writing.
-  #        Make that this statement remains true also for stable, released
-  #        versions.
-  # It will wrap lines (doesn't matter whether long or short) with a
-  # trailing '\', as in:
-  #
-  #   foo.o : \
-  #    foo.c \
-  #    foo.h \
-  #
-  # It will put a trailing '\' even on the last line, and will use leading
-  # spaces rather than leading tabs (at least since its commit 0394caf7
-  # "Emit spaces for -MD").
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
-  # We have to change lines of the first kind to '$object: \'.
-  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
-  # And for each line of the second kind, we have to emit a 'dep.h:'
-  # dummy dependency, to avoid the deleted-header problem.
-  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-## The order of this option in the case statement is important, since the
-## shell code in configure will try each of these formats in the order
-## listed in this file.  A plain '-MD' option would be understood by many
-## compilers, so we must ensure this comes after the gcc and icc options.
-pgcc)
-  # Portland's C compiler understands '-MD'.
-  # Will always output deps to 'file.d' where file is the root name of the
-  # source file under compilation, even if file resides in a subdirectory.
-  # The object file name does not affect the name of the '.d' file.
-  # pgcc 10.2 will output
-  #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\' :
-  #    foo.o: sub/foo.c ... \
-  #     sub/foo.h ... \
-  #     ...
-  set_dir_from "$object"
-  # Use the source, not the object, to determine the base name, since
-  # that's sadly what pgcc will do too.
-  set_base_from "$source"
-  tmpdepfile=$base.d
-
-  # For projects that build the same source file twice into different object
-  # files, the pgcc approach of using the *source* file root name can cause
-  # problems in parallel builds.  Use a locking strategy to avoid stomping on
-  # the same $tmpdepfile.
-  lockdir=$base.d-lock
-  trap "
-    echo '$0: caught signal, cleaning up...' >&2
-    rmdir '$lockdir'
-    exit 1
-  " 1 2 13 15
-  numtries=100
-  i=$numtries
-  while test $i -gt 0; do
-    # mkdir is a portable test-and-set.
-    if mkdir "$lockdir" 2>/dev/null; then
-      # This process acquired the lock.
-      "$@" -MD
-      stat=$?
-      # Release the lock.
-      rmdir "$lockdir"
-      break
-    else
-      # If the lock is being held by a different process, wait
-      # until the winning process is done or we timeout.
-      while test -d "$lockdir" && test $i -gt 0; do
-        sleep 1
-        i=`expr $i - 1`
-      done
-    fi
-    i=`expr $i - 1`
-  done
-  trap - 1 2 13 15
-  if test $i -le 0; then
-    echo "$0: failed to acquire lock after $numtries attempts" >&2
-    echo "$0: check lockdir '$lockdir'" >&2
-    exit 1
-  fi
-
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  # Each line is of the form `foo.o: dependent.h',
-  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
-  # Do two passes, one to just change these to
-  # `$object: dependent.h' and one to simply `dependent.h:'.
-  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
-    | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-hp2)
-  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
-  # compilers, which have integrated preprocessors.  The correct option
-  # to use with these is +Maked; it writes dependencies to a file named
-  # 'foo.d', which lands next to the object file, wherever that
-  # happens to be.
-  # Much of this is similar to the tru64 case; see comments there.
-  set_dir_from  "$object"
-  set_base_from "$object"
-  if test "$libtool" = yes; then
-    tmpdepfile1=$dir$base.d
-    tmpdepfile2=$dir.libs/$base.d
-    "$@" -Wc,+Maked
-  else
-    tmpdepfile1=$dir$base.d
-    tmpdepfile2=$dir$base.d
-    "$@" +Maked
-  fi
-  stat=$?
-  if test $stat -ne 0; then
-     rm -f "$tmpdepfile1" "$tmpdepfile2"
-     exit $stat
-  fi
-
-  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
-  do
-    test -f "$tmpdepfile" && break
-  done
-  if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add 'dependent.h:' lines.
-    sed -ne '2,${
-               s/^ *//
-               s/ \\*$//
-               s/$/:/
-               p
-             }' "$tmpdepfile" >> "$depfile"
-  else
-    make_dummy_depfile
-  fi
-  rm -f "$tmpdepfile" "$tmpdepfile2"
-  ;;
-
-tru64)
-  # The Tru64 compiler uses -MD to generate dependencies as a side
-  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
-  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-  # dependencies in 'foo.d' instead, so we check for that too.
-  # Subdirectories are respected.
-  set_dir_from  "$object"
-  set_base_from "$object"
-
-  if test "$libtool" = yes; then
-    # Libtool generates 2 separate objects for the 2 libraries.  These
-    # two compilations output dependencies in $dir.libs/$base.o.d and
-    # in $dir$base.o.d.  We have to check for both files, because
-    # one of the two compilations can be disabled.  We should prefer
-    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-    # automatically cleaned when .libs/ is deleted, while ignoring
-    # the former would cause a distcleancheck panic.
-    tmpdepfile1=$dir$base.o.d          # libtool 1.5
-    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
-    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
-    "$@" -Wc,-MD
-  else
-    tmpdepfile1=$dir$base.d
-    tmpdepfile2=$dir$base.d
-    tmpdepfile3=$dir$base.d
-    "$@" -MD
-  fi
-
-  stat=$?
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-    exit $stat
-  fi
-
-  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-  do
-    test -f "$tmpdepfile" && break
-  done
-  # Same post-processing that is required for AIX mode.
-  aix_post_process_depfile
-  ;;
-
-msvc7)
-  if test "$libtool" = yes; then
-    showIncludes=-Wc,-showIncludes
-  else
-    showIncludes=-showIncludes
-  fi
-  "$@" $showIncludes > "$tmpdepfile"
-  stat=$?
-  grep -v '^Note: including file: ' "$tmpdepfile"
-  if test $stat -ne 0; then
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  # The first sed program below extracts the file names and escapes
-  # backslashes for cygpath.  The second sed program outputs the file
-  # name when reading, but also accumulates all include files in the
-  # hold buffer in order to output them again at the end.  This only
-  # works with sed implementations that can handle large buffers.
-  sed < "$tmpdepfile" -n '
-/^Note: including file:  *\(.*\)/ {
-  s//\1/
-  s/\\/\\\\/g
-  p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
-  s/.*/'"$tab"'/
-  G
-  p
-}' >> "$depfile"
-  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
-  rm -f "$tmpdepfile"
-  ;;
-
-msvc7msys)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
-#nosideeffect)
-  # This comment above is used by automake to tell side-effect
-  # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
-  # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o.
-  "$@" || exit $?
-
-  # Remove the call to Libtool.
-  if test "$libtool" = yes; then
-    while test "X$1" != 'X--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-
-  # Remove '-o $object'.
-  IFS=" "
-  for arg
-  do
-    case $arg in
-    -o)
-      shift
-      ;;
-    $object)
-      shift
-      ;;
-    *)
-      set fnord "$@" "$arg"
-      shift # fnord
-      shift # $arg
-      ;;
-    esac
-  done
-
-  test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for ':'
-  # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
-  "$@" $dashmflag |
-    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
-  rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this sed invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  tr ' ' "$nl" < "$tmpdepfile" \
-    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
-    | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-dashXmstdout)
-  # This case only exists to satisfy depend.m4.  It is never actually
-  # run, as this mode is specially recognized in the preamble.
-  exit 1
-  ;;
-
-makedepend)
-  "$@" || exit $?
-  # Remove any Libtool call
-  if test "$libtool" = yes; then
-    while test "X$1" != 'X--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-  # X makedepend
-  shift
-  cleared=no eat=no
-  for arg
-  do
-    case $cleared in
-    no)
-      set ""; shift
-      cleared=yes ;;
-    esac
-    if test $eat = yes; then
-      eat=no
-      continue
-    fi
-    case "$arg" in
-    -D*|-I*)
-      set fnord "$@" "$arg"; shift ;;
-    # Strip any option that makedepend may not understand.  Remove
-    # the object too, otherwise makedepend will parse it as a source file.
-    -arch)
-      eat=yes ;;
-    -*|$object)
-      ;;
-    *)
-      set fnord "$@" "$arg"; shift ;;
-    esac
-  done
-  obj_suffix=`echo "$object" | sed 's/^.*\././'`
-  touch "$tmpdepfile"
-  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
-  rm -f "$depfile"
-  # makedepend may prepend the VPATH from the source file name to the object.
-  # No need to regex-escape $object, excess matching of '.' is harmless.
-  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process the last invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed '1,2d' "$tmpdepfile" \
-    | tr ' ' "$nl" \
-    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
-    | sed -e 's/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile" "$tmpdepfile".bak
-  ;;
-
-cpp)
-  # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout.
-  "$@" || exit $?
-
-  # Remove the call to Libtool.
-  if test "$libtool" = yes; then
-    while test "X$1" != 'X--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-
-  # Remove '-o $object'.
-  IFS=" "
-  for arg
-  do
-    case $arg in
-    -o)
-      shift
-      ;;
-    $object)
-      shift
-      ;;
-    *)
-      set fnord "$@" "$arg"
-      shift # fnord
-      shift # $arg
-      ;;
-    esac
-  done
-
-  "$@" -E \
-    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-    | sed '$ s: \\$::' > "$tmpdepfile"
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  cat < "$tmpdepfile" >> "$depfile"
-  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-msvisualcpp)
-  # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout.
-  "$@" || exit $?
-
-  # Remove the call to Libtool.
-  if test "$libtool" = yes; then
-    while test "X$1" != 'X--mode=compile'; do
-      shift
-    done
-    shift
-  fi
-
-  IFS=" "
-  for arg
-  do
-    case "$arg" in
-    -o)
-      shift
-      ;;
-    $object)
-      shift
-      ;;
-    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-        set fnord "$@"
-        shift
-        shift
-        ;;
-    *)
-        set fnord "$@" "$arg"
-        shift
-        shift
-        ;;
-    esac
-  done
-  "$@" -E 2>/dev/null |
-  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
-  rm -f "$depfile"
-  echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
-  echo "$tab" >> "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
-  rm -f "$tmpdepfile"
-  ;;
-
-msvcmsys)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
-none)
-  exec "$@"
-  ;;
-
-*)
-  echo "Unknown depmode $depmode" 1>&2
-  exit 1
-  ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/conf/install-sh b/conf/install-sh
deleted file mode 100755
index 377bb86..0000000
--- a/conf/install-sh
+++ /dev/null
@@ -1,527 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2011-11-20.07; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# 'make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" ""	$nl"
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-no_target_directory=
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
-   or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-   or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
-     --help     display this help and exit.
-     --version  display version info and exit.
-
-  -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
-  -d            create directories instead of installing files.
-  -g GROUP      $chgrpprog installed files to GROUP.
-  -m MODE       $chmodprog installed files to MODE.
-  -o USER       $chownprog installed files to USER.
-  -s            $stripprog installed files.
-  -t DIRECTORY  install into DIRECTORY.
-  -T            report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
-  RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
-  case $1 in
-    -c) ;;
-
-    -C) copy_on_change=true;;
-
-    -d) dir_arg=true;;
-
-    -g) chgrpcmd="$chgrpprog $2"
-	shift;;
-
-    --help) echo "$usage"; exit $?;;
-
-    -m) mode=$2
-	case $mode in
-	  *' '* | *'	'* | *'
-'*	  | *'*'* | *'?'* | *'['*)
-	    echo "$0: invalid mode: $mode" >&2
-	    exit 1;;
-	esac
-	shift;;
-
-    -o) chowncmd="$chownprog $2"
-	shift;;
-
-    -s) stripcmd=$stripprog;;
-
-    -t) dst_arg=$2
-	# Protect names problematic for 'test' and other utilities.
-	case $dst_arg in
-	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
-	esac
-	shift;;
-
-    -T) no_target_directory=true;;
-
-    --version) echo "$0 $scriptversion"; exit $?;;
-
-    --)	shift
-	break;;
-
-    -*)	echo "$0: invalid option: $1" >&2
-	exit 1;;
-
-    *)  break;;
-  esac
-  shift
-done
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
-  # When -d is used, all remaining arguments are directories to create.
-  # When -t is used, the destination is already specified.
-  # Otherwise, the last argument is the destination.  Remove it from $@.
-  for arg
-  do
-    if test -n "$dst_arg"; then
-      # $@ is not empty: it contains at least $arg.
-      set fnord "$@" "$dst_arg"
-      shift # fnord
-    fi
-    shift # arg
-    dst_arg=$arg
-    # Protect names problematic for 'test' and other utilities.
-    case $dst_arg in
-      -* | [=\(\)!]) dst_arg=./$dst_arg;;
-    esac
-  done
-fi
-
-if test $# -eq 0; then
-  if test -z "$dir_arg"; then
-    echo "$0: no input file specified." >&2
-    exit 1
-  fi
-  # It's OK to call 'install-sh -d' without argument.
-  # This can happen when creating conditional directories.
-  exit 0
-fi
-
-if test -z "$dir_arg"; then
-  do_exit='(exit $ret); exit $ret'
-  trap "ret=129; $do_exit" 1
-  trap "ret=130; $do_exit" 2
-  trap "ret=141; $do_exit" 13
-  trap "ret=143; $do_exit" 15
-
-  # Set umask so as not to create temps with too-generous modes.
-  # However, 'strip' requires both read and write access to temps.
-  case $mode in
-    # Optimize common cases.
-    *644) cp_umask=133;;
-    *755) cp_umask=22;;
-
-    *[0-7])
-      if test -z "$stripcmd"; then
-	u_plus_rw=
-      else
-	u_plus_rw='% 200'
-      fi
-      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
-    *)
-      if test -z "$stripcmd"; then
-	u_plus_rw=
-      else
-	u_plus_rw=,u+rw
-      fi
-      cp_umask=$mode$u_plus_rw;;
-  esac
-fi
-
-for src
-do
-  # Protect names problematic for 'test' and other utilities.
-  case $src in
-    -* | [=\(\)!]) src=./$src;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    dstdir=$dst
-    test -d "$dstdir"
-    dstdir_status=$?
-  else
-
-    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
-    # might cause directories to be created, which would be especially bad
-    # if $src (and thus $dsttmp) contains '*'.
-    if test ! -f "$src" && test ! -d "$src"; then
-      echo "$0: $src does not exist." >&2
-      exit 1
-    fi
-
-    if test -z "$dst_arg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-    dst=$dst_arg
-
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
-	exit 1
-      fi
-      dstdir=$dst
-      dst=$dstdir/`basename "$src"`
-      dstdir_status=0
-    else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-	(dirname "$dst") 2>/dev/null ||
-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	     X"$dst" : 'X\(//\)[^/]' \| \
-	     X"$dst" : 'X\(//\)$' \| \
-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-	echo X"$dst" |
-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)[^/].*/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\).*/{
-		   s//\1/
-		   q
-		 }
-		 s/.*/./; q'
-      `
-
-      test -d "$dstdir"
-      dstdir_status=$?
-    fi
-  fi
-
-  obsolete_mkdir_used=false
-
-  if test $dstdir_status != 0; then
-    case $posix_mkdir in
-      '')
-	# Create intermediate dirs using mode 755 as modified by the umask.
-	# This is like FreeBSD 'install' as of 1997-10-28.
-	umask=`umask`
-	case $stripcmd.$umask in
-	  # Optimize common cases.
-	  *[2367][2367]) mkdir_umask=$umask;;
-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-	  *[0-7])
-	    mkdir_umask=`expr $umask + 22 \
-	      - $umask % 100 % 40 + $umask % 20 \
-	      - $umask % 10 % 4 + $umask % 2
-	    `;;
-	  *) mkdir_umask=$umask,go-w;;
-	esac
-
-	# With -d, create the new directory with the user-specified mode.
-	# Otherwise, rely on $mkdir_umask.
-	if test -n "$dir_arg"; then
-	  mkdir_mode=-m$mode
-	else
-	  mkdir_mode=
-	fi
-
-	posix_mkdir=false
-	case $umask in
-	  *[123567][0-7][0-7])
-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-	    ;;
-	  *)
-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-	    if (umask $mkdir_umask &&
-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-	    then
-	      if test -z "$dir_arg" || {
-		   # Check for POSIX incompatibilities with -m.
-		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writable bit of parent directory when it shouldn't.
-		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-		   case $ls_ld_tmpdir in
-		     d????-?r-*) different_mode=700;;
-		     d????-?--*) different_mode=755;;
-		     *) false;;
-		   esac &&
-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-		   }
-		 }
-	      then posix_mkdir=:
-	      fi
-	      rmdir "$tmpdir/d" "$tmpdir"
-	    else
-	      # Remove any dirs left behind by ancient mkdir implementations.
-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-	    fi
-	    trap '' 0;;
-	esac;;
-    esac
-
-    if
-      $posix_mkdir && (
-	umask $mkdir_umask &&
-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
-      )
-    then :
-    else
-
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
-      # or it failed possibly due to a race condition.  Create the
-      # directory the slow way, step by step, checking for races as we go.
-
-      case $dstdir in
-	/*) prefix='/';;
-	[-=\(\)!]*) prefix='./';;
-	*)  prefix='';;
-      esac
-
-      eval "$initialize_posix_glob"
-
-      oIFS=$IFS
-      IFS=/
-      $posix_glob set -f
-      set fnord $dstdir
-      shift
-      $posix_glob set +f
-      IFS=$oIFS
-
-      prefixes=
-
-      for d
-      do
-	test X"$d" = X && continue
-
-	prefix=$prefix$d
-	if test -d "$prefix"; then
-	  prefixes=
-	else
-	  if $posix_mkdir; then
-	    (umask=$mkdir_umask &&
-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-	    # Don't fail if two instances are running concurrently.
-	    test -d "$prefix" || exit 1
-	  else
-	    case $prefix in
-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-	      *) qprefix=$prefix;;
-	    esac
-	    prefixes="$prefixes '$qprefix'"
-	  fi
-	fi
-	prefix=$prefix/
-      done
-
-      if test -n "$prefixes"; then
-	# Don't fail if two instances are running concurrently.
-	(umask $mkdir_umask &&
-	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-	  test -d "$dstdir" || exit 1
-	obsolete_mkdir_used=true
-      fi
-    fi
-  fi
-
-  if test -n "$dir_arg"; then
-    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
-    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
-      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
-  else
-
-    # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
-
-    # Trap to clean up those temp files at exit.
-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
-    # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
-    # and set any options; do chmod last to preserve setuid bits.
-    #
-    # If any of these fail, we abort the whole thing.  If we want to
-    # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $cpprog $src $dsttmp" command.
-    #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
-    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
-    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
-    # If -C, don't bother to copy if it wouldn't change the file.
-    if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
-       set X $old && old=:$2:$4:$5:$6 &&
-       set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
-       test "$old" = "$new" &&
-       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
-    then
-      rm -f "$dsttmp"
-    else
-      # Rename the file to the real destination.
-      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
-      # The rename failed, perhaps because mv can't rename something else
-      # to itself, or perhaps because mv is so ancient that it does not
-      # support -f.
-      {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
-
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
-      }
-    fi || exit 1
-
-    trap '' 0
-  fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/conf/libtool.m4 b/conf/libtool.m4
deleted file mode 100644
index 44e0ecf..0000000
--- a/conf/libtool.m4
+++ /dev/null
@@ -1,7982 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-       [m4_default([$3],
-		   [m4_fatal([Libtool version $1 or higher is required],
-		             63)])],
-       [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
-  *\ * | *\	*)
-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    _LT_PATH_MAGIC
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME.  Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-	[m4_ifval([$1], [$1], [$2])])
-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-    m4_ifval([$4],
-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-    lt_dict_add_subkey([lt_decl_dict], [$2],
-	[tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
-  [0], [m4_fatal([$0: too few arguments: $#])],
-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
-     m4_if([$2], [],
-	   m4_quote(lt_decl_varnames),
-	m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly.  In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-#    # Some comment about what VAR is for.
-#    visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-					   [description])))[]dnl
-m4_pushdef([_libtool_name],
-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-    [0], [_libtool_name=[$]$1],
-    [1], [_libtool_name=$lt_[]$1],
-    [2], [_libtool_name=$lt_[]$1],
-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
-	dnl If the libtool generation code has been placed in $CONFIG_LT,
-	dnl instead of duplicating it all over again into config.status,
-	dnl then we will have config.status run $CONFIG_LT later, so it
-	dnl needs to know what name is stored there:
-        [AC_CONFIG_COMMANDS([libtool],
-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-    dnl If the libtool generation code is destined for config.status,
-    dnl expand the accumulated commands and init code now:
-    [AC_CONFIG_COMMANDS([libtool],
-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script.  The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
-  lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars.  Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-  m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  _LT_PROG_LTMAIN
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_REPLACE_SHELLFNS
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Go],			[_LT_LANG(GO)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-  [LT_SUPPORTED_TAG([$1])dnl
-  m4_append([_LT_TAGS], [$1 ])dnl
-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-  _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC],     [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
-  fi
-fi
-if test -z "$GOC"; then
-  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-  [LT_LANG(CXX)],
-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
-  [LT_LANG(F77)],
-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
-  [LT_LANG(FC)],
-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-  [LT_LANG(GCJ)],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-    [LT_LANG(GCJ)],
-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-      [LT_LANG(GCJ)],
-      [m4_ifdef([AC_PROG_GCJ],
-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([A][M_PROG_GCJ],
-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([LT_PROG_GCJ],
-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
-  [LT_LANG(GO)],
-  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
-  [LT_LANG(RC)],
-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-    AC_CHECK_TOOL([LIPO], [lipo], [:])
-    AC_CHECK_TOOL([OTOOL], [otool], [:])
-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-    _LT_DECL([], [DSYMUTIL], [1],
-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-    _LT_DECL([], [NMEDIT], [1],
-      [Tool to change global to local symbols on Mac OS X])
-    _LT_DECL([], [LIPO], [1],
-      [Tool to manipulate fat objects and archives on Mac OS X])
-    _LT_DECL([], [OTOOL], [1],
-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-    _LT_DECL([], [OTOOL64], [1],
-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	# If there is a non-empty error log, and "single_module"
-	# appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	# Otherwise, if the output was created with a 0 exit code from
-	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi])
-
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-	[lt_cv_ld_exported_symbols_list=yes],
-	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS="$save_LDFLAGS"
-    ])
-
-    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
-      [lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_automatic, $1)=yes
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
-                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
-  else
-    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-  fi
-  _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-],[])
-  else
-  _LT_TAGVAR(ld_shlibs, $1)=no
-  fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-  lt_aix_libpath_sed='[
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }]'
-  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi],[])
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
-  fi
-  ])
-  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*" 
-}
-
-case "$ECHO" in
-  printf*) AC_MSG_RESULT([printf]) ;;
-  print*) AC_MSG_RESULT([print -r]) ;;
-  *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
-  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test "X`printf %s $ECHO`" = "X$ECHO" \
-      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted.  We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   AC_MSG_RESULT([${with_sysroot}])
-   AC_MSG_ERROR([The sysroot must be an absolute path.])
-   ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-  [AS_HELP_STRING([--disable-libtool-lock],
-    [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-  [lt_cv_ar_at_file=no
-   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-     [echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-      AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	AC_TRY_EVAL([lt_ar_try])
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-     ])
-  ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
-  [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
-    [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
-    [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
-    [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}]
-_LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-	[Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
-         [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
-    [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
-	[], [
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[23]].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
-    [lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-	 [lt_cv_shlibpath_overrides_runpath=yes])])
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-    ])
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
-    [Variables whose values should be saved in libtool wrapper scripts and
-    restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
-    [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
-    [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
-    [[List of archive names.  First name is the real one, the rest are links.
-    The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
-    [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
-    [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
-    [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
-    [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
-    [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
-    [[As "finish_cmds", except a single script fragment to be evaled but
-    not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
-    [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
-    [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
-    [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
-    [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
-    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-  AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-    [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-  [lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
-  esac
-
-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-	[Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-"     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx]"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT@&t at _DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT@&t at _DLSYM_CONST
-#else
-# define LT@&t at _DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT@&t at _DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-    [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-    [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-    [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-    [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
-    [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	m4_if([$1], [GCJ], [],
-	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
-      fi
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-	  ;;
-	*Sun\ F* | *Sun*Fortran*)
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  ;;
-        *Intel*\ [[CF]]*Compiler*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	  ;;
-	*Portland\ Group*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-	[Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-	[Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-      ;;
-    esac
-    ;;
-  *)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-], [
-  runpath_var=
-  _LT_TAGVAR(allow_undefined_flag, $1)=
-  _LT_TAGVAR(always_export_symbols, $1)=no
-  _LT_TAGVAR(archive_cmds, $1)=
-  _LT_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_TAGVAR(compiler_needs_object, $1)=no
-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(hardcode_automatic, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(inherit_rpath, $1)=no
-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_TAGVAR(module_cmds, $1)=
-  _LT_TAGVAR(module_expsym_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_TAGVAR(ld_shlibs, $1)=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
-	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=no
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    interix[[3-9]]*)
-      _LT_TAGVAR(hardcode_direct, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        _LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_TAGVAR(archive_cmds, $1)=''
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX([$1])
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  fi
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[[45]]*)
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	_LT_TAGVAR(always_export_symbols, $1)=yes
-	_LT_TAGVAR(file_list_spec, $1)='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	# FIXME: Should let the user specify the lib program.
-	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-      _LT_DARWIN_LINKER_FEATURES($1)
-      ;;
-
-    dgux*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	m4_if($1, [], [
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  _LT_LINKER_OPTION([if $CC understands -b],
-	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
-	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-	  [lt_cv_irix_exported_symbol],
-	  [save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   AC_LINK_IFELSE(
-	     [AC_LANG_SOURCE(
-	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-			      [C++], [[int foo (void) { return 0; }]],
-			      [Fortran 77], [[
-      subroutine foo
-      end]],
-			      [Fortran], [[
-      subroutine foo
-      end]])])],
-	      [lt_cv_irix_exported_symbol=yes],
-	      [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(inherit_rpath, $1)=yes
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	     ;;
-	   *)
-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
-    [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
-	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
-	[$RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-	  _LT_TAGVAR(allow_undefined_flag, $1)=
-	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-	  then
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	  else
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  fi
-	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-	])
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-    [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-    [enable_shared_with_static_runtimes], [0],
-    [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-    [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-    [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
-    [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-    [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-    [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
-    [Commands used to build a loadable module if different from building
-    a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
-    [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
-    [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
-    [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-    [Flag to hardcode $libdir into a binary during linking.
-    This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-    [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
-    library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
-    [Set to "yes" if building a shared library automatically hardcodes DIR
-    into the library and all subsequent libraries and executables linked
-    against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
-    [Set to yes if linker adds runtime paths of dependent libraries
-    to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
-    [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
-    [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
-    [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
-    [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
-    [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
-    [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
-    [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
-    [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl    [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_SYS_DYNAMIC_LINKER($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-  LT_SYS_DLOPEN_SELF
-  _LT_CMD_STRIPLIB
-
-  # Report which library types will actually be built
-  AC_MSG_CHECKING([if libtool supports shared libraries])
-  AC_MSG_RESULT([$can_build_shared])
-
-  AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  AC_MSG_RESULT([$enable_shared])
-
-  AC_MSG_CHECKING([whether to build static libraries])
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  AC_MSG_RESULT([$enable_static])
-
-  _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-    else
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      LT_PATH_LD
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-    _LT_TAGVAR(ld_shlibs, $1)=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-      aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        _LT_TAGVAR(archive_cmds, $1)=''
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX([$1])
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	    fi
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=yes
-	  _LT_TAGVAR(file_list_spec, $1)='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
-	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	  # Don't use ranlib
-	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=no
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-        _LT_DARWIN_LINKER_FEATURES($1)
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      freebsd-elf*)
-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        ;;
-
-      hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            _LT_TAGVAR(ld_shlibs, $1)=no
-            ;;
-          aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              _LT_TAGVAR(ld_shlibs, $1)=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          *)
-            _LT_TAGVAR(hardcode_direct, $1)=yes
-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[[3-9]]*)
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-	      fi
-	    fi
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-	    ;;
-        esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(inherit_rpath, $1)=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-		;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	    case $host_os in
-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
-	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-	      '"$_LT_TAGVAR(reload_cmds, $1)"
-	    ;;
-	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-    esac
-
-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_TAGVAR(predep_objects,$1)=
-  _LT_TAGVAR(postdep_objects,$1)=
-  _LT_TAGVAR(postdeps,$1)=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-    [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
-    [Dependencies to place before and after the objects being linked to
-    create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
-    [The library search path used internally by the compiler when linking
-    a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${F77-"f77"}
-  CFLAGS=$FFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-  GCC=$G77
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${FC-"f95"}
-  CFLAGS=$FCFLAGS
-  compiler=$CC
-  GCC=$ac_cv_fc_compiler_gnu
-
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
-  :
-  _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-         [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-         [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/conf/ltmain.sh b/conf/ltmain.sh
deleted file mode 100644
index 63ae69d..0000000
--- a/conf/ltmain.sh
+++ /dev/null
@@ -1,9655 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions.  There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-#       --config             show all configuration variables
-#       --debug              enable verbose shell tracing
-#   -n, --dry-run            display commands without modifying any files
-#       --features           display basic configuration information and exit
-#       --mode=MODE          use operation mode MODE
-#       --preserve-dup-deps  don't remove duplicate dependency libraries
-#       --quiet, --silent    don't print informational messages
-#       --no-quiet, --no-silent
-#                            print informational messages (default)
-#       --no-warn            don't display warning messages
-#       --tag=TAG            use configuration variables from tag TAG
-#   -v, --verbose            print more informational messages than default
-#       --no-verbose         don't print the extra informational messages
-#       --version            print version information
-#   -h, --help, --help-all   print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-#         clean              remove files from the build directory
-#         compile            compile a source file into a libtool object
-#         execute            automatically set library path, then run a program
-#         finish             complete the installation of libtool libraries
-#         install            install libraries or executables
-#         link               create a library or an executable
-#         uninstall          remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE.  When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-#         host-triplet:	$host
-#         shell:		$SHELL
-#         compiler:		$LTCC
-#         compiler flags:		$LTCFLAGS
-#         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2
-#         automake:	$automake_version
-#         autoconf:	$autoconf_version
-#
-# Report bugs to <bug-libtool at gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION=2.4.2
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
-  eval "if test \"\${$lt_var+set}\" = set; then
-          save_$lt_var=\$$lt_var
-          $lt_var=C
-	  export $lt_var
-	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
-	fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" 	$lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
-    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-    # Extract subdirectory from the argument.
-    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-    case ${2} in
-      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-    esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
-		s@/\./@/@g
-		t dotsl
-		s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-#             value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
-  # Start from root dir and reassemble the path.
-  func_normal_abspath_result=
-  func_normal_abspath_tpath=$1
-  func_normal_abspath_altnamespace=
-  case $func_normal_abspath_tpath in
-    "")
-      # Empty path, that just means $cwd.
-      func_stripname '' '/' "`pwd`"
-      func_normal_abspath_result=$func_stripname_result
-      return
-    ;;
-    # The next three entries are used to spot a run of precisely
-    # two leading slashes without using negated character classes;
-    # we take advantage of case's first-match behaviour.
-    ///*)
-      # Unusual form of absolute path, do nothing.
-    ;;
-    //*)
-      # Not necessarily an ordinary path; POSIX reserves leading '//'
-      # and for example Cygwin uses it to access remote file shares
-      # over CIFS/SMB, so we conserve a leading double slash if found.
-      func_normal_abspath_altnamespace=/
-    ;;
-    /*)
-      # Absolute path, do nothing.
-    ;;
-    *)
-      # Relative path, prepend $cwd.
-      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-    ;;
-  esac
-  # Cancel out all the simple stuff to save iterations.  We also want
-  # the path to end with a slash for ease of parsing, so make sure
-  # there is one (and only one) here.
-  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-  while :; do
-    # Processed it all yet?
-    if test "$func_normal_abspath_tpath" = / ; then
-      # If we ascended to the root using ".." the result may be empty now.
-      if test -z "$func_normal_abspath_result" ; then
-        func_normal_abspath_result=/
-      fi
-      break
-    fi
-    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcar"`
-    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcdr"`
-    # Figure out what to do with it
-    case $func_normal_abspath_tcomponent in
-      "")
-        # Trailing empty path component, ignore it.
-      ;;
-      ..)
-        # Parent dir; strip last assembled component from result.
-        func_dirname "$func_normal_abspath_result"
-        func_normal_abspath_result=$func_dirname_result
-      ;;
-      *)
-        # Actual path component, append it.
-        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-      ;;
-    esac
-  done
-  # Restore leading double-slash if one was found on entry.
-  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-#             value returned in "$func_relative_path_result"
-func_relative_path ()
-{
-  func_relative_path_result=
-  func_normal_abspath "$1"
-  func_relative_path_tlibdir=$func_normal_abspath_result
-  func_normal_abspath "$2"
-  func_relative_path_tbindir=$func_normal_abspath_result
-
-  # Ascend the tree starting from libdir
-  while :; do
-    # check if we have found a prefix of bindir
-    case $func_relative_path_tbindir in
-      $func_relative_path_tlibdir)
-        # found an exact match
-        func_relative_path_tcancelled=
-        break
-        ;;
-      $func_relative_path_tlibdir*)
-        # found a matching prefix
-        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-        func_relative_path_tcancelled=$func_stripname_result
-        if test -z "$func_relative_path_result"; then
-          func_relative_path_result=.
-        fi
-        break
-        ;;
-      *)
-        func_dirname $func_relative_path_tlibdir
-        func_relative_path_tlibdir=${func_dirname_result}
-        if test "x$func_relative_path_tlibdir" = x ; then
-          # Have to descend all the way to the root!
-          func_relative_path_result=../$func_relative_path_result
-          func_relative_path_tcancelled=$func_relative_path_tbindir
-          break
-        fi
-        func_relative_path_result=../$func_relative_path_result
-        ;;
-    esac
-  done
-
-  # Now calculate path; take care to avoid doubling-up slashes.
-  func_stripname '' '/' "$func_relative_path_result"
-  func_relative_path_result=$func_stripname_result
-  func_stripname '/' '/' "$func_relative_path_tcancelled"
-  if test "x$func_stripname_result" != x ; then
-    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-  fi
-
-  # Normalisation. If bindir is libdir, return empty string,
-  # else relative path ending with a slash; either way, target
-  # file name can be directly appended.
-  if test ! -z "$func_relative_path_result"; then
-    func_stripname './' '' "$func_relative_path_result/"
-    func_relative_path_result=$func_stripname_result
-  fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
-  [\\/]*|[A-Za-z]:\\*) ;;
-  *[\\/]*)
-     progdir=$func_dirname_result
-     progdir=`cd "$progdir" && pwd`
-     progpath="$progdir/$progname"
-     ;;
-  *)
-     save_IFS="$IFS"
-     IFS=${PATH_SEPARATOR-:}
-     for progdir in $PATH; do
-       IFS="$save_IFS"
-       test -x "$progdir/$progname" && break
-     done
-     IFS="$save_IFS"
-     test -n "$progdir" || progdir=`pwd`
-     progpath="$progdir/$progname"
-     ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes.  A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
-  s/$bs4/&\\
-/g
-  s/^$bs2$dollar/$bs&/
-  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-  s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
-    $opt_verbose && func_echo ${1+"$@"}
-
-    # A bug in bash halts the script if the last line of a function
-    # fails when set -e is in force, so we need another command to
-    # work around that:
-    :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
-    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
-    # bash bug again:
-    :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
-    func_error ${1+"$@"}
-    exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
-    func_error ${1+"$@"}
-    func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information."  ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
-    $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
-    my_directory_path="$1"
-    my_dir_list=
-
-    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
-      # Protect directory names starting with `-'
-      case $my_directory_path in
-        -*) my_directory_path="./$my_directory_path" ;;
-      esac
-
-      # While some portion of DIR does not yet exist...
-      while test ! -d "$my_directory_path"; do
-        # ...make a list in topmost first order.  Use a colon delimited
-	# list incase some portion of path contains whitespace.
-        my_dir_list="$my_directory_path:$my_dir_list"
-
-        # If the last portion added has no slash in it, the list is done
-        case $my_directory_path in */*) ;; *) break ;; esac
-
-        # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
-      done
-      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
-      save_mkdir_p_IFS="$IFS"; IFS=':'
-      for my_dir in $my_dir_list; do
-	IFS="$save_mkdir_p_IFS"
-        # mkdir can fail with a `File exist' error if two processes
-        # try to create one of the directories concurrently.  Don't
-        # stop in that case!
-        $MKDIR "$my_dir" 2>/dev/null || :
-      done
-      IFS="$save_mkdir_p_IFS"
-
-      # Bail out if we (or some other process) failed to create a directory.
-      test -d "$my_directory_path" || \
-        func_fatal_error "Failed to create \`$1'"
-    fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
-
-    if test "$opt_dry_run" = ":"; then
-      # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
-    else
-
-      # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
-      if test ! -d "$my_tmpdir"; then
-        # Failing that, at least try and use $RANDOM to avoid a race
-        my_tmpdir="${my_template}-${RANDOM-0}$$"
-
-        save_mktempdir_umask=`umask`
-        umask 0077
-        $MKDIR "$my_tmpdir"
-        umask $save_mktempdir_umask
-      fi
-
-      # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || \
-        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
-    fi
-
-    $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
-    case $1 in
-      *[\\\`\"\$]*)
-	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-      *)
-        func_quote_for_eval_unquoted_result="$1" ;;
-    esac
-
-    case $func_quote_for_eval_unquoted_result in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and and variable
-      # expansion for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-        ;;
-      *)
-        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-    esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
-    case $1 in
-      *[\\\`\"]*)
-	my_arg=`$ECHO "$1" | $SED \
-	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
-      *)
-        my_arg="$1" ;;
-    esac
-
-    case $my_arg in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting and command substitution for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        my_arg="\"$my_arg\""
-        ;;
-    esac
-
-    func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
-
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
-
-    if ${opt_dry_run-false}; then :; else
-      eval "$my_cmd"
-      my_status=$?
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.  Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
-
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
-
-    if ${opt_dry_run-false}; then :; else
-      eval "$lt_user_locale
-	    $my_cmd"
-      my_status=$?
-      eval "$lt_safe_locale"
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result.  All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
-  case $1 in
-  [0-9]* | *[!a-zA-Z0-9_]*)
-    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-    ;;
-  * )
-    func_tr_sh_result=$1
-    ;;
-  esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
-    $opt_debug
-
-    $SED -n '/(C)/!b go
-	:more
-	/\./!{
-	  N
-	  s/\n# / /
-	  b more
-	}
-	:go
-	/^# '$PROGRAM' (GNU /,/# warranty; / {
-        s/^# //
-	s/^# *$//
-        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-        p
-     }' < "$progpath"
-     exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-        s/^# //
-	s/^# *$//
-	s/\$progname/'$progname'/
-	p
-    }' < "$progpath"
-    echo
-    $ECHO "run \`$progname --help | more' for full usage"
-    exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/# Report bugs to/ {
-	:print
-        s/^# //
-	s/^# *$//
-	s*\$progname*'$progname'*
-	s*\$host*'"$host"'*
-	s*\$SHELL*'"$SHELL"'*
-	s*\$LTCC*'"$LTCC"'*
-	s*\$LTCFLAGS*'"$LTCFLAGS"'*
-	s*\$LD*'"$LD"'*
-	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
-	p
-	d
-     }
-     /^# .* home page:/b print
-     /^# General help using/b print
-     ' < "$progpath"
-    ret=$?
-    if test -z "$1"; then
-      exit $ret
-    fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
-    $opt_debug
-
-    func_error "missing argument for $1."
-    exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
-    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
-    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
-    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-    my_sed_long_arg='1s/^--[^=]*=//'
-
-    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-    eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
-    func_quote_for_eval "${2}"
-    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-    func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
-    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
-    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
-    func_error ${1+"$@"}
-    func_error "See the $PACKAGE documentation for more information."
-    func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
-    re_begincf='^# ### BEGIN LIBTOOL'
-    re_endcf='^# ### END LIBTOOL'
-
-    # Default configuration.
-    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
-    done
-
-    exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
-    echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      echo "enable shared libraries"
-    else
-      echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      echo "enable static libraries"
-    else
-      echo "disable static libraries"
-    fi
-
-    exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
-  # Global variable:
-  tagname="$1"
-
-  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-  sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
-  # Validate tagname.
-  case $tagname in
-    *[!-_A-Za-z0-9,/]*)
-      func_fatal_error "invalid tag name: $tagname"
-      ;;
-  esac
-
-  # Don't test for the "default" C tag, as we know it's
-  # there but not specially marked.
-  case $tagname in
-    CC) ;;
-    *)
-      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-	taglist="$taglist $tagname"
-
-	# Evaluate the configuration.  Be careful to quote the path
-	# and the sed script, to avoid splitting on whitespace, but
-	# also don't use non-portable quotes within backquotes within
-	# quotes we have to do it in 2 steps:
-	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-	eval "$extractedcf"
-      else
-	func_error "ignoring unknown tag $tagname"
-      fi
-      ;;
-  esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
-    fi
-
-    exit $EXIT_MISMATCH
-  fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
-  shift; set dummy --mode clean ${1+"$@"}; shift
-  ;;
-compile|compil|compi|comp|com|co|c)
-  shift; set dummy --mode compile ${1+"$@"}; shift
-  ;;
-execute|execut|execu|exec|exe|ex|e)
-  shift; set dummy --mode execute ${1+"$@"}; shift
-  ;;
-finish|finis|fini|fin|fi|f)
-  shift; set dummy --mode finish ${1+"$@"}; shift
-  ;;
-install|instal|insta|inst|ins|in|i)
-  shift; set dummy --mode install ${1+"$@"}; shift
-  ;;
-link|lin|li|l)
-  shift; set dummy --mode link ${1+"$@"}; shift
-  ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-  shift; set dummy --mode uninstall ${1+"$@"}; shift
-  ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly.  This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
-  # this just eases exit handling
-  while test $# -gt 0; do
-    opt="$1"
-    shift
-    case $opt in
-      --debug|-x)	opt_debug='set -x'
-			func_echo "enabling shell trace mode"
-			$opt_debug
-			;;
-      --dry-run|--dryrun|-n)
-			opt_dry_run=:
-			;;
-      --config)
-			opt_config=:
-func_config
-			;;
-      --dlopen|-dlopen)
-			optarg="$1"
-			opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
-			shift
-			;;
-      --preserve-dup-deps)
-			opt_preserve_dup_deps=:
-			;;
-      --features)
-			opt_features=:
-func_features
-			;;
-      --finish)
-			opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
-			;;
-      --help)
-			opt_help=:
-			;;
-      --help-all)
-			opt_help_all=:
-opt_help=': help-all'
-			;;
-      --mode)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_mode="$optarg"
-case $optarg in
-  # Valid mode arguments:
-  clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
-  # Catch anything else as an error
-  *) func_error "invalid argument for $opt"
-     exit_cmd=exit
-     break
-     ;;
-esac
-			shift
-			;;
-      --no-silent|--no-quiet)
-			opt_silent=false
-func_append preserve_args " $opt"
-			;;
-      --no-warning|--no-warn)
-			opt_warning=false
-func_append preserve_args " $opt"
-			;;
-      --no-verbose)
-			opt_verbose=false
-func_append preserve_args " $opt"
-			;;
-      --silent|--quiet)
-			opt_silent=:
-func_append preserve_args " $opt"
-        opt_verbose=false
-			;;
-      --verbose|-v)
-			opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
-			;;
-      --tag)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
-			shift
-			;;
-
-      -\?|-h)		func_usage				;;
-      --help)		func_help				;;
-      --version)	func_version				;;
-
-      # Separate optargs to long options:
-      --*=*)
-			func_split_long_opt "$opt"
-			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      # Separate non-argument short options:
-      -\?*|-h*|-n*|-v*)
-			func_split_short_opt "$opt"
-			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      --)		break					;;
-      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
-      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
-    esac
-  done
-
-  # Validate options:
-
-  # save first non-option argument
-  if test "$#" -gt 0; then
-    nonopt="$opt"
-    shift
-  fi
-
-  # preserve --debug
-  test "$opt_debug" = : || func_append preserve_args " --debug"
-
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-      ;;
-  esac
-
-  $opt_help || {
-    # Sanity checks first:
-    func_check_version_match
-
-    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-      func_fatal_configuration "not configured to build any kind of library"
-    fi
-
-    # Darwin sucks
-    eval std_shrext=\"$shrext_cmds\"
-
-    # Only execute mode is allowed to have -dlopen flags.
-    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-      func_error "unrecognized option \`-dlopen'"
-      $ECHO "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Change the help message to a mode-specific one.
-    generic_help="$help"
-    help="Try \`$progname --help --mode=$opt_mode' for more information."
-  }
-
-
-  # Bail if the options were screwed
-  $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
-    test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs.  To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway.  Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
-    lalib_p=no
-    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
-	for lalib_p_l in 1 2 3 4
-	do
-	    read lalib_p_line
-	    case "$lalib_p_line" in
-		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
-	    esac
-	done
-	exec 0<&5 5<&-
-    fi
-    test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
-    func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
-    func_ltwrapper_exec_suffix=
-    case $1 in
-    *.exe) ;;
-    *) func_ltwrapper_exec_suffix=.exe ;;
-    esac
-    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
-    func_dirname_and_basename "$1" "" "."
-    func_stripname '' '.exe' "$func_basename_result"
-    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
-    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
-    $opt_debug
-    save_ifs=$IFS; IFS='~'
-    for cmd in $1; do
-      IFS=$save_ifs
-      eval cmd=\"$cmd\"
-      func_show_eval "$cmd" "${2-:}"
-    done
-    IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)!  Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
-    $opt_debug
-    case $1 in
-    */* | *\\*)	. "$1" ;;
-    *)		. "./$1" ;;
-    esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot.  Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
-  func_resolve_sysroot_result=$1
-  case $func_resolve_sysroot_result in
-  =*)
-    func_stripname '=' '' "$func_resolve_sysroot_result"
-    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
-    ;;
-  esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
-  case "$lt_sysroot:$1" in
-  ?*:"$lt_sysroot"*)
-    func_stripname "$lt_sysroot" '' "$1"
-    func_replace_sysroot_result="=$func_stripname_result"
-    ;;
-  *)
-    # Including no sysroot.
-    func_replace_sysroot_result=$1
-    ;;
-  esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
-    $opt_debug
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-	func_append_quoted CC_quoted "$arg"
-      done
-      CC_expanded=`func_echo_all $CC`
-      CC_quoted_expanded=`func_echo_all $CC_quoted`
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-	    CC_quoted=
-	    for arg in $CC; do
-	      # Double-quote args containing other shell metacharacters.
-	      func_append_quoted CC_quoted "$arg"
-	    done
-	    CC_expanded=`func_echo_all $CC`
-	    CC_quoted_expanded=`func_echo_all $CC_quoted`
-	    case "$@ " in
-	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  func_echo "unable to infer tagged configuration"
-	  func_fatal_error "specify a tag with \`--tag'"
-#	else
-#	  func_verbose "using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
-    else
-      write_lobj=none
-    fi
-
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
-    else
-      write_oldobj=none
-    fi
-
-    $opt_dry_run || {
-      cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
-      $MV "${write_libobj}T" "${write_libobj}"
-    }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
-  $opt_debug
-  func_convert_core_file_wine_to_w32_result="$1"
-  if test -n "$1"; then
-    # Unfortunately, winepath does not exit with a non-zero error code, so we
-    # are forced to check the contents of stdout. On the other hand, if the
-    # command is not found, the shell will set an exit code of 127 and print
-    # *an error message* to stdout. So we must check for both error code of
-    # zero AND non-empty stdout, which explains the odd construction:
-    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
-      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-        $SED -e "$lt_sed_naive_backslashify"`
-    else
-      func_convert_core_file_wine_to_w32_result=
-    fi
-  fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
-  $opt_debug
-  # unfortunately, winepath doesn't convert paths, only file names
-  func_convert_core_path_wine_to_w32_result=""
-  if test -n "$1"; then
-    oldIFS=$IFS
-    IFS=:
-    for func_convert_core_path_wine_to_w32_f in $1; do
-      IFS=$oldIFS
-      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
-        if test -z "$func_convert_core_path_wine_to_w32_result"; then
-          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
-        else
-          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
-        fi
-      fi
-    done
-    IFS=$oldIFS
-  fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
-  $opt_debug
-  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
-    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
-    if test "$?" -ne 0; then
-      # on failure, ensure result is empty
-      func_cygpath_result=
-    fi
-  else
-    func_cygpath_result=
-    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
-  fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format.  Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
-  $opt_debug
-  # awkward: cmd appends spaces to result
-  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
-  $opt_debug
-  if test -z "$2" && test -n "$1" ; then
-    func_error "Could not determine host file name corresponding to"
-    func_error "  \`$1'"
-    func_error "Continuing, but uninstalled executables may not work."
-    # Fallback:
-    func_to_host_file_result="$1"
-  fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
-  $opt_debug
-  if test -z "$4" && test -n "$3"; then
-    func_error "Could not determine the host path corresponding to"
-    func_error "  \`$3'"
-    func_error "Continuing, but uninstalled executables may not work."
-    # Fallback.  This is a deliberately simplistic "conversion" and
-    # should not be "improved".  See libtool.info.
-    if test "x$1" != "x$2"; then
-      lt_replace_pathsep_chars="s|$1|$2|g"
-      func_to_host_path_result=`echo "$3" |
-        $SED -e "$lt_replace_pathsep_chars"`
-    else
-      func_to_host_path_result="$3"
-    fi
-  fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
-  $opt_debug
-  case $4 in
-  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
-    ;;
-  esac
-  case $4 in
-  $2 ) func_append func_to_host_path_result "$3"
-    ;;
-  esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
-  $opt_debug
-  $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result.  If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
-  $opt_debug
-  case ,$2, in
-    *,"$to_tool_file_cmd",*)
-      func_to_tool_file_result=$1
-      ;;
-    *)
-      $to_tool_file_cmd "$1"
-      func_to_tool_file_result=$func_to_host_file_result
-      ;;
-  esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
-  func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper.  Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format.  Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
-    # LT_CYGPATH in this case.
-    func_to_host_file_result=`cygpath -m "$1"`
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format.  Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_file_wine_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_msys_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
-    func_convert_core_file_wine_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format.  If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-#   file name conversion function    : func_convert_file_X_to_Y ()
-#   path conversion function         : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same.  If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
-  $opt_debug
-  if test -z "$to_host_path_cmd"; then
-    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-    to_host_path_cmd="func_convert_path_${func_stripname_result}"
-  fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
-  $opt_debug
-  func_init_to_host_path_cmd
-  $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
-  func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper.  Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # Remove leading and trailing path separator characters from ARG.  MSYS
-    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
-    # and winepath ignores them completely.
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format.  Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format.  Requires a wine environment and
-# a working winepath.  Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
-    func_convert_path_check : : \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-  fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # Remove leading and trailing path separator characters from
-    # ARG. msys behavior is inconsistent here, cygpath turns them
-    # into '.;' and ';.', and winepath ignores them completely.
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
-    func_convert_path_check : : \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-  fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
-    $opt_debug
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-    pie_flag=
-
-    for arg
-    do
-      case $arg_mode in
-      arg  )
-	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
-	arg_mode=normal
-	;;
-
-      target )
-	libobj="$arg"
-	arg_mode=normal
-	continue
-	;;
-
-      normal )
-	# Accept any command-line options.
-	case $arg in
-	-o)
-	  test -n "$libobj" && \
-	    func_fatal_error "you cannot specify \`-o' more than once"
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-pie | -fpie | -fPIE)
-          func_append pie_flag " $arg"
-	  continue
-	  ;;
-
-	-shared | -static | -prefer-pic | -prefer-non-pic)
-	  func_append later " $arg"
-	  continue
-	  ;;
-
-	-no-suppress)
-	  suppress_opt=no
-	  continue
-	  ;;
-
-	-Xcompiler)
-	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-	  continue      #  The current "srcfile" will either be retained or
-	  ;;            #  replaced later.  I would guess that would be a bug.
-
-	-Wc,*)
-	  func_stripname '-Wc,' '' "$arg"
-	  args=$func_stripname_result
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
-	  for arg in $args; do
-	    IFS="$save_ifs"
-	    func_append_quoted lastarg "$arg"
-	  done
-	  IFS="$save_ifs"
-	  func_stripname ' ' '' "$lastarg"
-	  lastarg=$func_stripname_result
-
-	  # Add the arguments to base_compile.
-	  func_append base_compile " $lastarg"
-	  continue
-	  ;;
-
-	*)
-	  # Accept the current argument as the source file.
-	  # The previous "srcfile" becomes the current argument.
-	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
-	  ;;
-	esac  #  case $arg
-	;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      func_append_quoted base_compile "$lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      func_fatal_error "you must specify an argument for -Xcompile"
-      ;;
-    target)
-      func_fatal_error "you must specify a target with \`-o'"
-      ;;
-    *)
-      # Get the name of the library object.
-      test -z "$libobj" && {
-	func_basename "$srcfile"
-	libobj="$func_basename_result"
-      }
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    case $libobj in
-    *.[cCFSifmso] | \
-    *.ada | *.adb | *.ads | *.asm | \
-    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
-      func_xform "$libobj"
-      libobj=$func_xform_result
-      ;;
-    esac
-
-    case $libobj in
-    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
-    *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
-      ;;
-    esac
-
-    func_infer_tag $base_compile
-
-    for arg in $later; do
-      case $arg in
-      -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
-	build_old_libs=no
-	continue
-	;;
-
-      -static)
-	build_libtool_libs=no
-	build_old_libs=yes
-	continue
-	;;
-
-      -prefer-pic)
-	pic_mode=yes
-	continue
-	;;
-
-      -prefer-non-pic)
-	pic_mode=no
-	continue
-	;;
-      esac
-    done
-
-    func_quote_for_eval "$libobj"
-    test "X$libobj" != "X$func_quote_for_eval_result" \
-      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
-    func_dirname_and_basename "$obj" "/" ""
-    objname="$func_basename_result"
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
-
-    test -z "$base_compile" && \
-      func_fatal_help "you must specify a compilation command"
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2* | cegcc*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-	func_echo "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	$ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-      func_append removelist " $output_obj"
-      $ECHO "$srcfile" > "$lockfile"
-    fi
-
-    $opt_dry_run || $RM $removelist
-    func_append removelist " $lockfile"
-    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
-    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
-    srcfile=$func_to_tool_file_result
-    func_quote_for_eval "$srcfile"
-    qsrcfile=$func_quote_for_eval_result
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-	command="$base_compile $qsrcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $qsrcfile"
-      fi
-
-      func_mkdir_p "$xdir$objdir"
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	func_append command " -o $lobj"
-      fi
-
-      func_show_eval_locale "$command"	\
-          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-	func_show_eval '$MV "$output_obj" "$lobj"' \
-	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-	suppress_output=' >/dev/null 2>&1'
-      fi
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-	# Don't build PIC code
-	command="$base_compile $qsrcfile$pie_flag"
-      else
-	command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	func_append command " -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      func_append command "$suppress_output"
-      func_show_eval_locale "$command" \
-        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	func_show_eval '$MV "$output_obj" "$obj"' \
-	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-    fi
-
-    $opt_dry_run || {
-      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
-      # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
-	removelist=$lockfile
-        $RM "$lockfile"
-      fi
-    }
-
-    exit $EXIT_SUCCESS
-}
-
-$opt_help || {
-  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
-    # We need to display help for each of the modes.
-    case $opt_mode in
-      "")
-        # Generic help is extracted from the usage comments
-        # at the start of this file.
-        func_help
-        ;;
-
-      clean)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      compile)
-      $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to build PIC objects only
-  -prefer-non-pic   try to build non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
-  -Wc,FLAG          pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-        ;;
-
-      execute)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-        ;;
-
-      finish)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-        ;;
-
-      install)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
-  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-        ;;
-
-      link)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -bindir BINDIR    specify path to binaries directory (for systems where
-                    libraries must be found in the PATH setting at runtime)
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -shared           only do dynamic linking of libtool libraries
-  -shrext SUFFIX    override the standard shared library file extension
-  -static           do not do any dynamic linking of uninstalled libtool libraries
-  -static-libtool-libs
-                    do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                    specify library version info [each variable defaults to 0]
-  -weak LIBNAME     declare that the target provides the LIBNAME interface
-  -Wc,FLAG
-  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
-  -Wl,FLAG
-  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
-  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-        ;;
-
-      uninstall)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      *)
-        func_fatal_help "invalid operation mode \`$opt_mode'"
-        ;;
-    esac
-
-    echo
-    $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
-  if test "$opt_help" = :; then
-    func_mode_help
-  else
-    {
-      func_help noexit
-      for opt_mode in compile link execute install finish uninstall clean; do
-	func_mode_help
-      done
-    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
-    {
-      func_help noexit
-      for opt_mode in compile link execute install finish uninstall clean; do
-	echo
-	func_mode_help
-      done
-    } |
-    sed '1d
-      /^When reporting/,/^Report/{
-	H
-	d
-      }
-      $x
-      /information about other modes/d
-      /more detailed .*MODE/d
-      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
-  fi
-  exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
-    $opt_debug
-    # The first argument is the command name.
-    cmd="$nonopt"
-    test -z "$cmd" && \
-      func_fatal_help "you must specify a COMMAND"
-
-    # Handle -dlopen flags immediately.
-    for file in $opt_dlopen; do
-      test -f "$file" \
-	|| func_fatal_help "\`$file' is not a file"
-
-      dir=
-      case $file in
-      *.la)
-	func_resolve_sysroot "$file"
-	file=$func_resolve_sysroot_result
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$lib' is not a valid libtool archive"
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-	func_source "$file"
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && \
-	    func_warning "\`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  func_append dir "/$objdir"
-	else
-	  if test ! -f "$dir/$dlname"; then
-	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
-	;;
-
-      *)
-	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -* | *.la | *.lo ) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if func_ltwrapper_script_p "$file"; then
-	  func_source "$file"
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	elif func_ltwrapper_executable_p "$file"; then
-	  func_ltwrapper_scriptname "$file"
-	  func_source "$func_ltwrapper_scriptname_result"
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      func_append_quoted args "$file"
-    done
-
-    if test "X$opt_dry_run" = Xfalse; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-      do
-	eval "if test \"\${save_$lt_var+set}\" = set; then
-                $lt_var=\$save_$lt_var; export $lt_var
-	      else
-		$lt_unset $lt_var
-	      fi"
-      done
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-	echo "export $shlibpath_var"
-      fi
-      $ECHO "$cmd$args"
-      exit $EXIT_SUCCESS
-    fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
-    $opt_debug
-    libs=
-    libdirs=
-    admincmds=
-
-    for opt in "$nonopt" ${1+"$@"}
-    do
-      if test -d "$opt"; then
-	func_append libdirs " $opt"
-
-      elif test -f "$opt"; then
-	if func_lalib_unsafe_p "$opt"; then
-	  func_append libs " $opt"
-	else
-	  func_warning "\`$opt' is not a valid libtool archive"
-	fi
-
-      else
-	func_fatal_error "invalid argument \`$opt'"
-      fi
-    done
-
-    if test -n "$libs"; then
-      if test -n "$lt_sysroot"; then
-        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
-        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
-      else
-        sysroot_cmd=
-      fi
-
-      # Remove sysroot references
-      if $opt_dry_run; then
-        for lib in $libs; do
-          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
-        done
-      else
-        tmpdir=`func_mktempdir`
-        for lib in $libs; do
-	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
-	    > $tmpdir/tmp-la
-	  mv -f $tmpdir/tmp-la $lib
-	done
-        ${RM}r "$tmpdir"
-      fi
-    fi
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $opt_dry_run || eval "$cmds" || func_append admincmds "
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    $opt_silent && exit $EXIT_SUCCESS
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      echo "----------------------------------------------------------------------"
-      echo "Libraries have been installed in:"
-      for libdir in $libdirs; do
-	$ECHO "   $libdir"
-      done
-      echo
-      echo "If you ever happen to want to link against installed libraries"
-      echo "in a given directory, LIBDIR, you must either use libtool, and"
-      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-      echo "flag during linking and do at least one of the following:"
-      if test -n "$shlibpath_var"; then
-	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-	echo "     during execution"
-      fi
-      if test -n "$runpath_var"; then
-	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-	echo "     during linking"
-      fi
-      if test -n "$hardcode_libdir_flag_spec"; then
-	libdir=LIBDIR
-	eval flag=\"$hardcode_libdir_flag_spec\"
-
-	$ECHO "   - use the \`$flag' linker flag"
-      fi
-      if test -n "$admincmds"; then
-	$ECHO "   - have your system administrator run these commands:$admincmds"
-      fi
-      if test -f /etc/ld.so.conf; then
-	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-      fi
-      echo
-
-      echo "See any operating system documentation about shared libraries for"
-      case $host in
-	solaris2.[6789]|solaris2.1[0-9])
-	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-	  echo "pages."
-	  ;;
-	*)
-	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
-	  ;;
-      esac
-      echo "----------------------------------------------------------------------"
-    fi
-    exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
-    $opt_debug
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       case $nonopt in *shtool*) :;; *) false;; esac; then
-      # Aesthetically quote it.
-      func_quote_for_eval "$nonopt"
-      install_prog="$func_quote_for_eval_result "
-      arg=$1
-      shift
-    else
-      install_prog=
-      arg=$nonopt
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    func_quote_for_eval "$arg"
-    func_append install_prog "$func_quote_for_eval_result"
-    install_shared_prog=$install_prog
-    case " $install_prog " in
-      *[\\\ /]cp\ *) install_cp=: ;;
-      *) install_cp=false ;;
-    esac
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    no_mode=:
-    for arg
-    do
-      arg2=
-      if test -n "$dest"; then
-	func_append files " $dest"
-	dest=$arg
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f)
-	if $install_cp; then :; else
-	  prev=$arg
-	fi
-	;;
-      -g | -m | -o)
-	prev=$arg
-	;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*)
-	;;
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
-	    arg2=$install_override_mode
-	    no_mode=false
-	  fi
-	  prev=
-	else
-	  dest=$arg
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      func_quote_for_eval "$arg"
-      func_append install_prog " $func_quote_for_eval_result"
-      if test -n "$arg2"; then
-	func_quote_for_eval "$arg2"
-      fi
-      func_append install_shared_prog " $func_quote_for_eval_result"
-    done
-
-    test -z "$install_prog" && \
-      func_fatal_help "you must specify an install program"
-
-    test -n "$prev" && \
-      func_fatal_help "the \`$prev' option requires an argument"
-
-    if test -n "$install_override_mode" && $no_mode; then
-      if $install_cp; then :; else
-	func_quote_for_eval "$install_override_mode"
-	func_append install_shared_prog " -m $func_quote_for_eval_result"
-      fi
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	func_fatal_help "no file or destination specified"
-      else
-	func_fatal_help "you must specify a destination"
-      fi
-    fi
-
-    # Strip any trailing slash from the destination.
-    func_stripname '' '/' "$dest"
-    dest=$func_stripname_result
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      func_dirname_and_basename "$dest" "" "."
-      destdir="$func_dirname_result"
-      destname="$func_basename_result"
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files; shift
-      test "$#" -gt 1 && \
-	func_fatal_help "\`$dest' is not a directory"
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  func_fatal_help "\`$destdir' must be an absolute directory name"
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	func_append staticlibs " $file"
-	;;
-
-      *.la)
-	func_resolve_sysroot "$file"
-	file=$func_resolve_sysroot_result
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$file' is not a valid libtool archive"
-
-	library_names=
-	old_library=
-	relink_command=
-	func_source "$file"
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) func_append current_libdirs " $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) func_append future_libdirs " $libdir" ;;
-	  esac
-	fi
-
-	func_dirname "$file" "/" ""
-	dir="$func_dirname_result"
-	func_append dir "$objdir"
-
-	if test -n "$relink_command"; then
-	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
-	  # Don't allow the user to place us outside of our expected
-	  # location b/c this prevents finding dependent libraries that
-	  # are installed to the same prefix.
-	  # At present, this check doesn't affect windows .dll's that
-	  # are installed into $libdir/../bin (currently, that works fine)
-	  # but it's something to keep an eye on.
-	  test "$inst_prefix_dir" = "$destdir" && \
-	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
-	  if test -n "$inst_prefix_dir"; then
-	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-	  else
-	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-	  fi
-
-	  func_warning "relinking \`$file'"
-	  func_show_eval "$relink_command" \
-	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names; shift
-	if test -n "$1"; then
-	  realname="$1"
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
-	      'exit $?'
-	  tstripme="$stripme"
-	  case $host_os in
-	  cygwin* | mingw* | pw32* | cegcc*)
-	    case $realname in
-	    *.dll.a)
-	      tstripme=""
-	      ;;
-	    esac
-	    ;;
-	  esac
-	  if test -n "$tstripme" && test -n "$striplib"; then
-	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    # Try `ln -sf' first, because the `ln' binary might depend on
-	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
-	    # so we also need to try rm && ln -s.
-	    for linkname
-	    do
-	      test "$linkname" != "$realname" \
-		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  func_execute_cmds "$postinstall_cmds" 'exit $?'
-	fi
-
-	# Install the pseudo-library for information purposes.
-	func_basename "$file"
-	name="$func_basename_result"
-	instname="$dir/$name"i
-	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  func_lo2o "$destfile"
-	  staticdest=$func_lo2o_result
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	test -n "$destfile" && \
-	  func_show_eval "$install_prog $file $destfile" 'exit $?'
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  func_lo2o "$file"
-	  staticobj=$func_lo2o_result
-	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
-	fi
-	exit $EXIT_SUCCESS
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
-	fi
-
-	# If the file is missing, and there is a .exe on the end, strip it
-	# because it is most likely a libtool script we actually want to
-	# install
-	stripped_ext=""
-	case $file in
-	  *.exe)
-	    if test ! -f "$file"; then
-	      func_stripname '' '.exe' "$file"
-	      file=$func_stripname_result
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin* | *mingw*)
-	    if func_ltwrapper_executable_p "$file"; then
-	      func_ltwrapper_scriptname "$file"
-	      wrapper=$func_ltwrapper_scriptname_result
-	    else
-	      func_stripname '' '.exe' "$file"
-	      wrapper=$func_stripname_result
-	    fi
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if func_ltwrapper_script_p "$wrapper"; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  func_source "$wrapper"
-
-	  # Check the variables that should have been set.
-	  test -z "$generated_by_libtool_version" && \
-	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      func_source "$lib"
-	    fi
-	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      func_warning "\`$lib' has not been installed in \`$libdir'"
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  func_source "$wrapper"
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    $opt_dry_run || {
-	      if test "$finalize" = yes; then
-	        tmpdir=`func_mktempdir`
-		func_basename "$file$stripped_ext"
-		file="$func_basename_result"
-	        outputname="$tmpdir/$file"
-	        # Replace the output file specification.
-	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
-	        $opt_silent || {
-	          func_quote_for_expand "$relink_command"
-		  eval "func_echo $func_quote_for_expand_result"
-	        }
-	        if eval "$relink_command"; then :
-	          else
-		  func_error "error: relink \`$file' with the above command before installing it"
-		  $opt_dry_run || ${RM}r "$tmpdir"
-		  continue
-	        fi
-	        file="$outputname"
-	      else
-	        func_warning "cannot relink \`$file'"
-	      fi
-	    }
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyway
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    func_stripname '' '.exe' "$destfile"
-	    destfile=$func_stripname_result
-	    ;;
-	  esac
-	  ;;
-	esac
-	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
-	$opt_dry_run || if test -n "$outputname"; then
-	  ${RM}r "$tmpdir"
-	fi
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      func_basename "$file"
-      name="$func_basename_result"
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-      tool_oldlib=$func_to_tool_file_result
-
-      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
-      if test -n "$stripme" && test -n "$old_striplib"; then
-	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
-      fi
-
-      # Do each command in the postinstall commands.
-      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
-    done
-
-    test -n "$future_libdirs" && \
-      func_warning "remember to run \`$progname --finish$future_libdirs'"
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      $opt_dry_run && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
-    my_dlsyms=
-
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-      if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	my_dlsyms="${my_outputname}S.c"
-      else
-	func_error "not configured to extract global symbols from dlpreopened files"
-      fi
-    fi
-
-    if test -n "$my_dlsyms"; then
-      case $my_dlsyms in
-      "") ;;
-      *.c)
-	# Discover the nlist of each of the dlfiles.
-	nlist="$output_objdir/${my_outputname}.nm"
-
-	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
-	# Parse the name list into a source file.
-	func_verbose "creating $output_objdir/$my_dlsyms"
-
-	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
-	if test "$dlself" = yes; then
-	  func_verbose "generating symbol list for \`$output'"
-
-	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
-	  # Add our own program objects to the symbol list.
-	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	  for progfile in $progfiles; do
-	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
-	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -n "$exclude_expsyms"; then
-	    $opt_dry_run || {
-	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	    }
-	  fi
-
-	  if test -n "$export_symbols_regex"; then
-	    $opt_dry_run || {
-	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	    }
-	  fi
-
-	  # Prepare the list of exported symbols
-	  if test -z "$export_symbols"; then
-	    export_symbols="$output_objdir/$outputname.exp"
-	    $opt_dry_run || {
-	      $RM $export_symbols
-	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	      case $host in
-	      *cygwin* | *mingw* | *cegcc* )
-                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-	        ;;
-	      esac
-	    }
-	  else
-	    $opt_dry_run || {
-	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	      case $host in
-	        *cygwin* | *mingw* | *cegcc* )
-	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-	          ;;
-	      esac
-	    }
-	  fi
-	fi
-
-	for dlprefile in $dlprefiles; do
-	  func_verbose "extracting global C symbols from \`$dlprefile'"
-	  func_basename "$dlprefile"
-	  name="$func_basename_result"
-          case $host in
-	    *cygwin* | *mingw* | *cegcc* )
-	      # if an import library, we need to obtain dlname
-	      if func_win32_import_lib_p "$dlprefile"; then
-	        func_tr_sh "$dlprefile"
-	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
-	        dlprefile_dlbasename=""
-	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
-	          # Use subshell, to avoid clobbering current variable values
-	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-	          if test -n "$dlprefile_dlname" ; then
-	            func_basename "$dlprefile_dlname"
-	            dlprefile_dlbasename="$func_basename_result"
-	          else
-	            # no lafile. user explicitly requested -dlpreopen <import library>.
-	            $sharedlib_from_linklib_cmd "$dlprefile"
-	            dlprefile_dlbasename=$sharedlib_from_linklib_result
-	          fi
-	        fi
-	        $opt_dry_run || {
-	          if test -n "$dlprefile_dlbasename" ; then
-	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
-	          else
-	            func_warning "Could not compute DLL name from $name"
-	            eval '$ECHO ": $name " >> "$nlist"'
-	          fi
-	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
-	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
-	        }
-	      else # not an import lib
-	        $opt_dry_run || {
-	          eval '$ECHO ": $name " >> "$nlist"'
-	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	        }
-	      fi
-	    ;;
-	    *)
-	      $opt_dry_run || {
-	        eval '$ECHO ": $name " >> "$nlist"'
-	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	      }
-	    ;;
-          esac
-	done
-
-	$opt_dry_run || {
-	  # Make sure we have at least an empty file.
-	  test -f "$nlist" || : > "$nlist"
-
-	  if test -n "$exclude_expsyms"; then
-	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	    $MV "$nlist"T "$nlist"
-	  fi
-
-	  # Try sorting and uniquifying the output.
-	  if $GREP -v "^: " < "$nlist" |
-	      if sort -k 3 </dev/null >/dev/null 2>&1; then
-		sort -k 3
-	      else
-		sort +2
-	      fi |
-	      uniq > "$nlist"S; then
-	    :
-	  else
-	    $GREP -v "^: " < "$nlist" > "$nlist"S
-	  fi
-
-	  if test -f "$nlist"S; then
-	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
-	  else
-	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
-	  fi
-
-	  echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols.  */
-typedef struct {
-  const char *name;
-  void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
-
-	  case $need_lib_prefix in
-	  no)
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
-	    ;;
-	  *)
-	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
-	    ;;
-	  esac
-	  echo >> "$output_objdir/$my_dlsyms" "\
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	} # !$opt_dry_run
-
-	pic_flag_for_symtable=
-	case "$compile_command " in
-	*" -static "*) ;;
-	*)
-	  case $host in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
-	  *-*-hpux*)
-	    pic_flag_for_symtable=" $pic_flag"  ;;
-	  *)
-	    if test "X$my_pic_p" != Xno; then
-	      pic_flag_for_symtable=" $pic_flag"
-	    fi
-	    ;;
-	  esac
-	  ;;
-	esac
-	symtab_cflags=
-	for arg in $LTCFLAGS; do
-	  case $arg in
-	  -pie | -fpie | -fPIE) ;;
-	  *) func_append symtab_cflags " $arg" ;;
-	  esac
-	done
-
-	# Now compile the dynamic symbol file.
-	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
-	# Clean up the generated files.
-	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
-	# Transform the symbol file into the correct name.
-	symfileobj="$output_objdir/${my_outputname}S.$objext"
-	case $host in
-	*cygwin* | *mingw* | *cegcc* )
-	  if test -f "$output_objdir/$my_outputname.def"; then
-	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	  else
-	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  fi
-	  ;;
-	*)
-	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  ;;
-	esac
-	;;
-      *)
-	func_fatal_error "unknown suffix for \`$my_dlsyms'"
-	;;
-      esac
-    else
-      # We keep going just in case the user didn't refer to
-      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-      # really was required.
-
-      # Nullify the symbol file.
-      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
-    fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
-  $opt_debug
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      func_to_tool_file "$1" func_convert_file_msys_to_w32
-      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-	$SED -n -e '
-	    1,100{
-		/ I /{
-		    s,.*,import,
-		    p
-		    q
-		}
-	    }'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-#    $sharedlib_from_linklib_cmd
-# Result is available in the variable
-#    $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
-  $opt_debug
-  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
-  $opt_debug
-  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
-  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
-    $SED '/^Contents of section '"$match_literal"':/{
-      # Place marker at beginning of archive member dllname section
-      s/.*/====MARK====/
-      p
-      d
-    }
-    # These lines can sometimes be longer than 43 characters, but
-    # are always uninteresting
-    /:[	 ]*file format pe[i]\{,1\}-/d
-    /^In archive [^:]*:/d
-    # Ensure marker is printed
-    /^====MARK====/p
-    # Remove all lines with less than 43 characters
-    /^.\{43\}/!d
-    # From remaining lines, remove first 43 characters
-    s/^.\{43\}//' |
-    $SED -n '
-      # Join marker and all lines until next marker into a single line
-      /^====MARK====/ b para
-      H
-      $ b para
-      b
-      :para
-      x
-      s/\n//g
-      # Remove the marker
-      s/^====MARK====//
-      # Remove trailing dots and whitespace
-      s/[\. \t]*$//
-      # Print
-      /./p' |
-    # we now have a list, one entry per line, of the stringified
-    # contents of the appropriate section of all members of the
-    # archive which possess that section. Heuristic: eliminate
-    # all those which have a first or second character that is
-    # a '.' (that is, objdump's representation of an unprintable
-    # character.) This should work for all archives with less than
-    # 0x302f exports -- but will fail for DLLs whose name actually
-    # begins with a literal '.' or a single character followed by
-    # a '.'.
-    #
-    # Of those that remain, print the first one.
-    $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-  test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-  test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-#    $sharedlib_from_linklib_cmd
-# Result is available in the variable
-#    $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
-  $opt_debug
-  if func_cygming_gnu_implib_p "$1" ; then
-    # binutils import library
-    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-  elif func_cygming_ms_implib_p "$1" ; then
-    # ms-generated import library
-    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
-  else
-    # unknown
-    sharedlib_from_linklib_result=""
-  fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    if test "$lock_old_archive_extraction" = yes; then
-      lockfile=$f_ex_an_ar_oldlib.lock
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-	func_echo "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    fi
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
-		   'stat=$?; rm -f "$lockfile"; exit $stat'
-    if test "$lock_old_archive_extraction" = yes; then
-      $opt_dry_run || rm -f "$lockfile"
-    fi
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
-    else
-      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
-    fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    $opt_debug
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
-
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-	*) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
-      my_xlib_u=$my_xlib
-      while :; do
-        case " $extracted_archives " in
-	*" $my_xlib_u "*)
-	  func_arith $extracted_serial + 1
-	  extracted_serial=$func_arith_result
-	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
-	*) break ;;
-	esac
-      done
-      extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
-
-      func_mkdir_p "$my_xdir"
-
-      case $host in
-      *-darwin*)
-	func_verbose "Extracting $my_xabs"
-	# Do not bother doing anything if just a dry run
-	$opt_dry_run || {
-	  darwin_orig_dir=`pwd`
-	  cd $my_xdir || exit $?
-	  darwin_archive=$my_xabs
-	  darwin_curdir=`pwd`
-	  darwin_base_archive=`basename "$darwin_archive"`
-	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
-	  if test -n "$darwin_arches"; then
-	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
-	    darwin_arch=
-	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-	    for darwin_arch in  $darwin_arches ; do
-	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-	      cd "$darwin_curdir"
-	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-	    done # $darwin_arches
-            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
-	    darwin_file=
-	    darwin_files=
-	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
-	      $LIPO -create -output "$darwin_file" $darwin_files
-	    done # $darwin_filelist
-	    $RM -rf unfat-$$
-	    cd "$darwin_orig_dir"
-	  else
-	    cd $darwin_orig_dir
-	    func_extract_an_archive "$my_xdir" "$my_xabs"
-	  fi # $darwin_arches
-	} # !$opt_dry_run
-	;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-	;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
-    done
-
-    func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-	func_emit_wrapper_arg1=${1-no}
-
-	$ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variables:
-  generated_by_libtool_version='$macro_version'
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$ECHO are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    file=\"\$0\""
-
-    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
-    $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-    ECHO=\"$qECHO\"
-  fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
-  lt_script_arg0=\$0
-  shift
-  for lt_opt
-  do
-    case \"\$lt_opt\" in
-    --lt-debug) lt_option_debug=1 ;;
-    --lt-dump-script)
-        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
-        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
-        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
-        cat \"\$lt_dump_D/\$lt_dump_F\"
-        exit 0
-      ;;
-    --lt-*)
-        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
-        exit 1
-      ;;
-    esac
-  done
-
-  # Print the debug banner immediately:
-  if test -n \"\$lt_option_debug\"; then
-    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
-  fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
-  lt_dump_args_N=1;
-  for lt_arg
-  do
-    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
-    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
-  done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
-  case $host in
-  # Backslashes separate directories on plain windows
-  *-*-mingw | *-*-os2* | *-cegcc*)
-    $ECHO "\
-      if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
-        func_lt_dump_args \${1+\"\$@\"} 1>&2
-      fi
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-    ;;
-
-  *)
-    $ECHO "\
-      if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
-        func_lt_dump_args \${1+\"\$@\"} 1>&2
-      fi
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-    ;;
-  esac
-  $ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
-  case \" \$* \" in
-  *\\ --lt-*)
-    for lt_wr_arg
-    do
-      case \$lt_wr_arg in
-      --lt-*) ;;
-      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-      esac
-      shift
-    done ;;
-  esac
-  func_exec_program_core \${1+\"\$@\"}
-}
-
-  # Parse options
-  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
-  done
-
-  # Usually 'no', except on cygwin/mingw when embedded into
-  # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
-  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
-    # special case for '.'
-    if test \"\$thisdir\" = \".\"; then
-      thisdir=\`pwd\`
-    fi
-    # remove .libs from thisdir
-    case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
-    $objdir )   thisdir=. ;;
-    esac
-  fi
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $ECHO "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $MKDIR \"\$progdir\"
-    else
-      $RM \"\$progdir/\$file\"
-    fi"
-
-	  $ECHO "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-	$ECHO \"\$relink_command_output\" >&2
-	$RM \"\$progdir/\$file\"
-	exit 1
-      fi
-    fi
-
-    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $RM \"\$progdir/\$program\";
-      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $RM \"\$progdir/\$file\"
-  fi"
-	else
-	  $ECHO "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$ECHO "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# fixup the dll searchpath if we need to.
-	#
-	# Fix the DLL searchpath if we need to.  Do this before prepending
-	# to shlibpath, because on Windows, both are PATH and uninstalled
-	# libraries must come first.
-	if test -n "$dllsearchpath"; then
-	  $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $ECHO "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	$ECHO "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-      func_exec_program \${1+\"\$@\"}
-    fi
-  else
-    # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
-	cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-*/
-EOF
-	    cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-#  include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat    _stat
-# define chmod   _chmod
-# define getcwd  _getcwd
-# define putenv  _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-#  define _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat    _stat
-# define chmod   _chmod
-# define getcwd  _getcwd
-# define putenv  _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-#  define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-#  define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
-	    cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
-	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_path "$temp_rpath"
-	      cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
-EOF
-	    else
-	      cat <<"EOF"
-const char * LIB_PATH_VALUE   = "";
-EOF
-	    fi
-
-	    if test -n "$dllsearchpath"; then
-              func_to_host_path "$dllsearchpath:"
-	      cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
-EOF
-	    else
-	      cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE   = "";
-EOF
-	    fi
-
-	    if test "$fast_install" = yes; then
-	      cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
-	    else
-	      cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
-	    fi
-
-
-	    cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX         "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int  newargc;
-  char *tmp_pathspec;
-  char *actual_cwrapper_path;
-  char *actual_cwrapper_name;
-  char *target_name;
-  char *lt_argv_zero;
-  intptr_t rval = 127;
-
-  int i;
-
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  newargz = XMALLOC (char *, argc + 1);
-
-  /* very simple arg parsing; don't want to rely on getopt
-   * also, copy all non cwrapper options to newargz, except
-   * argz[0], which is handled differently
-   */
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strcmp (argv[i], dumpscript_opt) == 0)
-	{
-EOF
-	    case "$host" in
-	      *mingw* | *cygwin* )
-		# make stdout use "unix" line endings
-		echo "          setmode(1,_O_BINARY);"
-		;;
-	      esac
-
-	    cat <<"EOF"
-	  lt_dump_script (stdout);
-	  return 0;
-	}
-      if (strcmp (argv[i], debug_opt) == 0)
-	{
-          lt_debug = 1;
-          continue;
-	}
-      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal (__FILE__, __LINE__,
-		    "unrecognized %s option: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-EOF
-	    cat <<EOF
-  /* The GNU banner must be the first non-error debug message */
-  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
-	    cat <<"EOF"
-  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
-  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
-  tmp_pathspec = find_executable (argv[0]);
-  if (tmp_pathspec == NULL)
-    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
-  lt_debugprintf (__FILE__, __LINE__,
-                  "(main) found exe (before symlink chase) at: %s\n",
-		  tmp_pathspec);
-
-  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  lt_debugprintf (__FILE__, __LINE__,
-                  "(main) found exe (after symlink chase) at: %s\n",
-		  actual_cwrapper_path);
-  XFREE (tmp_pathspec);
-
-  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
-  strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
-  /* wrapper name transforms */
-  strendzap (actual_cwrapper_name, ".exe");
-  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
-  XFREE (actual_cwrapper_name);
-  actual_cwrapper_name = tmp_pathspec;
-  tmp_pathspec = 0;
-
-  /* target_name transforms -- use actual target program name; might have lt- prefix */
-  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
-  strendzap (target_name, ".exe");
-  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
-  XFREE (target_name);
-  target_name = tmp_pathspec;
-  tmp_pathspec = 0;
-
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(main) libtool target name: %s\n",
-		  target_name);
-EOF
-
-	    cat <<EOF
-  newargz[0] =
-    XMALLOC (char, (strlen (actual_cwrapper_path) +
-		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
-  strcpy (newargz[0], actual_cwrapper_path);
-  strcat (newargz[0], "$objdir");
-  strcat (newargz[0], "/");
-EOF
-
-	    cat <<"EOF"
-  /* stop here, and copy so we don't have to do this twice */
-  tmp_pathspec = xstrdup (newargz[0]);
-
-  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
-  strcat (newargz[0], actual_cwrapper_name);
-
-  /* DO want the lt- prefix here if it exists, so use target_name */
-  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
-  XFREE (tmp_pathspec);
-  tmp_pathspec = NULL;
-EOF
-
-	    case $host_os in
-	      mingw*)
-	    cat <<"EOF"
-  {
-    char* p;
-    while ((p = strchr (newargz[0], '\\')) != NULL)
-      {
-	*p = '/';
-      }
-    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
-      {
-	*p = '/';
-      }
-  }
-EOF
-	    ;;
-	    esac
-
-	    cat <<"EOF"
-  XFREE (target_name);
-  XFREE (actual_cwrapper_path);
-  XFREE (actual_cwrapper_name);
-
-  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
-  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
-     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
-     because on Windows, both *_VARNAMEs are PATH but uninstalled
-     libraries must come first. */
-  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
-  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
-		  nonnull (lt_argv_zero));
-  for (i = 0; i < newargc; i++)
-    {
-      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
-		      i, nonnull (newargz[i]));
-    }
-
-EOF
-
-	    case $host_os in
-	      mingw*)
-		cat <<"EOF"
-  /* execv doesn't actually work on mingw as expected on unix */
-  newargz = prepare_spawn (newargz);
-  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
-  if (rval == -1)
-    {
-      /* failed to start process */
-      lt_debugprintf (__FILE__, __LINE__,
-		      "(main) failed to launch target \"%s\": %s\n",
-		      lt_argv_zero, nonnull (strerror (errno)));
-      return 127;
-    }
-  return rval;
-EOF
-		;;
-	      *)
-		cat <<"EOF"
-  execv (lt_argv_zero, newargz);
-  return rval; /* =127, but avoids unused variable warning */
-EOF
-		;;
-	    esac
-
-	    cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
-  void *p = (void *) malloc (num);
-  if (!p)
-    lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
-  return p;
-}
-
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
-			  string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
-
-int
-check_executable (const char *path)
-{
-  struct stat st;
-
-  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
-                  nonempty (path));
-  if ((!path) || (!*path))
-    return 0;
-
-  if ((stat (path, &st) >= 0)
-      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
-    return 1;
-  else
-    return 0;
-}
-
-int
-make_executable (const char *path)
-{
-  int rval = 0;
-  struct stat st;
-
-  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
-                  nonempty (path));
-  if ((!path) || (!*path))
-    return 0;
-
-  if (stat (path, &st) >= 0)
-    {
-      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
-    }
-  return rval;
-}
-
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise
-   Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
-  int has_slash = 0;
-  const char *p;
-  const char *p_next;
-  /* static buffer for getcwd */
-  char tmp[LT_PATHMAX + 1];
-  int tmp_len;
-  char *concat_name;
-
-  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
-                  nonempty (wrapper));
-
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
-
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable (concat_name))
-	return concat_name;
-      XFREE (concat_name);
-    }
-  else
-    {
-#endif
-      if (IS_DIR_SEPARATOR (wrapper[0]))
-	{
-	  concat_name = xstrdup (wrapper);
-	  if (check_executable (concat_name))
-	    return concat_name;
-	  XFREE (concat_name);
-	}
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-    }
-#endif
-
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-      {
-	has_slash = 1;
-	break;
-      }
-  if (!has_slash)
-    {
-      /* no slashes; search PATH */
-      const char *path = getenv ("PATH");
-      if (path != NULL)
-	{
-	  for (p = path; *p; p = p_next)
-	    {
-	      const char *q;
-	      size_t p_len;
-	      for (q = p; *q; q++)
-		if (IS_PATH_SEPARATOR (*q))
-		  break;
-	      p_len = q - p;
-	      p_next = (*q == '\0' ? q : q + 1);
-	      if (p_len == 0)
-		{
-		  /* empty path: current directory */
-		  if (getcwd (tmp, LT_PATHMAX) == NULL)
-		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-                              nonnull (strerror (errno)));
-		  tmp_len = strlen (tmp);
-		  concat_name =
-		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-		  memcpy (concat_name, tmp, tmp_len);
-		  concat_name[tmp_len] = '/';
-		  strcpy (concat_name + tmp_len + 1, wrapper);
-		}
-	      else
-		{
-		  concat_name =
-		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
-		  memcpy (concat_name, p, p_len);
-		  concat_name[p_len] = '/';
-		  strcpy (concat_name + p_len + 1, wrapper);
-		}
-	      if (check_executable (concat_name))
-		return concat_name;
-	      XFREE (concat_name);
-	    }
-	}
-      /* not found in PATH; assume curdir */
-    }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-              nonnull (strerror (errno)));
-  tmp_len = strlen (tmp);
-  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
-
-  if (check_executable (concat_name))
-    return concat_name;
-  XFREE (concat_name);
-  return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
-  return xstrdup (pathspec);
-#else
-  char buf[LT_PATHMAX];
-  struct stat s;
-  char *tmp_pathspec = xstrdup (pathspec);
-  char *p;
-  int has_symlinks = 0;
-  while (strlen (tmp_pathspec) && !has_symlinks)
-    {
-      lt_debugprintf (__FILE__, __LINE__,
-		      "checking path component for symlinks: %s\n",
-		      tmp_pathspec);
-      if (lstat (tmp_pathspec, &s) == 0)
-	{
-	  if (S_ISLNK (s.st_mode) != 0)
-	    {
-	      has_symlinks = 1;
-	      break;
-	    }
-
-	  /* search backwards for last DIR_SEPARATOR */
-	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
-	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-	    p--;
-	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-	    {
-	      /* no more DIR_SEPARATORS left */
-	      break;
-	    }
-	  *p = '\0';
-	}
-      else
-	{
-	  lt_fatal (__FILE__, __LINE__,
-		    "error accessing file \"%s\": %s",
-		    tmp_pathspec, nonnull (strerror (errno)));
-	}
-    }
-  XFREE (tmp_pathspec);
-
-  if (!has_symlinks)
-    {
-      return xstrdup (pathspec);
-    }
-
-  tmp_pathspec = realpath (pathspec, buf);
-  if (tmp_pathspec == 0)
-    {
-      lt_fatal (__FILE__, __LINE__,
-		"could not follow symlinks for %s", pathspec);
-    }
-  return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
-  size_t len, patlen;
-
-  assert (str != NULL);
-  assert (pat != NULL);
-
-  len = strlen (str);
-  patlen = strlen (pat);
-
-  if (patlen <= len)
-    {
-      str += len - patlen;
-      if (strcmp (str, pat) == 0)
-	*str = '\0';
-    }
-  return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
-  va_list args;
-  if (lt_debug)
-    {
-      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
-      va_start (args, fmt);
-      (void) vfprintf (stderr, fmt, args);
-      va_end (args);
-    }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
-	       int line, const char *mode,
-	       const char *message, va_list ap)
-{
-  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
-  va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
-  return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
-  return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_setenv) setting '%s' to '%s'\n",
-                  nonnull (name), nonnull (value));
-  {
-#ifdef HAVE_SETENV
-    /* always make a copy, for consistency with !HAVE_SETENV */
-    char *str = xstrdup (value);
-    setenv (name, str, 1);
-#else
-    int len = strlen (name) + 1 + strlen (value) + 1;
-    char *str = XMALLOC (char, len);
-    sprintf (str, "%s=%s", name, value);
-    if (putenv (str) != EXIT_SUCCESS)
-      {
-        XFREE (str);
-      }
-#endif
-  }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
-  char *new_value;
-  if (orig_value && *orig_value)
-    {
-      int orig_value_len = strlen (orig_value);
-      int add_len = strlen (add);
-      new_value = XMALLOC (char, add_len + orig_value_len + 1);
-      if (to_end)
-        {
-          strcpy (new_value, orig_value);
-          strcpy (new_value + orig_value_len, add);
-        }
-      else
-        {
-          strcpy (new_value, add);
-          strcpy (new_value + add_len, orig_value);
-        }
-    }
-  else
-    {
-      new_value = xstrdup (add);
-    }
-  return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                  nonnull (name), nonnull (value));
-
-  if (name && *name && value && *value)
-    {
-      char *new_value = lt_extend_str (getenv (name), value, 0);
-      /* some systems can't cope with a ':'-terminated path #' */
-      int len = strlen (new_value);
-      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
-        {
-          new_value[len-1] = '\0';
-        }
-      lt_setenv (name, new_value);
-      XFREE (new_value);
-    }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                  nonnull (name), nonnull (value));
-
-  if (name && *name && value && *value)
-    {
-      char *new_value = lt_extend_str (getenv (name), value, 0);
-      lt_setenv (name, new_value);
-      XFREE (new_value);
-    }
-}
-
-EOF
-	    case $host_os in
-	      mingw*)
-		cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
-   Note that spawn() does not by itself call the command interpreter
-     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
-      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-         GetVersionEx(&v);
-         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
-      }) ? "cmd.exe" : "command.com").
-   Instead it simply concatenates the arguments, separated by ' ', and calls
-   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
-   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
-   special way:
-   - Space and tab are interpreted as delimiters. They are not treated as
-     delimiters if they are surrounded by double quotes: "...".
-   - Unescaped double quotes are removed from the input. Their only effect is
-     that within double quotes, space and tab are treated like normal
-     characters.
-   - Backslashes not followed by double quotes are not special.
-   - But 2*n+1 backslashes followed by a double quote become
-     n backslashes followed by a double quote (n >= 0):
-       \" -> "
-       \\\" -> \"
-       \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
-  size_t argc;
-  char **new_argv;
-  size_t i;
-
-  /* Count number of arguments.  */
-  for (argc = 0; argv[argc] != NULL; argc++)
-    ;
-
-  /* Allocate new argument vector.  */
-  new_argv = XMALLOC (char *, argc + 1);
-
-  /* Put quoted arguments into the new argument vector.  */
-  for (i = 0; i < argc; i++)
-    {
-      const char *string = argv[i];
-
-      if (string[0] == '\0')
-	new_argv[i] = xstrdup ("\"\"");
-      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
-	{
-	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
-	  size_t length;
-	  unsigned int backslashes;
-	  const char *s;
-	  char *quoted_string;
-	  char *p;
-
-	  length = 0;
-	  backslashes = 0;
-	  if (quote_around)
-	    length++;
-	  for (s = string; *s != '\0'; s++)
-	    {
-	      char c = *s;
-	      if (c == '"')
-		length += backslashes + 1;
-	      length++;
-	      if (c == '\\')
-		backslashes++;
-	      else
-		backslashes = 0;
-	    }
-	  if (quote_around)
-	    length += backslashes + 1;
-
-	  quoted_string = XMALLOC (char, length + 1);
-
-	  p = quoted_string;
-	  backslashes = 0;
-	  if (quote_around)
-	    *p++ = '"';
-	  for (s = string; *s != '\0'; s++)
-	    {
-	      char c = *s;
-	      if (c == '"')
-		{
-		  unsigned int j;
-		  for (j = backslashes + 1; j > 0; j--)
-		    *p++ = '\\';
-		}
-	      *p++ = c;
-	      if (c == '\\')
-		backslashes++;
-	      else
-		backslashes = 0;
-	    }
-	  if (quote_around)
-	    {
-	      unsigned int j;
-	      for (j = backslashes; j > 0; j--)
-		*p++ = '\\';
-	      *p++ = '"';
-	    }
-	  *p = '\0';
-
-	  new_argv[i] = quoted_string;
-	}
-      else
-	new_argv[i] = (char *) string;
-    }
-  new_argv[argc] = NULL;
-
-  return new_argv;
-}
-EOF
-		;;
-	    esac
-
-            cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
-	    func_emit_wrapper yes |
-	      $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/  fputs ("\1", f);/p
-g
-D'
-            cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
-    $opt_debug
-    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
-    *import*) : ;;
-    *) false ;;
-    esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
-    $opt_debug
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args=$nonopt
-    base_compile="$nonopt $@"
-    compile_command=$nonopt
-    finalize_command=$nonopt
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-    new_inherited_linker_flags=
-
-    avoid_version=no
-    bindir=
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-    weak_libs=
-    single_module="${wl}-single_module"
-    func_infer_tag $base_compile
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
-	build_old_libs=no
-	break
-	;;
-      -all-static | -static | -static-libtool-libs)
-	case $arg in
-	-all-static)
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    func_warning "complete static linking is impossible in this configuration"
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	  ;;
-	-static)
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=built
-	  ;;
-	-static-libtool-libs)
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	  ;;
-	esac
-	build_libtool_libs=no
-	build_old_libs=yes
-	break
-	;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      func_quote_for_eval "$arg"
-      qarg=$func_quote_for_eval_unquoted_result
-      func_append libtool_args " $func_quote_for_eval_result"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  func_append compile_command " @OUTPUT@"
-	  func_append finalize_command " @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	bindir)
-	  bindir="$arg"
-	  prev=
-	  continue
-	  ;;
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    func_append compile_command " @SYMFILE@"
-	    func_append finalize_command " @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      func_append dlfiles " $arg"
-	    else
-	      func_append dlprefiles " $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  test -f "$arg" \
-	    || func_fatal_error "symbol file \`$arg' does not exist"
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	framework)
-	  case $host in
-	    *-*-darwin*)
-	      case "$deplibs " in
-		*" $qarg.ltframework "*) ;;
-		*) func_append deplibs " $qarg.ltframework" # this is fixed later
-		   ;;
-	      esac
-	      ;;
-	  esac
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat "$save_arg"`
-	    do
-#	      func_append moreargs " $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if func_lalib_unsafe_p "$arg"; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		func_source "$arg"
-
-		if test -z "$pic_object" ||
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none &&
-		   test "$non_pic_object" = none; then
-		  func_fatal_error "cannot find name of object for \`$arg'"
-		fi
-
-		# Extract subdirectory from the argument.
-		func_dirname "$arg" "/" ""
-		xdir="$func_dirname_result"
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      func_append dlfiles " $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    func_append dlprefiles " $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  func_append libobjs " $pic_object"
-		  arg="$pic_object"
-		fi
-
-		# Non-PIC object.
-		if test "$non_pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
-
-		  # A standard non-PIC object
-		  func_append non_pic_objects " $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		else
-		  # If the PIC object exists, use it instead.
-		  # $xdir was prepended to $pic_object above.
-		  non_pic_object="$pic_object"
-		  func_append non_pic_objects " $non_pic_object"
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if $opt_dry_run; then
-		  # Extract subdirectory from the argument.
-		  func_dirname "$arg" "/" ""
-		  xdir="$func_dirname_result"
-
-		  func_lo2o "$arg"
-		  pic_object=$xdir$objdir/$func_lo2o_result
-		  non_pic_object=$xdir$func_lo2o_result
-		  func_append libobjs " $pic_object"
-		  func_append non_pic_objects " $non_pic_object"
-	        else
-		  func_fatal_error "\`$arg' is not a valid libtool object"
-		fi
-	      fi
-	    done
-	  else
-	    func_fatal_error "link input file \`$arg' does not exist"
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	precious_regex)
-	  precious_files_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    func_fatal_error "only absolute run-paths are allowed"
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) func_append rpath " $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) func_append xrpath " $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	shrext)
-	  shrext_cmds="$arg"
-	  prev=
-	  continue
-	  ;;
-	weak)
-	  func_append weak_libs " $arg"
-	  prev=
-	  continue
-	  ;;
-	xcclinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $qarg"
-	  prev=
-	  func_append compile_command " $qarg"
-	  func_append finalize_command " $qarg"
-	  continue
-	  ;;
-	xcompiler)
-	  func_append compiler_flags " $qarg"
-	  prev=
-	  func_append compile_command " $qarg"
-	  func_append finalize_command " $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $wl$qarg"
-	  prev=
-	  func_append compile_command " $wl$qarg"
-	  func_append finalize_command " $wl$qarg"
-	  continue
-	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
-	  ;;
-	esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  # See comment for -static flag below, for more details.
-	  func_append compile_command " $link_static_flag"
-	  func_append finalize_command " $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -bindir)
-	prev=bindir
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  func_fatal_error "more than one -exported-symbols argument is not allowed"
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -framework)
-	prev=framework
-	continue
-	;;
-
-      -inst-prefix-dir)
-	prev=inst_prefix
-	continue
-	;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-	case $with_gcc/$host in
-	no/*-*-irix* | /*-*-irix*)
-	  func_append compile_command " $arg"
-	  func_append finalize_command " $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	func_stripname "-L" '' "$arg"
-	if test -z "$func_stripname_result"; then
-	  if test "$#" -gt 0; then
-	    func_fatal_error "require no space between \`-L' and \`$1'"
-	  else
-	    func_fatal_error "need path for \`-L' option"
-	  fi
-	fi
-	func_resolve_sysroot "$func_stripname_result"
-	dir=$func_resolve_sysroot_result
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  test -z "$absdir" && \
-	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "* | *" $arg "*)
-	  # Will only happen for absolute or sysroot arguments
-	  ;;
-	*)
-	  # Preserve sysroot, but never include relative directories
-	  case $dir in
-	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
-	    *) func_append deplibs " -L$dir" ;;
-	  esac
-	  func_append lib_search_path " $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  ::) dllsearchpath=$dir;;
-	  *) func_append dllsearchpath ":$dir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  ::) dllsearchpath=$testbindir;;
-	  *) func_append dllsearchpath ":$testbindir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    func_append deplibs " System.ltframework"
-	    continue
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	func_append deplibs " $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot|--sysroot)
-	func_append compiler_flags " $arg"
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-	prev=xcompiler
-	continue
-	;;
-
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-	func_append compiler_flags " $arg"
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-	case "$new_inherited_linker_flags " in
-	    *" $arg "*) ;;
-	    * ) func_append new_inherited_linker_flags " $arg" ;;
-	esac
-	continue
-	;;
-
-      -multi_module)
-	single_module="${wl}-multi_module"
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # and Darwin in order for the loader to find any dlls it needs.
-	  func_warning "\`-no-install' is ignored for $host"
-	  func_warning "assuming \`-no-fast-install' instead"
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -precious-files-regex)
-	prev=precious_regex
-	continue
-	;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	func_stripname '-R' '' "$arg"
-	dir=$func_stripname_result
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	=*)
-	  func_stripname '=' '' "$dir"
-	  dir=$lt_sysroot$func_stripname_result
-	  ;;
-	*)
-	  func_fatal_error "only absolute run-paths are allowed"
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) func_append xrpath " $dir" ;;
-	esac
-	continue
-	;;
-
-      -shared)
-	# The effects of -shared are defined in a previous loop.
-	continue
-	;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -static | -static-libtool-libs)
-	# The effects of -static are defined in a previous loop.
-	# We used to do the same as -all-static on platforms that
-	# didn't have a PIC flag, but the assumption that the effects
-	# would be equivalent was wrong.  It would break on at least
-	# Digital Unix and AIX.
-	continue
-	;;
-
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
-
-      -version-info)
-	prev=vinfo
-	continue
-	;;
-
-      -version-number)
-	prev=vinfo
-	vinfo_number=yes
-	continue
-	;;
-
-      -weak)
-        prev=weak
-	continue
-	;;
-
-      -Wc,*)
-	func_stripname '-Wc,' '' "$arg"
-	args=$func_stripname_result
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-	  func_append arg " $func_quote_for_eval_result"
-	  func_append compiler_flags " $func_quote_for_eval_result"
-	done
-	IFS="$save_ifs"
-	func_stripname ' ' '' "$arg"
-	arg=$func_stripname_result
-	;;
-
-      -Wl,*)
-	func_stripname '-Wl,' '' "$arg"
-	args=$func_stripname_result
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-	  func_append arg " $wl$func_quote_for_eval_result"
-	  func_append compiler_flags " $wl$func_quote_for_eval_result"
-	  func_append linker_flags " $func_quote_for_eval_result"
-	done
-	IFS="$save_ifs"
-	func_stripname ' ' '' "$arg"
-	arg=$func_stripname_result
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # -msg_* for osf cc
-      -msg_*)
-	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-
-      # Flags to be passed through unchanged, with rationale:
-      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
-      # -r[0-9][0-9]*        specify processor for the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
-      # +DA*, +DD*           enable 64-bit mode for the HP compiler
-      # -q*                  compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
-      # -F/path              path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
-      # @file                GCC response files
-      # -tp=*                Portland pgcc target processor selection
-      # --sysroot=*          for sysroot support
-      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
-        func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-        func_append compile_command " $arg"
-        func_append finalize_command " $arg"
-        func_append compiler_flags " $arg"
-        continue
-        ;;
-
-      # Some other compiler flag.
-      -* | +*)
-        func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-
-      *.$objext)
-	# A standard object.
-	func_append objs " $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if func_lalib_unsafe_p "$arg"; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  func_source "$arg"
-
-	  if test -z "$pic_object" ||
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none &&
-	     test "$non_pic_object" = none; then
-	    func_fatal_error "cannot find name of object for \`$arg'"
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  func_dirname "$arg" "/" ""
-	  xdir="$func_dirname_result"
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		func_append dlfiles " $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      func_append dlprefiles " $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    func_append libobjs " $pic_object"
-	    arg="$pic_object"
-	  fi
-
-	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
-
-	    # A standard non-PIC object
-	    func_append non_pic_objects " $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  else
-	    # If the PIC object exists, use it instead.
-	    # $xdir was prepended to $pic_object above.
-	    non_pic_object="$pic_object"
-	    func_append non_pic_objects " $non_pic_object"
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if $opt_dry_run; then
-	    # Extract subdirectory from the argument.
-	    func_dirname "$arg" "/" ""
-	    xdir="$func_dirname_result"
-
-	    func_lo2o "$arg"
-	    pic_object=$xdir$objdir/$func_lo2o_result
-	    non_pic_object=$xdir$func_lo2o_result
-	    func_append libobjs " $pic_object"
-	    func_append non_pic_objects " $non_pic_object"
-	  else
-	    func_fatal_error "\`$arg' is not a valid libtool object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	func_append deplibs " $arg"
-	func_append old_deplibs " $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	func_resolve_sysroot "$arg"
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  func_append dlfiles " $func_resolve_sysroot_result"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  func_append dlprefiles " $func_resolve_sysroot_result"
-	  prev=
-	else
-	  func_append deplibs " $func_resolve_sysroot_result"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-      fi
-    done # argument parsing loop
-
-    test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      func_append compile_command " $arg"
-      func_append finalize_command " $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
-    func_to_tool_file "$output_objdir/"
-    tool_output_objdir=$func_to_tool_file_result
-    # Create the object directory.
-    func_mkdir_p "$output_objdir"
-
-    # Determine the type of output
-    case $output in
-    "")
-      func_fatal_help "you must specify an output file"
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    specialdeplibs=
-
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if $opt_preserve_dup_deps ; then
-	case "$libs " in
-	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	esac
-      fi
-      func_append libs " $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if $opt_duplicate_compiler_generated_deps; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
-	  esac
-	  func_append pre_post_deps " $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-
-    case $linkmode in
-    lib)
-	passes="conv dlpreopen link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
-	    ;;
-	  esac
-	done
-	;;
-    prog)
-	compile_deplibs=
-	finalize_deplibs=
-	alldeplibs=no
-	newdlfiles=
-	newdlprefiles=
-	passes="conv scan dlopen dlpreopen link"
-	;;
-    *)  passes="conv"
-	;;
-    esac
-
-    for pass in $passes; do
-      # The preopen pass in lib mode reverses $deplibs; put it back here
-      # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
-	## FIXME: Find the place where the list is rebuilt in the wrong
-	##        order, and fix it there properly
-        tmp_deplibs=
-	for deplib in $deplibs; do
-	  tmp_deplibs="$deplib $tmp_deplibs"
-	done
-	deplibs="$tmp_deplibs"
-      fi
-
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
-	deplibs=
-      fi
-      if test "$linkmode" = prog; then
-	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-	esac
-      fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
-	# Collect and forward deplibs of preopened libtool libs
-	for lib in $dlprefiles; do
-	  # Ignore non-libtool-libs
-	  dependency_libs=
-	  func_resolve_sysroot "$lib"
-	  case $lib in
-	  *.la)	func_source "$func_resolve_sysroot_result" ;;
-	  esac
-
-	  # Collect preopened libtool deplibs, except any this library
-	  # has declared as weak libs
-	  for deplib in $dependency_libs; do
-	    func_basename "$deplib"
-            deplib_base=$func_basename_result
-	    case " $weak_libs " in
-	    *" $deplib_base "*) ;;
-	    *) func_append deplibs " $deplib" ;;
-	    esac
-	  done
-	done
-	libs="$dlprefiles"
-      fi
-      if test "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    func_append compiler_flags " $deplib"
-	    if test "$linkmode" = lib ; then
-		case "$new_inherited_linker_flags " in
-		    *" $deplib "*) ;;
-		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-		esac
-	    fi
-	  fi
-	  continue
-	  ;;
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    func_warning "\`-l' is ignored for archives/objects"
-	    continue
-	  fi
-	  func_stripname '-l' '' "$deplib"
-	  name=$func_stripname_result
-	  if test "$linkmode" = lib; then
-	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
-	  else
-	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
-	  fi
-	  for searchdir in $searchdirs; do
-	    for search_ext in .la $std_shrext .so .a; do
-	      # Search the libtool library
-	      lib="$searchdir/lib${name}${search_ext}"
-	      if test -f "$lib"; then
-		if test "$search_ext" = ".la"; then
-		  found=yes
-		else
-		  found=no
-		fi
-		break 2
-	      fi
-	    done
-	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
-	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	      case " $predeps $postdeps " in
-	      *" $deplib "*)
-		if func_lalib_p "$lib"; then
-		  library_names=
-		  old_library=
-		  func_source "$lib"
-		  for l in $old_library $library_names; do
-		    ll="$l"
-		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
-		    func_dirname "$lib" "" "."
-		    ladir="$func_dirname_result"
-		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
-		      compile_deplibs="$deplib $compile_deplibs"
-		      finalize_deplibs="$deplib $finalize_deplibs"
-		    else
-		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-		    fi
-		    continue
-		  fi
-		fi
-		;;
-	      *) ;;
-	      esac
-	    fi
-	  fi
-	  ;; # -l
-	*.ltframework)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    deplibs="$deplib $deplibs"
-	    if test "$linkmode" = lib ; then
-		case "$new_inherited_linker_flags " in
-		    *" $deplib "*) ;;
-		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-		esac
-	    fi
-	  fi
-	  continue
-	  ;;
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    func_stripname '-L' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    func_append newlib_search_path " $func_resolve_sysroot_result"
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    func_stripname '-L' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    func_append newlib_search_path " $func_resolve_sysroot_result"
-	    ;;
-	  *)
-	    func_warning "\`-L' is ignored for archives/objects"
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    func_stripname '-R' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    dir=$func_resolve_sysroot_result
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) func_append xrpath " $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la)
-	  func_resolve_sysroot "$deplib"
-	  lib=$func_resolve_sysroot_result
-	  ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    # Linking convenience modules into shared libraries is allowed,
-	    # but linking other static libraries is non-portable.
-	    case " $dlpreconveniencelibs " in
-	    *" $deplib "*) ;;
-	    *)
-	      valid_a_lib=no
-	      case $deplibs_check_method in
-		match_pattern*)
-		  set dummy $deplibs_check_method; shift
-		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
-		    | $EGREP "$match_pattern_regex" > /dev/null; then
-		    valid_a_lib=yes
-		  fi
-		;;
-		pass_all)
-		  valid_a_lib=yes
-		;;
-	      esac
-	      if test "$valid_a_lib" != yes; then
-		echo
-		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because the file extensions .$libext of this argument makes me believe"
-		echo "*** that it is just a static archive that I should not use here."
-	      else
-		echo
-		$ECHO "*** Warning: Linking the shared library $output against the"
-		$ECHO "*** static library $deplib is not portable!"
-		deplibs="$deplib $deplibs"
-	      fi
-	      ;;
-	    esac
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      func_append newdlprefiles " $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      func_append newdlfiles " $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-	fi
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$lib" \
-	  || func_fatal_error "\`$lib' is not a valid libtool archive"
-
-	func_dirname "$lib" "" "."
-	ladir="$func_dirname_result"
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	inherited_linker_flags=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-	avoidtemprpath=
-
-
-	# Read the .la file
-	func_source "$lib"
-
-	# Convert "-framework foo" to "foo.ltframework"
-	if test -n "$inherited_linker_flags"; then
-	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
-	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
-	    case " $new_inherited_linker_flags " in
-	      *" $tmp_inherited_linker_flag "*) ;;
-	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
-	    esac
-	  done
-	fi
-	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && func_append dlfiles " $dlopen"
-	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      func_fatal_error "cannot find name of link library for \`$lib'"
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    func_append convenience " $ladir/$objdir/$old_library"
-	    func_append old_convenience " $ladir/$objdir/$old_library"
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    func_fatal_error "\`$lib' is not a convenience library"
-	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done
-	  continue
-	fi # $pass = conv
-
-
-	# Get the name of the library we link against.
-	linklib=
-	if test -n "$old_library" &&
-	   { test "$prefer_static_libs" = yes ||
-	     test "$prefer_static_libs,$installed" = "built,no"; }; then
-	  linklib=$old_library
-	else
-	  for l in $old_library $library_names; do
-	    linklib="$l"
-	  done
-	fi
-	if test -z "$linklib"; then
-	  func_fatal_error "cannot find name of link library for \`$lib'"
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-	  fi
-	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    func_append dlprefiles " $lib $dependency_libs"
-	  else
-	    func_append newdlfiles " $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    func_warning "cannot determine absolute directory name of \`$ladir'"
-	    func_warning "passing it literally to the linker, although it might fail"
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	func_basename "$lib"
-	laname="$func_basename_result"
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    func_warning "library \`$lib' was moved."
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$lt_sysroot$libdir"
-	    absdir="$lt_sysroot$libdir"
-	  fi
-	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-	else
-	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    # Remove this search path later
-	    func_append notinst_path " $abs_ladir"
-	  else
-	    dir="$ladir/$objdir"
-	    absdir="$abs_ladir/$objdir"
-	    # Remove this search path later
-	    func_append notinst_path " $abs_ladir"
-	  fi
-	fi # $installed = yes
-	func_stripname 'lib' '.la' "$laname"
-	name=$func_stripname_result
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir" && test "$linkmode" = prog; then
-	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
-	  fi
-	  case "$host" in
-	    # special handling for platforms with PE-DLLs.
-	    *cygwin* | *mingw* | *cegcc* )
-	      # Linker will automatically link against shared library if both
-	      # static and shared are present.  Therefore, ensure we extract
-	      # symbols from the import library if a shared library is present
-	      # (otherwise, the dlopen module name will be incorrect).  We do
-	      # this by putting the import library name into $newdlprefiles.
-	      # We recover the dlopen module name by 'saving' the la file
-	      # name in a special purpose variable, and (later) extracting the
-	      # dlname from the la file.
-	      if test -n "$dlname"; then
-	        func_tr_sh "$dir/$linklib"
-	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
-	        func_append newdlprefiles " $dir/$linklib"
-	      else
-	        func_append newdlprefiles " $dir/$old_library"
-	        # Keep a list of preopened convenience libraries to check
-	        # that they are being used correctly in the link pass.
-	        test -z "$libdir" && \
-	          func_append dlpreconveniencelibs " $dir/$old_library"
-	      fi
-	    ;;
-	    * )
-	      # Prefer using a static library (so that no silly _DYNAMIC symbols
-	      # are required to link).
-	      if test -n "$old_library"; then
-	        func_append newdlprefiles " $dir/$old_library"
-	        # Keep a list of preopened convenience libraries to check
-	        # that they are being used correctly in the link pass.
-	        test -z "$libdir" && \
-	          func_append dlpreconveniencelibs " $dir/$old_library"
-	      # Otherwise, use the dlname, so that lt_dlopen finds it.
-	      elif test -n "$dlname"; then
-	        func_append newdlprefiles " $dir/$dlname"
-	      else
-	        func_append newdlprefiles " $dir/$linklib"
-	      fi
-	    ;;
-	  esac
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  func_append newlib_search_path " $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) func_stripname '-L' '' "$deplib"
-	         func_resolve_sysroot "$func_stripname_result"
-	         func_append newlib_search_path " $func_resolve_sysroot_result"
-		 ;;
-	    esac
-	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      # Need to hardcode shared library paths
-	      # or/and link against static libraries
-	      newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { { test "$prefer_static_libs" = no ||
-	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
-	       test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath:" in
-	      *"$absdir:"*) ;;
-	      *) func_append temp_rpath "$absdir:" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append finalize_rpath " $libdir" ;;
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	use_static_libs=$prefer_static_libs
-	if test "$use_static_libs" = built && test "$installed" = yes; then
-	  use_static_libs=no
-	fi
-	if test -n "$library_names" &&
-	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
-	  case $host in
-	  *cygwin* | *mingw* | *cegcc*)
-	      # No point in relinking DLLs because paths are not encoded
-	      func_append notinst_deplibs " $lib"
-	      need_relink=no
-	    ;;
-	  *)
-	    if test "$installed" = no; then
-	      func_append notinst_deplibs " $lib"
-	      need_relink=yes
-	    fi
-	    ;;
-	  esac
-	  # This is a shared library
-
-	  # Warn about portability, can't link against -module's on some
-	  # systems (darwin).  Don't bleat about dlopened modules though!
-	  dlopenmodule=""
-	  for dlpremoduletest in $dlprefiles; do
-	    if test "X$dlpremoduletest" = "X$lib"; then
-	      dlopenmodule="$dlpremoduletest"
-	      break
-	    fi
-	  done
-	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-	    echo
-	    if test "$linkmode" = prog; then
-	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $ECHO "*** $linklib is not portable!"
-	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append finalize_rpath " $libdir" ;;
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    shift
-	    realname="$1"
-	    shift
-	    libname=`eval "\\$ECHO \"$libname_spec\""`
-	    # use dlname if we got it. it's perfectly good, no?
-	    if test -n "$dlname"; then
-	      soname="$dlname"
-	    elif test -n "$soname_spec"; then
-	      # bleh windows
-	      case $host in
-	      *cygwin* | mingw* | *cegcc*)
-	        func_arith $current - $age
-		major=$func_arith_result
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    func_basename "$soroot"
-	    soname="$func_basename_result"
-	    func_stripname 'lib' '.dll' "$soname"
-	    newlib=libimp-$func_stripname_result.a
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      func_verbose "extracting exported symbol list from \`$soname'"
-	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      func_verbose "generating import library for \`$soname'"
-	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-		    *-*-unixware7*) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a (non-dlopened) module then we can not
-		    # link against it, someone is ignoring the earlier warnings
-		    if /usr/bin/file -L $add 2> /dev/null |
-			 $GREP ": [^:]* bundle" >/dev/null ; then
-		      if test "X$dlopenmodule" != "X$lib"; then
-			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
-			if test -z "$old_library" ; then
-			  echo
-			  echo "*** And there doesn't seem to be a static archive available"
-			  echo "*** The link will probably fail, sorry"
-			else
-			  add="$dir/$old_library"
-			fi
-		      elif test -n "$old_library"; then
-			add="$dir/$old_library"
-		      fi
-		    fi
-		esac
-	      elif test "$hardcode_minus_L" = no; then
-		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
-		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    relink)
-	      if test "$hardcode_direct" = yes &&
-	         test "$hardcode_direct_absolute" = no; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$absdir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case $libdir in
-		    [\\/]*)
-		      func_append add_dir " -L$inst_prefix_dir$libdir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
-
-	    if test "$lib_linked" != yes; then
-	      func_fatal_configuration "unsupported hardcode properties"
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes &&
-		 test "$hardcode_minus_L" != yes &&
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) func_append finalize_shlibpath "$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes &&
-	       test "$hardcode_direct_absolute" = no; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) func_append finalize_shlibpath "$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-		add="$inst_prefix_dir$libdir/$linklib"
-	      else
-		add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case $libdir in
-		  [\\/]*)
-		    func_append add_dir " -L$inst_prefix_dir$libdir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    echo
-	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
-	    echo "*** I have the capability to make that library automatically link in when"
-	    echo "*** you link to this library.  But I can only do this if you have a"
-	    echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      echo "*** But as you try to build a module library, libtool will still create "
-	      echo "*** a static module, that should work as long as the dlopening application"
-	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		echo
-		echo "*** However, this would only work if libtool was able to extract symbol"
-		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		echo "*** not find such a program.  So, this module is probably useless."
-		echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) func_stripname '-R' '' "$libdir"
-	           temp_xrpath=$func_stripname_result
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) func_append xrpath " $temp_xrpath";;
-		   esac;;
-	      *) func_append temp_deplibs " $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  func_append newlib_search_path " $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    case $deplib in
-              -L*) func_stripname '-L' '' "$deplib"
-                   func_resolve_sysroot "$func_stripname_result";;
-              *) func_resolve_sysroot "$deplib" ;;
-            esac
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $func_resolve_sysroot_result "*)
-                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $func_resolve_sysroot_result"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      path=
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-	        func_resolve_sysroot "$deplib"
-	        deplib=$func_resolve_sysroot_result
-	        func_dirname "$deplib" "" "."
-		dir=$func_dirname_result
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    func_warning "cannot determine absolute directory name of \`$dir'"
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if $GREP "^installed=no" $deplib > /dev/null; then
-		case $host in
-		*-*-darwin*)
-		  depdepl=
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$absdir/$objdir/$depdepl" ; then
-		      depdepl="$absdir/$objdir/$depdepl"
-		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
-                      if test -z "$darwin_install_name"; then
-                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
-                      fi
-		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
-		      path=
-		    fi
-		  fi
-		  ;;
-		*)
-		  path="-L$absdir/$objdir"
-		  ;;
-		esac
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  test -z "$libdir" && \
-		    func_fatal_error "\`$deplib' is not a valid libtool archive"
-		  test "$absdir" != "$libdir" && \
-		    func_warning "\`$deplib' seems to be moved"
-
-		  path="-L$absdir"
-		fi
-		;;
-	      esac
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$path $deplibs" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      if test "$pass" = link; then
-	if test "$linkmode" = "prog"; then
-	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
-	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
-	else
-	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	fi
-      fi
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) func_append lib_search_path " $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) func_append tmp_libs " $deplib" ;;
-	      esac
-	      ;;
-	    *) func_append tmp_libs " $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  func_append tmp_libs " $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-    fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for archives"
-      fi
-
-      case " $deplibs" in
-      *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for archives" ;;
-      esac
-
-      test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for archives"
-
-      test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for archives"
-
-      test -n "$vinfo" && \
-	func_warning "\`-version-info/-version-number' is ignored for archives"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for archives"
-
-      test -n "$export_symbols$export_symbols_regex" && \
-	func_warning "\`-export-symbols' is ignored for archives"
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      func_append objs "$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	func_stripname 'lib' '.la' "$outputname"
-	name=$func_stripname_result
-	eval shared_ext=\"$shrext_cmds\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	test "$module" = no && \
-	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  func_stripname '' '.la' "$outputname"
-	  name=$func_stripname_result
-	  eval shared_ext=\"$shrext_cmds\"
-	  eval libname=\"$libname_spec\"
-	else
-	  func_stripname '' '.la' "$outputname"
-	  libname=$func_stripname_result
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
-	else
-	  echo
-	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
-	  $ECHO "*** objects $objs is not portable!"
-	  func_append libobjs " $objs"
-	fi
-      fi
-
-      test "$dlself" != no && \
-	func_warning "\`-dlopen self' is ignored for libtool libraries"
-
-      set dummy $rpath
-      shift
-      test "$#" -gt 1 && \
-	func_warning "ignoring multiple \`-rpath's for a libtool library"
-
-      install_libdir="$1"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
-	  # convenience libraries should have the same extension an
-	  # archive normally would.
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-
-	test -n "$vinfo" && \
-	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
-	test -n "$release" && \
-	  func_warning "\`-release' is ignored for convenience libraries"
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	shift
-	IFS="$save_ifs"
-
-	test -n "$7" && \
-	  func_fatal_help "too many parameters to \`-version-info'"
-
-	# convert absolute version numbers to libtool ages
-	# this retains compatibility with .la files and attempts
-	# to make the code below a bit more comprehensible
-
-	case $vinfo_number in
-	yes)
-	  number_major="$1"
-	  number_minor="$2"
-	  number_revision="$3"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  # correct linux to gnu/linux during the next big refactor
-	  darwin|linux|osf|windows|none)
-	    func_arith $number_major + $number_minor
-	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|qnx|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    func_arith $number_major + $number_minor
-	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_minor"
-	    lt_irix_increment=no
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$1"
-	  revision="$2"
-	  age="$3"
-	  ;;
-	esac
-
-	# Check that each of the things are valid numbers.
-	case $current in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "CURRENT \`$current' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	case $revision in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "REVISION \`$revision' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	case $age in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "AGE \`$age' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case $version_type in
-	none) ;;
-
-	darwin)
-	  # Like Linux, but with the current version available in
-	  # verstring for coding it into the library header
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  func_arith $current + 1
-	  minor_current=$func_arith_result
-	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current"
-	  ;;
-
-	irix | nonstopux)
-	  if test "X$lt_irix_increment" = "Xno"; then
-	    func_arith $current - $age
-	  else
-	    func_arith $current - $age + 1
-	  fi
-	  major=$func_arith_result
-
-	  case $version_type in
-	    nonstopux) verstring_prefix=nonstopux ;;
-	    *)         verstring_prefix=sgi ;;
-	  esac
-	  verstring="$verstring_prefix$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test "$loop" -ne 0; do
-	    func_arith $revision - $loop
-	    iface=$func_arith_result
-	    func_arith $loop - 1
-	    loop=$func_arith_result
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux) # correct to gnu/linux during the next big refactor
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test "$loop" -ne 0; do
-	    func_arith $current - $loop
-	    iface=$func_arith_result
-	    func_arith $loop - 1
-	    loop=$func_arith_result
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  func_append verstring ":${current}.0"
-	  ;;
-
-	qnx)
-	  major=".$current"
-	  versuffix=".$current"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  func_arith $current - $age
-	  major=$func_arith_result
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  func_fatal_configuration "unknown library version type \`$version_type'"
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    func_warning "undefined symbols not allowed in $host shared libraries"
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-
-      fi
-
-      func_generate_dlsyms "$libname" "$libname" "yes"
-      func_append libobjs " $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
-
-      if test "$opt_mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$ECHO "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext | *.gcno)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
-		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-		 then
-		   continue
-		 fi
-	       fi
-	       func_append removelist " $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	test -n "$removelist" && \
-	  func_show_eval "${RM}r \$removelist"
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	func_append oldlibs " $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      #for path in $notinst_path; do
-      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
-      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
-      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
-      #done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  func_replace_sysroot "$libdir"
-	  func_append temp_xrpath " -R$func_replace_sysroot_result"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_rpath " $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) func_append dlfiles " $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) func_append dlprefiles " $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    func_append deplibs " System.ltframework"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    ;;
-	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      func_append deplibs " -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $opt_dry_run || $RM conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $opt_dry_run || $RM conftest
-	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      case $i in
-	      -l*)
-		func_stripname -l '' "$i"
-		name=$func_stripname_result
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    func_append newdeplibs " $i"
-		    i=""
-		    ;;
-		  esac
-		fi
-		if test -n "$i" ; then
-		  libname=`eval "\\$ECHO \"$libname_spec\""`
-		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-		  set dummy $deplib_matches; shift
-		  deplib_match=$1
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    func_append newdeplibs " $i"
-		  else
-		    droppeddeps=yes
-		    echo
-		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		    echo "*** I have the capability to make that library automatically link in when"
-		    echo "*** you link to this library.  But I can only do this if you have a"
-		    echo "*** shared version of the library, which I believe you do not have"
-		    echo "*** because a test_compile did reveal that the linker did not use it for"
-		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
-		  fi
-		fi
-		;;
-	      *)
-		func_append newdeplibs " $i"
-		;;
-	      esac
-	    done
-	  else
-	    # Error occurred in the first compile.  Let's try to salvage
-	    # the situation: Compile a separate program for each library.
-	    for i in $deplibs; do
-	      case $i in
-	      -l*)
-		func_stripname -l '' "$i"
-		name=$func_stripname_result
-		$opt_dry_run || $RM conftest
-		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      func_append newdeplibs " $i"
-		      i=""
-		      ;;
-		    esac
-		  fi
-		  if test -n "$i" ; then
-		    libname=`eval "\\$ECHO \"$libname_spec\""`
-		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-		    set dummy $deplib_matches; shift
-		    deplib_match=$1
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      func_append newdeplibs " $i"
-		    else
-		      droppeddeps=yes
-		      echo
-		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		      echo "*** I have the capability to make that library automatically link in when"
-		      echo "*** you link to this library.  But I can only do this if you have a"
-		      echo "*** shared version of the library, which you do not appear to have"
-		      echo "*** because a test_compile did reveal that the linker did not use this one"
-		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-		    fi
-		  fi
-		else
-		  droppeddeps=yes
-		  echo
-		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-		  echo "*** make it link in!  You will probably need to install it or some"
-		  echo "*** library that it depends on before this library will be fully"
-		  echo "*** functional.  Installing it before continuing would be even better."
-		fi
-		;;
-	      *)
-		func_append newdeplibs " $i"
-		;;
-	      esac
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method; shift
-	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    case $a_deplib in
-	    -l*)
-	      func_stripname -l '' "$a_deplib"
-	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval "\\$ECHO \"$libname_spec\""`
-		if test -n "$file_magic_glob"; then
-		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
-		else
-		  libnameglob=$libname
-		fi
-		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  if test "$want_nocaseglob" = yes; then
-		    shopt -s nocaseglob
-		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-		    $nocaseglob
-		  else
-		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-		  fi
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null |
-			 $GREP " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
-			 $SED -e 10q |
-			 $EGREP "$file_magic_regex" > /dev/null; then
-			func_append newdeplibs " $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-		  $ECHO "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	      ;;
-	    *)
-	      # Add a -L argument.
-	      func_append newdeplibs " $a_deplib"
-	      ;;
-	    esac
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method; shift
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    case $a_deplib in
-	    -l*)
-	      func_stripname -l '' "$a_deplib"
-	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval "\\$ECHO \"$libname_spec\""`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
-		       $EGREP "$match_pattern_regex" > /dev/null; then
-		      func_append newdeplibs " $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	      ;;
-	    *)
-	      # Add a -L argument.
-	      func_append newdeplibs " $a_deplib"
-	      ;;
-	    esac
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
-	    done
-	  fi
-	  case $tmp_deplibs in
-	  *[!\	\ ]*)
-	    echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	    ;;
-	  esac
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library with the System framework
-	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
-	  ;;
-	esac
-
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    echo
-	    echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-	    echo "*** a static module, that should work as long as the dlopening"
-	    echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      echo
-	      echo "*** However, this would only work if libtool was able to extract symbol"
-	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      echo "*** not find such a program.  So, this module is probably useless."
-	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    echo "*** The inter-library dependencies that have been dropped here will be"
-	    echo "*** automatically added whenever a program is linked with this library"
-	    echo "*** or is declared to -dlopen it."
-
-	    if test "$allow_undefined" = no; then
-	      echo
-	      echo "*** Since this library must not contain undefined symbols,"
-	      echo "*** because either the platform does not support them or"
-	      echo "*** it was explicitly requested with -no-undefined,"
-	      echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-      case $host in
-	*-*-darwin*)
-	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  ;;
-      esac
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $deplibs " in
-	  *" -L$path/$objdir "*)
-	    func_append new_libs " -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) func_append new_libs " $deplib" ;;
-	  esac
-	  ;;
-	*) func_append new_libs " $deplib" ;;
-	esac
-      done
-      deplibs="$new_libs"
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	# Remove ${wl} instances when linking with ld.
-	# FIXME: should test the right _cmds variable.
-	case $archive_cmds in
-	  *\$LD\ *) wl= ;;
-        esac
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		func_replace_sysroot "$libdir"
-		libdir=$func_replace_sysroot_result
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		func_append dep_rpath " $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append perm_rpath " $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      func_append rpath "$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext_cmds\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	shift
-	realname="$1"
-	shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
-
-	lib="$output_objdir/$realname"
-	linknames=
-	for link
-	do
-	  func_append linknames " $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	test "X$libobjs" = "X " && libobjs=
-
-	delfiles=
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-	  export_symbols="$output_objdir/$libname.uexp"
-	  func_append delfiles " $export_symbols"
-	fi
-
-	orig_export_symbols=
-	case $host_os in
-	cygwin* | mingw* | cegcc*)
-	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
-	    # exporting using user supplied symfile
-	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
-	      # and it's NOT already a .def file. Must figure out
-	      # which of the given symbols are data symbols and tag
-	      # them as such. So, trigger use of export_symbols_cmds.
-	      # export_symbols gets reassigned inside the "prepare
-	      # the list of exported symbols" if statement, so the
-	      # include_expsyms logic still works.
-	      orig_export_symbols="$export_symbols"
-	      export_symbols=
-	      always_export_symbols=yes
-	    fi
-	  fi
-	  ;;
-	esac
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    func_verbose "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $opt_dry_run || $RM $export_symbols
-	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd1 in $cmds; do
-	      IFS="$save_ifs"
-	      # Take the normal branch if the nm_file_list_spec branch
-	      # doesn't work or if tool conversion is not needed.
-	      case $nm_file_list_spec~$to_tool_file_cmd in
-		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
-		  try_normal_branch=yes
-		  eval cmd=\"$cmd1\"
-		  func_len " $cmd"
-		  len=$func_len_result
-		  ;;
-		*)
-		  try_normal_branch=no
-		  ;;
-	      esac
-	      if test "$try_normal_branch" = yes \
-		 && { test "$len" -lt "$max_cmd_len" \
-		      || test "$max_cmd_len" -le -1; }
-	      then
-		func_show_eval "$cmd" 'exit $?'
-		skipped_export=false
-	      elif test -n "$nm_file_list_spec"; then
-		func_basename "$output"
-		output_la=$func_basename_result
-		save_libobjs=$libobjs
-		save_output=$output
-		output=${output_objdir}/${output_la}.nm
-		func_to_tool_file "$output"
-		libobjs=$nm_file_list_spec$func_to_tool_file_result
-		func_append delfiles " $output"
-		func_verbose "creating $NM input file list: $output"
-		for obj in $save_libobjs; do
-		  func_to_tool_file "$obj"
-		  $ECHO "$func_to_tool_file_result"
-		done > "$output"
-		eval cmd=\"$cmd1\"
-		func_show_eval "$cmd" 'exit $?'
-		output=$save_output
-		libobjs=$save_libobjs
-		skipped_export=false
-	      else
-		# The command line is too long to execute in one step.
-		func_verbose "using reloadable object file for export list..."
-		skipped_export=:
-		# Break out early, otherwise skipped_export may be
-		# set to false by a later but shorter cmd.
-		break
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
-	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  tmp_export_symbols="$export_symbols"
-	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-	fi
-
-	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
-	  # The given exports_symbols file has to be filtered, so filter it.
-	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	  # 's' commands which not all seds can handle. GNU sed should be fine
-	  # though. Also, the filter scales superlinearly with the number of
-	  # global variables. join(1) would be nice here, but unfortunately
-	  # isn't a blessed tool.
-	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-	  export_symbols=$output_objdir/$libname.def
-	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-	  case " $convenience " in
-	  *" $test_deplib "*) ;;
-	  *)
-	    func_append tmp_deplibs " $test_deplib"
-	    ;;
-	  esac
-	done
-	deplibs="$tmp_deplibs"
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec" &&
-	    test "$compiler_needs_object" = yes &&
-	    test -z "$libobjs"; then
-	    # extract the archives, so we have objects to list.
-	    # TODO: could optimize this to just extract one archive.
-	    whole_archive_flag_spec=
-	  fi
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	    test "X$libobjs" = "X " && libobjs=
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    func_append generated " $gentop"
-
-	    func_extract_archives $gentop $convenience
-	    func_append libobjs " $func_extract_archives_result"
-	    test "X$libobjs" = "X " && libobjs=
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  func_append linker_flags " $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$opt_mode" = relink; then
-	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
-	fi
-
-	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
-	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	    eval test_cmds=\"$module_expsym_cmds\"
-	    cmds=$module_expsym_cmds
-	  else
-	    eval test_cmds=\"$module_cmds\"
-	    cmds=$module_cmds
-	  fi
-	else
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    eval test_cmds=\"$archive_expsym_cmds\"
-	    cmds=$archive_expsym_cmds
-	  else
-	    eval test_cmds=\"$archive_cmds\"
-	    cmds=$archive_cmds
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" &&
-	   func_len " $test_cmds" &&
-	   len=$func_len_result &&
-	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise
-	  # or, if using GNU ld and skipped_export is not :, use a linker
-	  # script.
-
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-	  func_basename "$output"
-	  output_la=$func_basename_result
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  last_robj=
-	  k=1
-
-	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-	    output=${output_objdir}/${output_la}.lnkscript
-	    func_verbose "creating GNU ld script: $output"
-	    echo 'INPUT (' > $output
-	    for obj in $save_libobjs
-	    do
-	      func_to_tool_file "$obj"
-	      $ECHO "$func_to_tool_file_result" >> $output
-	    done
-	    echo ')' >> $output
-	    func_append delfiles " $output"
-	    func_to_tool_file "$output"
-	    output=$func_to_tool_file_result
-	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-	    output=${output_objdir}/${output_la}.lnk
-	    func_verbose "creating linker input file list: $output"
-	    : > $output
-	    set x $save_libobjs
-	    shift
-	    firstobj=
-	    if test "$compiler_needs_object" = yes; then
-	      firstobj="$1 "
-	      shift
-	    fi
-	    for obj
-	    do
-	      func_to_tool_file "$obj"
-	      $ECHO "$func_to_tool_file_result" >> $output
-	    done
-	    func_append delfiles " $output"
-	    func_to_tool_file "$output"
-	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
-	  else
-	    if test -n "$save_libobjs"; then
-	      func_verbose "creating reloadable object files..."
-	      output=$output_objdir/$output_la-${k}.$objext
-	      eval test_cmds=\"$reload_cmds\"
-	      func_len " $test_cmds"
-	      len0=$func_len_result
-	      len=$len0
-
-	      # Loop over the list of objects to be linked.
-	      for obj in $save_libobjs
-	      do
-		func_len " $obj"
-		func_arith $len + $func_len_result
-		len=$func_arith_result
-		if test "X$objlist" = X ||
-		   test "$len" -lt "$max_cmd_len"; then
-		  func_append objlist " $obj"
-		else
-		  # The command $test_cmds is almost too long, add a
-		  # command to the queue.
-		  if test "$k" -eq 1 ; then
-		    # The first file doesn't have a previous command to add.
-		    reload_objs=$objlist
-		    eval concat_cmds=\"$reload_cmds\"
-		  else
-		    # All subsequent reloadable object files will link in
-		    # the last one created.
-		    reload_objs="$objlist $last_robj"
-		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
-		  fi
-		  last_robj=$output_objdir/$output_la-${k}.$objext
-		  func_arith $k + 1
-		  k=$func_arith_result
-		  output=$output_objdir/$output_la-${k}.$objext
-		  objlist=" $obj"
-		  func_len " $last_robj"
-		  func_arith $len0 + $func_len_result
-		  len=$func_arith_result
-		fi
-	      done
-	      # Handle the remaining objects by creating one last
-	      # reloadable object file.  All subsequent reloadable object
-	      # files will link in the last one created.
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      reload_objs="$objlist $last_robj"
-	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
-	      if test -n "$last_robj"; then
-	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
-	      fi
-	      func_append delfiles " $output"
-
-	    else
-	      output=
-	    fi
-
-	    if ${skipped_export-false}; then
-	      func_verbose "generating symbol list for \`$libname.la'"
-	      export_symbols="$output_objdir/$libname.exp"
-	      $opt_dry_run || $RM $export_symbols
-	      libobjs=$output
-	      # Append the command to create the export file.
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
-	      if test -n "$last_robj"; then
-		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
-	      fi
-	    fi
-
-	    test -n "$save_libobjs" &&
-	      func_verbose "creating a temporary reloadable object file: $output"
-
-	    # Loop through the commands generated above and execute them.
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $concat_cmds; do
-	      IFS="$save_ifs"
-	      $opt_silent || {
-		  func_quote_for_expand "$cmd"
-		  eval "func_echo $func_quote_for_expand_result"
-	      }
-	      $opt_dry_run || eval "$cmd" || {
-		lt_exit=$?
-
-		# Restore the uninstalled library and exit
-		if test "$opt_mode" = relink; then
-		  ( cd "$output_objdir" && \
-		    $RM "${realname}T" && \
-		    $MV "${realname}U" "$realname" )
-		fi
-
-		exit $lt_exit
-	      }
-	    done
-	    IFS="$save_ifs"
-
-	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
-	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-
-          if ${skipped_export-false}; then
-	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	      tmp_export_symbols="$export_symbols"
-	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-	    fi
-
-	    if test -n "$orig_export_symbols"; then
-	      # The given exports_symbols file has to be filtered, so filter it.
-	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	      # 's' commands which not all seds can handle. GNU sed should be fine
-	      # though. Also, the filter scales superlinearly with the number of
-	      # global variables. join(1) would be nice here, but unfortunately
-	      # isn't a blessed tool.
-	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-	      export_symbols=$output_objdir/$libname.def
-	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-	    fi
-	  fi
-
-	  libobjs=$output
-	  # Restore the value of output.
-	  output=$save_output
-
-	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	    test "X$libobjs" = "X " && libobjs=
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test "$module" = yes && test -n "$module_cmds" ; then
-	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	      cmds=$module_expsym_cmds
-	    else
-	      cmds=$module_cmds
-	    fi
-	  else
-	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	      cmds=$archive_expsym_cmds
-	    else
-	      cmds=$archive_cmds
-	    fi
-	  fi
-	fi
-
-	if test -n "$delfiles"; then
-	  # Append the command to remove temporary files to $cmds.
-	  eval cmds=\"\$cmds~\$RM $delfiles\"
-	fi
-
-	# Add any objects from preloaded convenience libraries
-	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $dlprefiles
-	  func_append libobjs " $func_extract_archives_result"
-	  test "X$libobjs" = "X " && libobjs=
-	fi
-
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $opt_silent || {
-	    func_quote_for_expand "$cmd"
-	    eval "func_echo $func_quote_for_expand_result"
-	  }
-	  $opt_dry_run || eval "$cmd" || {
-	    lt_exit=$?
-
-	    # Restore the uninstalled library and exit
-	    if test "$opt_mode" = relink; then
-	      ( cd "$output_objdir" && \
-	        $RM "${realname}T" && \
-		$MV "${realname}U" "$realname" )
-	    fi
-
-	    exit $lt_exit
-	  }
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$opt_mode" = relink; then
-	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
-	  if test -n "$convenience"; then
-	    if test -z "$whole_archive_flag_spec"; then
-	      func_show_eval '${RM}r "$gentop"'
-	    fi
-	  fi
-
-	  exit $EXIT_SUCCESS
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
-	  fi
-	done
-
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for objects"
-      fi
-
-      case " $deplibs" in
-      *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for objects" ;;
-      esac
-
-      test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for objects"
-
-      test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for objects"
-
-      test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for objects"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for objects"
-
-      case $output in
-      *.lo)
-	test -n "$objs$old_deplibs" && \
-	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
-	libobj=$output
-	func_lo2o "$libobj"
-	obj=$func_lo2o_result
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $opt_dry_run || $RM $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
-	else
-	  gentop="$output_objdir/${obj}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $convenience
-	  reload_conv_objs="$reload_objs $func_extract_archives_result"
-	fi
-      fi
-
-      # If we're not building shared, we need to use non_pic_objs
-      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      func_execute_cmds "$reload_cmds" 'exit $?'
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  func_show_eval '${RM}r "$gentop"'
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  func_show_eval '${RM}r "$gentop"'
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	# $show "echo timestamp > $libobj"
-	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	func_execute_cmds "$reload_cmds" 'exit $?'
-      fi
-
-      if test -n "$gentop"; then
-	func_show_eval '${RM}r "$gentop"'
-      fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) func_stripname '' '.exe' "$output"
-	          output=$func_stripname_result.exe;;
-      esac
-      test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for programs"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for programs"
-
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-	&& test "$dlopen_self" = unknown \
-	&& test "$dlopen_self_static" = unknown && \
-	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
-	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
-	;;
-      esac
-
-      case $host in
-      *-*-darwin*)
-	# Don't allow lazy linking, it breaks C++ global constructors
-	# But is supposedly fixed on 10.4 or later (yay!).
-	if test "$tagname" = CXX ; then
-	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
-	    10.[0123])
-	      func_append compile_command " ${wl}-bind_at_load"
-	      func_append finalize_command " ${wl}-bind_at_load"
-	    ;;
-	  esac
-	fi
-	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
-	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	;;
-      esac
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $compile_deplibs " in
-	  *" -L$path/$objdir "*)
-	    func_append new_libs " -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $compile_deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) func_append new_libs " $deplib" ;;
-	  esac
-	  ;;
-	*) func_append new_libs " $deplib" ;;
-	esac
-      done
-      compile_deplibs="$new_libs"
-
-
-      func_append compile_command " $compile_deplibs"
-      func_append finalize_command " $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_rpath " $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    func_append rpath " $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append perm_rpath " $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  ::) dllsearchpath=$libdir;;
-	  *) func_append dllsearchpath ":$libdir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  ::) dllsearchpath=$testbindir;;
-	  *) func_append dllsearchpath ":$testbindir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    func_append rpath " $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_perm_rpath " $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-      fi
-
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
-      # template prelinking step
-      if test -n "$prelink_cmds"; then
-	func_execute_cmds "$prelink_cmds" 'exit $?'
-      fi
-
-      wrappers_required=yes
-      case $host in
-      *cegcc* | *mingw32ce*)
-        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
-      *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      esac
-      if test "$wrappers_required" = no; then
-	# Replace the output file specification.
-	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	exit_status=0
-	func_show_eval "$link_command" 'exit_status=$?'
-
-	if test -n "$postlink_cmds"; then
-	  func_to_tool_file "$output"
-	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	  func_execute_cmds "$postlink_cmds" 'exit $?'
-	fi
-
-	# Delete the generated files.
-	if test -f "$output_objdir/${outputname}S.${objext}"; then
-	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
-	fi
-
-	exit $exit_status
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    func_append rpath "$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    func_append rpath "$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$opt_dry_run || $RM $output
-	# Link the executable and exit
-	func_show_eval "$link_command" 'exit $?'
-
-	if test -n "$postlink_cmds"; then
-	  func_to_tool_file "$output"
-	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	  func_execute_cmds "$postlink_cmds" 'exit $?'
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-	func_warning "this platform does not like uninstalled shared libraries"
-	func_warning "\`$output' will be relinked during installation"
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      func_show_eval "$link_command" 'exit $?'
-
-      if test -n "$postlink_cmds"; then
-	func_to_tool_file "$output_objdir/$outputname"
-	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	func_execute_cmds "$postlink_cmds" 'exit $?'
-      fi
-
-      # Now create the wrapper script.
-      func_verbose "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	# Preserve any variables that may affect compiler behavior
-	for var in $variables_saved_for_relink; do
-	  if eval test -z \"\${$var+set}\"; then
-	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-	  elif eval var_value=\$$var; test -z "$var_value"; then
-	    relink_command="$var=; export $var; $relink_command"
-	  else
-	    func_quote_for_eval "$var_value"
-	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if not in dry run mode.
-      $opt_dry_run || {
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) func_stripname '' '.exe' "$output"
-	         output=$func_stripname_result ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    func_stripname '' '.exe' "$outputname"
-	    outputname=$func_stripname_result ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    func_dirname_and_basename "$output" "" "."
-	    output_name=$func_basename_result
-	    output_path=$func_dirname_result
-	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
-	    cwrapper="$output_path/$output_name.exe"
-	    $RM $cwrappersource $cwrapper
-	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
-	    func_emit_cwrapperexe_src > $cwrappersource
-
-	    # The wrapper executable is built using the $host compiler,
-	    # because it contains $host paths and files. If cross-
-	    # compiling, it, like the target executable, must be
-	    # executed on the $host or under an emulation environment.
-	    $opt_dry_run || {
-	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
-	      $STRIP $cwrapper
-	    }
-
-	    # Now, create the wrapper script for func_source use:
-	    func_ltwrapper_scriptname $cwrapper
-	    $RM $func_ltwrapper_scriptname_result
-	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
-	    $opt_dry_run || {
-	      # note: this script will not be executed, so do not chmod.
-	      if test "x$build" = "x$host" ; then
-		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
-	      else
-		func_emit_wrapper no > $func_ltwrapper_scriptname_result
-	      fi
-	    }
-	  ;;
-	  * )
-	    $RM $output
-	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
-	    func_emit_wrapper no > $output
-	    chmod +x $output
-	  ;;
-	esac
-      }
-      exit $EXIT_SUCCESS
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save $symfileobj"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$old_deplibs $non_pic_objects"
-	  if test "$preload" = yes && test -f "$symfileobj"; then
-	    func_append oldobjs " $symfileobj"
-	  fi
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	func_append generated " $gentop"
-
-	func_extract_archives $gentop $addlibs
-	func_append oldobjs " $func_extract_archives_result"
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	cmds=$old_archive_from_new_cmds
-      else
-
-	# Add any objects from preloaded convenience libraries
-	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $dlprefiles
-	  func_append oldobjs " $func_extract_archives_result"
-	fi
-
-	# POSIX demands no paths to be encoded in archives.  We have
-	# to avoid creating archives with duplicate basenames if we
-	# might have to extract them afterwards, e.g., when creating a
-	# static archive out of a convenience library, or when linking
-	# the entirety of a libtool archive into another (currently
-	# not supported by libtool).
-	if (for obj in $oldobjs
-	    do
-	      func_basename "$obj"
-	      $ECHO "$func_basename_result"
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	  :
-	else
-	  echo "copying selected object files to avoid basename conflicts..."
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-	  func_mkdir_p "$gentop"
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  counter=1
-	  for obj in $save_oldobjs
-	  do
-	    func_basename "$obj"
-	    objbase="$func_basename_result"
-	    case " $oldobjs " in
-	    " ") oldobjs=$obj ;;
-	    *[\ /]"$objbase "*)
-	      while :; do
-		# Make sure we don't pick an alternate name that also
-		# overlaps.
-		newobj=lt$counter-$objbase
-		func_arith $counter + 1
-		counter=$func_arith_result
-		case " $oldobjs " in
-		*[\ /]"$newobj "*) ;;
-		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
-		esac
-	      done
-	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      func_append oldobjs " $gentop/$newobj"
-	      ;;
-	    *) func_append oldobjs " $obj" ;;
-	    esac
-	  done
-	fi
-	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-	tool_oldlib=$func_to_tool_file_result
-	eval cmds=\"$old_archive_cmds\"
-
-	func_len " $cmds"
-	len=$func_len_result
-	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  cmds=$old_archive_cmds
-	elif test -n "$archiver_list_spec"; then
-	  func_verbose "using command file archive linking..."
-	  for obj in $oldobjs
-	  do
-	    func_to_tool_file "$obj"
-	    $ECHO "$func_to_tool_file_result"
-	  done > $output_objdir/$libname.libcmd
-	  func_to_tool_file "$output_objdir/$libname.libcmd"
-	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
-	  cmds=$old_archive_cmds
-	else
-	  # the command line is too long to link in one step, link in parts
-	  func_verbose "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done
-	  eval test_cmds=\"$old_archive_cmds\"
-	  func_len " $test_cmds"
-	  len0=$func_len_result
-	  len=$len0
-	  for obj in $save_oldobjs
-	  do
-	    func_len " $obj"
-	    func_arith $len + $func_len_result
-	    len=$func_arith_result
-	    func_append objlist " $obj"
-	    if test "$len" -lt "$max_cmd_len"; then
-	      :
-	    else
-	      # the above command should be used before it gets too long
-	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
-		RANLIB=$save_RANLIB
-	      fi
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
-	      len=$len0
-	    fi
-	  done
-	  RANLIB=$save_RANLIB
-	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
-	    eval cmds=\"\$concat_cmds\"
-	  else
-	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-	  fi
-	fi
-      fi
-      func_execute_cmds "$cmds" 'exit $?'
-    done
-
-    test -n "$generated" && \
-      func_show_eval "${RM}r$generated"
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      func_verbose "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-	if eval test -z \"\${$var+set}\"; then
-	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-	elif eval var_value=\$$var; test -z "$var_value"; then
-	  relink_command="$var=; export $var; $relink_command"
-	else
-	  func_quote_for_eval "$var_value"
-	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
-	relink_command=
-      fi
-
-      # Only create the output if not a dry run.
-      $opt_dry_run || {
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	    # Replace all uninstalled libtool libraries with the installed ones
-	    newdependency_libs=
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      *.la)
-		func_basename "$deplib"
-		name="$func_basename_result"
-		func_resolve_sysroot "$deplib"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$deplib' is not a valid libtool archive"
-		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      -L*)
-		func_stripname -L '' "$deplib"
-		func_replace_sysroot "$func_stripname_result"
-		func_append newdependency_libs " -L$func_replace_sysroot_result"
-		;;
-	      -R*)
-		func_stripname -R '' "$deplib"
-		func_replace_sysroot "$func_stripname_result"
-		func_append newdependency_libs " -R$func_replace_sysroot_result"
-		;;
-	      *) func_append newdependency_libs " $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-
-	    for lib in $dlfiles; do
-	      case $lib in
-	      *.la)
-	        func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      *) func_append newdlfiles " $lib" ;;
-	      esac
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-	      *.la)
-		# Only pass preopened files to the pseudo-archive (for
-		# eventual linking with the app. that links it) if we
-		# didn't already link the preopened objects directly into
-		# the library:
-		func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      esac
-	    done
-	    dlprefiles="$newdlprefiles"
-	  else
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      func_append newdlfiles " $abs"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      func_append newdlprefiles " $abs"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $RM $output
-	  # place dlname in correct position for cygwin
-	  # In fact, it would be nice if we could use this code for all target
-	  # systems that can't hard-code library paths into their executables
-	  # and that have no shared library path variable independent of PATH,
-	  # but it turns out we can't easily determine that from inspecting
-	  # libtool variables, so we have to hard-code the OSs to which it
-	  # applies here; at the moment, that means platforms that use the PE
-	  # object format with DLL files.  See the long comment at the top of
-	  # tests/bindir.at for full details.
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
-	      # If a -bindir argument was supplied, place the dll there.
-	      if test "x$bindir" != x ;
-	      then
-		func_relative_path "$install_libdir" "$bindir"
-		tdlname=$func_relative_path_result$dlname
-	      else
-		# Otherwise fall back on heuristic.
-		tdlname=../bin/$dlname
-	      fi
-	      ;;
-	  esac
-	  $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
-	    $ECHO >> $output "\
-relink_command=\"$relink_command\""
-	  fi
-	done
-      }
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-    func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
-    $opt_debug
-    RM="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) func_append RM " $arg"; rmforce=yes ;;
-      -*) func_append RM " $arg" ;;
-      *) func_append files " $arg" ;;
-      esac
-    done
-
-    test -z "$RM" && \
-      func_fatal_help "you must specify an RM program"
-
-    rmdirs=
-
-    for file in $files; do
-      func_dirname "$file" "" "."
-      dir="$func_dirname_result"
-      if test "X$dir" = X.; then
-	odir="$objdir"
-      else
-	odir="$dir/$objdir"
-      fi
-      func_basename "$file"
-      name="$func_basename_result"
-      test "$opt_mode" = uninstall && odir="$dir"
-
-      # Remember odir for removal later, being careful to avoid duplicates
-      if test "$opt_mode" = clean; then
-	case " $rmdirs " in
-	  *" $odir "*) ;;
-	  *) func_append rmdirs " $odir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if { test -L "$file"; } >/dev/null 2>&1 ||
-	 { test -h "$file"; } >/dev/null 2>&1 ||
-	 test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if func_lalib_p "$file"; then
-	  func_source $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    func_append rmfiles " $odir/$n"
-	  done
-	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
-	  case "$opt_mode" in
-	  clean)
-	    case " $library_names " in
-	    *" $dlname "*) ;;
-	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
-	    esac
-	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
-	    ;;
-	  uninstall)
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	    ;;
-	  esac
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if func_lalib_p "$file"; then
-
-	  # Read the .lo file
-	  func_source $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" &&
-	     test "$pic_object" != none; then
-	    func_append rmfiles " $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" &&
-	     test "$non_pic_object" != none; then
-	    func_append rmfiles " $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$opt_mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe)
-	    func_stripname '' '.exe' "$file"
-	    file=$func_stripname_result
-	    func_stripname '' '.exe' "$name"
-	    noexename=$func_stripname_result
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    func_append rmfiles " $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if func_ltwrapper_p "$file"; then
-	    if func_ltwrapper_executable_p "$file"; then
-	      func_ltwrapper_scriptname "$file"
-	      relink_command=
-	      func_source $func_ltwrapper_scriptname_result
-	      func_append rmfiles " $func_ltwrapper_scriptname_result"
-	    else
-	      relink_command=
-	      func_source $dir/$noexename
-	    fi
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      func_append rmfiles " $odir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      func_append rmfiles " $odir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      func_show_eval "$RM $rmfiles" 'exit_status=1'
-    done
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	func_show_eval "rmdir $dir >/dev/null 2>&1"
-      fi
-    done
-
-    exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-    func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
-  help="$generic_help"
-  func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
-  eval exec "$exec_cmd"
-  exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them.  This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration.  But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
-
diff --git a/conf/ltoptions.m4 b/conf/ltoptions.m4
deleted file mode 100644
index 5d9acd8..0000000
--- a/conf/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling.                    -*- Autoconf -*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
-#   Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-        _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-		      [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME.  If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-    [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
-  dnl
-  dnl Simply set some default values (i.e off) if boolean options were not
-  dnl specified:
-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-  ])
-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-  ])
-  dnl
-  dnl If no reference was made to various pairs of opposing options, then
-  dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
-  dnl archives by default:
-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-  		   [_LT_ENABLE_FAST_INSTALL])
-  ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-	[Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
-    _LT_DECL([build_old_libs], [enable_static], [0],
-	[Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
-	 [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
-	if test "X$lt_pkg" = "X$lt_p"; then
-	  pic_mode=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-		 [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-		 [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-		 [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
-		 [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/conf/ltsugar.m4 b/conf/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/conf/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
-       [$#], [2], [[$2]],
-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-       [$#], 1, [],
-       [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
-	     [m4_foreach([_Lt_suffix],
-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-		 [lt_append([$1], [$2], [$3])$4],
-		 [$5])],
-	  [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-	[$5],
-    [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/conf/ltversion.m4 b/conf/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/conf/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers			-*- Autoconf -*-
-#
-#   Copyright (C) 2004 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/conf/lt~obsolete.m4 b/conf/lt~obsolete.m4
deleted file mode 100644
index c573da9..0000000
--- a/conf/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else.  This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/conf/missing b/conf/missing
deleted file mode 100755
index db98974..0000000
--- a/conf/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2013-10-28.13; # UTC
-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
-  echo 1>&2 "Try '$0 --help' for more information"
-  exit 1
-fi
-
-case $1 in
-
-  --is-lightweight)
-    # Used by our autoconf macros to check whether the available missing
-    # script is modern enough.
-    exit 0
-    ;;
-
-  --run)
-    # Back-compat with the calling convention used by older automake.
-    shift
-    ;;
-
-  -h|--h|--he|--hel|--help)
-    echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
-  -h, --help      display this help and exit
-  -v, --version   output version information and exit
-
-Supported PROGRAM values:
-  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
-  bison     yacc      flex         lex       help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake at gnu.org>."
-    exit $?
-    ;;
-
-  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing $scriptversion (GNU Automake)"
-    exit $?
-    ;;
-
-  -*)
-    echo 1>&2 "$0: unknown '$1' option"
-    echo 1>&2 "Try '$0 --help' for more information"
-    exit 1
-    ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch.  This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
-  msg="probably too old"
-elif test $st -eq 127; then
-  # Program was missing.
-  msg="missing on your system"
-else
-  # Program was found and executed, but failed.  Give up.
-  exit $st
-fi
-
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
-  case $1 in
-    aclocal|automake)
-      echo "The '$1' program is part of the GNU Automake package:"
-      echo "<$gnu_software_URL/automake>"
-      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
-      echo "<$gnu_software_URL/autoconf>"
-      echo "<$gnu_software_URL/m4/>"
-      echo "<$perl_URL>"
-      ;;
-    autoconf|autom4te|autoheader)
-      echo "The '$1' program is part of the GNU Autoconf package:"
-      echo "<$gnu_software_URL/autoconf/>"
-      echo "It also requires GNU m4 and Perl in order to run:"
-      echo "<$gnu_software_URL/m4/>"
-      echo "<$perl_URL>"
-      ;;
-  esac
-}
-
-give_advice ()
-{
-  # Normalize program name to check for.
-  normalized_program=`echo "$1" | sed '
-    s/^gnu-//; t
-    s/^gnu//; t
-    s/^g//; t'`
-
-  printf '%s\n' "'$1' is $msg."
-
-  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
-  case $normalized_program in
-    autoconf*)
-      echo "You should only need it if you modified 'configure.ac',"
-      echo "or m4 files included by it."
-      program_details 'autoconf'
-      ;;
-    autoheader*)
-      echo "You should only need it if you modified 'acconfig.h' or"
-      echo "$configure_deps."
-      program_details 'autoheader'
-      ;;
-    automake*)
-      echo "You should only need it if you modified 'Makefile.am' or"
-      echo "$configure_deps."
-      program_details 'automake'
-      ;;
-    aclocal*)
-      echo "You should only need it if you modified 'acinclude.m4' or"
-      echo "$configure_deps."
-      program_details 'aclocal'
-      ;;
-   autom4te*)
-      echo "You might have modified some maintainer files that require"
-      echo "the 'autom4te' program to be rebuilt."
-      program_details 'autom4te'
-      ;;
-    bison*|yacc*)
-      echo "You should only need it if you modified a '.y' file."
-      echo "You may want to install the GNU Bison package:"
-      echo "<$gnu_software_URL/bison/>"
-      ;;
-    lex*|flex*)
-      echo "You should only need it if you modified a '.l' file."
-      echo "You may want to install the Fast Lexical Analyzer package:"
-      echo "<$flex_URL>"
-      ;;
-    help2man*)
-      echo "You should only need it if you modified a dependency" \
-           "of a man page."
-      echo "You may want to install the GNU Help2man package:"
-      echo "<$gnu_software_URL/help2man/>"
-    ;;
-    makeinfo*)
-      echo "You should only need it if you modified a '.texi' file, or"
-      echo "any other file indirectly affecting the aspect of the manual."
-      echo "You might want to install the Texinfo package:"
-      echo "<$gnu_software_URL/texinfo/>"
-      echo "The spurious makeinfo call might also be the consequence of"
-      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
-      echo "want to install GNU make:"
-      echo "<$gnu_software_URL/make/>"
-      ;;
-    *)
-      echo "You might have modified some files without having the proper"
-      echo "tools for further handling them.  Check the 'README' file, it"
-      echo "often tells you about the needed prerequisites for installing"
-      echo "this package.  You may also peek at any GNU archive site, in"
-      echo "case some other package contains this missing '$1' program."
-      ;;
-  esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
-                       -e '2,$s/^/         /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/conf/test-driver b/conf/test-driver
deleted file mode 100755
index d306056..0000000
--- a/conf/test-driver
+++ /dev/null
@@ -1,139 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-scriptversion=2013-07-13.22; # UTC
-
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-# Make unconditional expansion of undefined variables an error.  This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
-  echo "$0: $*" >&2
-  print_usage >&2
-  exit 2
-}
-
-print_usage ()
-{
-  cat <<END
-Usage:
-  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
-              [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--]
-              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-test_name= # Used for reporting.
-log_file=  # Where to save the output of the test script.
-trs_file=  # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
-  case $1 in
-  --help) print_usage; exit $?;;
-  --version) echo "test-driver $scriptversion"; exit $?;;
-  --test-name) test_name=$2; shift;;
-  --log-file) log_file=$2; shift;;
-  --trs-file) trs_file=$2; shift;;
-  --color-tests) color_tests=$2; shift;;
-  --expect-failure) expect_failure=$2; shift;;
-  --enable-hard-errors) enable_hard_errors=$2; shift;;
-  --) shift; break;;
-  -*) usage_error "invalid option: '$1'";;
-   *) break;;
-  esac
-  shift
-done
-
-missing_opts=
-test x"$test_name" = x && missing_opts="$missing_opts --test-name"
-test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
-test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
-if test x"$missing_opts" != x; then
-  usage_error "the following mandatory options are missing:$missing_opts"
-fi
-
-if test $# -eq 0; then
-  usage_error "missing argument"
-fi
-
-if test $color_tests = yes; then
-  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
-  red='' # Red.
-  grn='' # Green.
-  lgn='' # Light green.
-  blu='' # Blue.
-  mgn='' # Magenta.
-  std=''     # No color.
-else
-  red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-"$@" >$log_file 2>&1
-estatus=$?
-if test $enable_hard_errors = no && test $estatus -eq 99; then
-  estatus=1
-fi
-
-case $estatus:$expect_failure in
-  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
-  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
-  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
-  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
-  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
-  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
-esac
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/conf/warn-on-use.h b/conf/warn-on-use.h
new file mode 100644
index 0000000..fdf250e
--- /dev/null
+++ b/conf/warn-on-use.h
@@ -0,0 +1,109 @@
+/* A C macro for emitting warnings if a function is used.
+   Copyright (C) 2010-2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
+   for FUNCTION which will then trigger a compiler warning containing
+   the text of "literal string" anywhere that function is called, if
+   supported by the compiler.  If the compiler does not support this
+   feature, the macro expands to an unused extern declaration.
+
+   This macro is useful for marking a function as a potential
+   portability trap, with the intent that "literal string" include
+   instructions on the replacement function that should be used
+   instead.  However, one of the reasons that a function is a
+   portability trap is if it has the wrong signature.  Declaring
+   FUNCTION with a different signature in C is a compilation error, so
+   this macro must use the same type as any existing declaration so
+   that programs that avoid the problematic FUNCTION do not fail to
+   compile merely because they included a header that poisoned the
+   function.  But this implies that _GL_WARN_ON_USE is only safe to
+   use if FUNCTION is known to already have a declaration.  Use of
+   this macro implies that there must not be any other macro hiding
+   the declaration of FUNCTION; but undefining FUNCTION first is part
+   of the poisoning process anyway (although for symbols that are
+   provided only via a macro, the result is a compilation error rather
+   than a warning containing "literal string").  Also note that in
+   C++, it is only safe to use if FUNCTION has no overloads.
+
+   For an example, it is possible to poison 'getline' by:
+   - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
+     [getline]) in configure.ac, which potentially defines
+     HAVE_RAW_DECL_GETLINE
+   - adding this code to a header that wraps the system <stdio.h>:
+     #undef getline
+     #if HAVE_RAW_DECL_GETLINE
+     _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
+       "not universally present; use the gnulib module getline");
+     #endif
+
+   It is not possible to directly poison global variables.  But it is
+   possible to write a wrapper accessor function, and poison that
+   (less common usage, like &environ, will cause a compilation error
+   rather than issue the nice warning, but the end result of informing
+   the developer about their portability problem is still achieved):
+   #if HAVE_RAW_DECL_ENVIRON
+   static inline char ***rpl_environ (void) { return &environ; }
+   _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
+   # undef environ
+   # define environ (*rpl_environ ())
+   #endif
+   */
+#ifndef _GL_WARN_ON_USE
+
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+/* A compiler attribute is available in gcc versions 4.3.0 and later.  */
+#  define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function.  */
+#  define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function
+# else /* Unsupported.  */
+#  define _GL_WARN_ON_USE(function, message) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
+   is like _GL_WARN_ON_USE (function, "string"), except that the function is
+   declared with the given prototype, consisting of return type, parameters,
+   and attributes.
+   This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
+   not work in this case.  */
+#ifndef _GL_WARN_ON_USE_CXX
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes \
+     __attribute__ ((__warning__ (msg)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function.  */
+#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes
+# else /* Unsupported.  */
+#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_EXTERN_C declaration;
+   performs the declaration with C linkage.  */
+#ifndef _GL_WARN_EXTERN_C
+# if defined __cplusplus
+#  define _GL_WARN_EXTERN_C extern "C"
+# else
+#  define _GL_WARN_EXTERN_C extern
+# endif
+#endif
diff --git a/config.h.in b/config.h.in
deleted file mode 100644
index 2f91366..0000000
--- a/config.h.in
+++ /dev/null
@@ -1,1233 +0,0 @@
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-#ifndef _config_h
-#define _config_h
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Define to the number of bits in type 'ptrdiff_t'. */
-#undef BITSIZEOF_PTRDIFF_T
-
-/* Define to the number of bits in type 'sig_atomic_t'. */
-#undef BITSIZEOF_SIG_ATOMIC_T
-
-/* Define to the number of bits in type 'size_t'. */
-#undef BITSIZEOF_SIZE_T
-
-/* Define to the number of bits in type 'wchar_t'. */
-#undef BITSIZEOF_WCHAR_T
-
-/* Define to the number of bits in type 'wint_t'. */
-#undef BITSIZEOF_WINT_T
-
-/* What sort of HTTP client is this? */
-#undef CNAME
-
-/* Should a function (run-time) be used to determine the byte order? */
-#undef COMPUTE_ENDIAN_AT_RUNTIME
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-#undef CRAY_STACKSEG_END
-
-/* Client version number */
-#undef CVER
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Should DAP4 support be enabled? */
-#undef DAP4
-
-/* Highest DAP version implemented? */
-#undef DAP_PROTOCOL_VERSION
-
-/* unsigned bytes/chars */
-#undef DBYTE
-
-/* 32-bit real type */
-#undef DFLOAT32
-
-/* 64-bit real type */
-#undef DFLOAT64
-
-/* 16-bit integer type */
-#undef DINT16
-
-/* 32-bit integer type */
-#undef DINT32
-
-/* 64-bit integer type */
-#undef DINT64
-
-/* 8-bit integer type */
-#undef DINT8
-
-/* Set instrumentation to level 1 (see debug.h) */
-#undef DODS_DEBUG
-
-/* Set instrumentation to level 2 */
-#undef DODS_DEBUG2
-
-/* 16-bit unsigned integer type */
-#undef DUINT16
-
-/* 32-bit unsigned integer type */
-#undef DUINT32
-
-/* 64-bit unsigned integer type */
-#undef DUINT64
-
-/* Client name and version combined */
-#undef DVR
-
-/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */
-#undef FUNC_NL_LANGINFO_YESEXPR_WORKS
-
-/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
-   whether the gnulib module lock shall be considered present. */
-#undef GNULIB_LOCK
-
-/* Define to 1 when the gnulib module btowc should be tested. */
-#undef GNULIB_TEST_BTOWC
-
-/* Define to 1 when the gnulib module localeconv should be tested. */
-#undef GNULIB_TEST_LOCALECONV
-
-/* Define to 1 when the gnulib module mbrtowc should be tested. */
-#undef GNULIB_TEST_MBRTOWC
-
-/* Define to 1 when the gnulib module mbsinit should be tested. */
-#undef GNULIB_TEST_MBSINIT
-
-/* Define to 1 when the gnulib module mbtowc should be tested. */
-#undef GNULIB_TEST_MBTOWC
-
-/* Define to 1 when the gnulib module nl_langinfo should be tested. */
-#undef GNULIB_TEST_NL_LANGINFO
-
-/* Define to 1 when the gnulib module wcrtomb should be tested. */
-#undef GNULIB_TEST_WCRTOMB
-
-/* Define to 1 if you have the `alarm' function. */
-#undef HAVE_ALARM
-
-/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
-   may be supplied by this distribution. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the `atexit' function. */
-#undef HAVE_ATEXIT
-
-/* Define to 1 if you have the `btowc' function. */
-#undef HAVE_BTOWC
-
-/* Define to 1 if you have the <byteswap.h> header file. */
-#undef HAVE_BYTESWAP_H
-
-/* Define to 1 if you have the `bzero' function. */
-#undef HAVE_BZERO
-
-/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
-   */
-#undef HAVE_DECL_ALARM
-
-/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
-   don't. */
-#undef HAVE_DECL_GETC_UNLOCKED
-
-/* Define to 1 if you have the declaration of `isblank', and to 0 if you
-   don't. */
-#undef HAVE_DECL_ISBLANK
-
-/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
-   don't. */
-#undef HAVE_DECL_MBRTOWC
-
-/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
-   don't. */
-#undef HAVE_DECL_MBSINIT
-
-/* Define to 1 if you have the declaration of `towlower', and to 0 if you
-   don't. */
-#undef HAVE_DECL_TOWLOWER
-
-/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you
-   don't. */
-#undef HAVE_DECL_WCRTOMB
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_DIRENT_H
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the `dup2' function. */
-#undef HAVE_DUP2
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <features.h> header file. */
-#undef HAVE_FEATURES_H
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `isblank' function. */
-#undef HAVE_ISBLANK
-
-/* Define to 1 if you have the `iswcntrl' function. */
-#undef HAVE_ISWCNTRL
-
-/* Define to 1 if you have the `iswctype' function. */
-#undef HAVE_ISWCTYPE
-
-/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
-#undef HAVE_LANGINFO_CODESET
-
-/* Define to 1 if you have the <langinfo.h> header file. */
-#undef HAVE_LANGINFO_H
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#undef HAVE_LIBINTL_H
-
-/* Define to 1 if you have the `localtime_r' function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define to 1 if the system has the type 'long long int'. */
-#undef HAVE_LONG_LONG_INT
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the `mbrtowc' function. */
-#undef HAVE_MBRTOWC
-
-/* Define to 1 if you have the `mbsinit' function. */
-#undef HAVE_MBSINIT
-
-/* Define to 1 if <wchar.h> declares mbstate_t. */
-#undef HAVE_MBSTATE_T
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `memset' function. */
-#undef HAVE_MEMSET
-
-/* Define to 1 if you have the `mktime' function. */
-#undef HAVE_MKTIME
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#undef HAVE_NDIR_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the `nl_langinfo' function. */
-#undef HAVE_NL_LANGINFO
-
-/* Define to 1 if you have the `pow' function. */
-#undef HAVE_POW
-
-/* Define to 1 if you have the <pthread.h> header file. */
-#undef HAVE_PTHREAD_H
-
-/* Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE. */
-#undef HAVE_PTHREAD_MUTEX_RECURSIVE
-
-/* Define if the POSIX multithreading library has read/write locks. */
-#undef HAVE_PTHREAD_RWLOCK
-
-/* Define to 1 if you have the `putenv' function. */
-#undef HAVE_PUTENV
-
-/* Define to 1 if atoll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ATOLL
-
-/* Define to 1 if btowc is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_BTOWC
-
-/* Define to 1 if canonicalize_file_name is declared even after undefining
-   macros. */
-#undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
-
-/* Define to 1 if chdir is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_CHDIR
-
-/* Define to 1 if chown is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_CHOWN
-
-/* Define to 1 if dup is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUP
-
-/* Define to 1 if dup2 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUP2
-
-/* Define to 1 if dup3 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUP3
-
-/* Define to 1 if duplocale is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUPLOCALE
-
-/* Define to 1 if endusershell is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ENDUSERSHELL
-
-/* Define to 1 if environ is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ENVIRON
-
-/* Define to 1 if euidaccess is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_EUIDACCESS
-
-/* Define to 1 if faccessat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FACCESSAT
-
-/* Define to 1 if fchdir is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FCHDIR
-
-/* Define to 1 if fchownat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FCHOWNAT
-
-/* Define to 1 if fdatasync is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FDATASYNC
-
-/* Define to 1 if fsync is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FSYNC
-
-/* Define to 1 if ftruncate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FTRUNCATE
-
-/* Define to 1 if getcwd is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETCWD
-
-/* Define to 1 if getdomainname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETDOMAINNAME
-
-/* Define to 1 if getdtablesize is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETDTABLESIZE
-
-/* Define to 1 if getgroups is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETGROUPS
-
-/* Define to 1 if gethostname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETHOSTNAME
-
-/* Define to 1 if getloadavg is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLOADAVG
-
-/* Define to 1 if getlogin is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLOGIN
-
-/* Define to 1 if getlogin_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLOGIN_R
-
-/* Define to 1 if getpagesize is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETPAGESIZE
-
-/* Define to 1 if getsubopt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETSUBOPT
-
-/* Define to 1 if getusershell is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETUSERSHELL
-
-/* Define to 1 if grantpt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GRANTPT
-
-/* Define to 1 if group_member is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GROUP_MEMBER
-
-/* Define to 1 if initstate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INITSTATE
-
-/* Define to 1 if initstate_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INITSTATE_R
-
-/* Define to 1 if isatty is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ISATTY
-
-/* Define to 1 if iswctype is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ISWCTYPE
-
-/* Define to 1 if lchown is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LCHOWN
-
-/* Define to 1 if link is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LINK
-
-/* Define to 1 if linkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LINKAT
-
-/* Define to 1 if lseek is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LSEEK
-
-/* Define to 1 if mbrlen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBRLEN
-
-/* Define to 1 if mbrtowc is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBRTOWC
-
-/* Define to 1 if mbsinit is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBSINIT
-
-/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBSNRTOWCS
-
-/* Define to 1 if mbsrtowcs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBSRTOWCS
-
-/* Define to 1 if mkdtemp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKDTEMP
-
-/* Define to 1 if mkostemp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKOSTEMP
-
-/* Define to 1 if mkostemps is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKOSTEMPS
-
-/* Define to 1 if mkstemp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKSTEMP
-
-/* Define to 1 if mkstemps is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKSTEMPS
-
-/* Define to 1 if nl_langinfo is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_NL_LANGINFO
-
-/* Define to 1 if pipe is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PIPE
-
-/* Define to 1 if pipe2 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PIPE2
-
-/* Define to 1 if posix_openpt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_POSIX_OPENPT
-
-/* Define to 1 if pread is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PREAD
-
-/* Define to 1 if ptsname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PTSNAME
-
-/* Define to 1 if ptsname_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PTSNAME_R
-
-/* Define to 1 if pwrite is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PWRITE
-
-/* Define to 1 if random is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RANDOM
-
-/* Define to 1 if random_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RANDOM_R
-
-/* Define to 1 if readlink is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_READLINK
-
-/* Define to 1 if readlinkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_READLINKAT
-
-/* Define to 1 if realpath is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_REALPATH
-
-/* Define to 1 if rmdir is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RMDIR
-
-/* Define to 1 if rpmatch is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RPMATCH
-
-/* Define to 1 if secure_getenv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SECURE_GETENV
-
-/* Define to 1 if setenv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETENV
-
-/* Define to 1 if sethostname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETHOSTNAME
-
-/* Define to 1 if setlocale is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETLOCALE
-
-/* Define to 1 if setstate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETSTATE
-
-/* Define to 1 if setstate_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETSTATE_R
-
-/* Define to 1 if setusershell is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETUSERSHELL
-
-/* Define to 1 if sleep is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SLEEP
-
-/* Define to 1 if srandom is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SRANDOM
-
-/* Define to 1 if srandom_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SRANDOM_R
-
-/* Define to 1 if strtod is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOD
-
-/* Define to 1 if strtoll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOLL
-
-/* Define to 1 if strtoull is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOULL
-
-/* Define to 1 if symlink is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SYMLINK
-
-/* Define to 1 if symlinkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SYMLINKAT
-
-/* Define to 1 if towctrans is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_TOWCTRANS
-
-/* Define to 1 if ttyname_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_TTYNAME_R
-
-/* Define to 1 if unlink is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNLINK
-
-/* Define to 1 if unlinkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNLINKAT
-
-/* Define to 1 if unlockpt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNLOCKPT
-
-/* Define to 1 if unsetenv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNSETENV
-
-/* Define to 1 if usleep is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_USLEEP
-
-/* Define to 1 if wcpcpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCPCPY
-
-/* Define to 1 if wcpncpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCPNCPY
-
-/* Define to 1 if wcrtomb is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCRTOMB
-
-/* Define to 1 if wcscasecmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCASECMP
-
-/* Define to 1 if wcscat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCAT
-
-/* Define to 1 if wcschr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCHR
-
-/* Define to 1 if wcscmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCMP
-
-/* Define to 1 if wcscoll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCOLL
-
-/* Define to 1 if wcscpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCPY
-
-/* Define to 1 if wcscspn is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCSPN
-
-/* Define to 1 if wcsdup is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSDUP
-
-/* Define to 1 if wcslen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSLEN
-
-/* Define to 1 if wcsncasecmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCASECMP
-
-/* Define to 1 if wcsncat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCAT
-
-/* Define to 1 if wcsncmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCMP
-
-/* Define to 1 if wcsncpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCPY
-
-/* Define to 1 if wcsnlen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNLEN
-
-/* Define to 1 if wcsnrtombs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNRTOMBS
-
-/* Define to 1 if wcspbrk is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSPBRK
-
-/* Define to 1 if wcsrchr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSRCHR
-
-/* Define to 1 if wcsrtombs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSRTOMBS
-
-/* Define to 1 if wcsspn is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSSPN
-
-/* Define to 1 if wcsstr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSSTR
-
-/* Define to 1 if wcstok is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSTOK
-
-/* Define to 1 if wcswidth is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSWIDTH
-
-/* Define to 1 if wcsxfrm is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSXFRM
-
-/* Define to 1 if wctob is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCTOB
-
-/* Define to 1 if wctrans is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCTRANS
-
-/* Define to 1 if wctype is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCTYPE
-
-/* Define to 1 if wcwidth is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCWIDTH
-
-/* Define to 1 if wmemchr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMCHR
-
-/* Define to 1 if wmemcmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMCMP
-
-/* Define to 1 if wmemcpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMCPY
-
-/* Define to 1 if wmemmove is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMMOVE
-
-/* Define to 1 if wmemset is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMSET
-
-/* Define to 1 if _Exit is declared even after undefining macros. */
-#undef HAVE_RAW_DECL__EXIT
-
-/* Define to 1 if you have the `setenv' function. */
-#undef HAVE_SETENV
-
-/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
-#undef HAVE_SIGNED_SIG_ATOMIC_T
-
-/* Define to 1 if 'wchar_t' is a signed integer type. */
-#undef HAVE_SIGNED_WCHAR_T
-
-/* Define to 1 if 'wint_t' is a signed integer type. */
-#undef HAVE_SIGNED_WINT_T
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#undef HAVE_STDDEF_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strtol' function. */
-#undef HAVE_STRTOL
-
-/* Define to 1 if you have the `strtoul' function. */
-#undef HAVE_STRTOUL
-
-/* Define to 1 if `decimal_point' is a member of `struct lconv'. */
-#undef HAVE_STRUCT_LCONV_DECIMAL_POINT
-
-/* Define to 1 if `st_blksize' is a member of `struct stat'. */
-#undef HAVE_STRUCT_STAT_ST_BLKSIZE
-
-/* Define to 1 if you have the `symlink' function. */
-#undef HAVE_SYMLINK
-
-/* Define to 1 if you have the <sys/bitypes.h> header file. */
-#undef HAVE_SYS_BITYPES_H
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_DIR_H
-
-/* Define to 1 if you have the <sys/inttypes.h> header file. */
-#undef HAVE_SYS_INTTYPES_H
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_NDIR_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if you have the `timegm' function. */
-#undef HAVE_TIMEGM
-
-/* Define to 1 if you have the `towlower' function. */
-#undef HAVE_TOWLOWER
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if the system has the type 'unsigned long long int'. */
-#undef HAVE_UNSIGNED_LONG_LONG_INT
-
-/* Define to 1 if you have the <uuid.h> header file. */
-#undef HAVE_UUID_H
-
-/* Define to 1 if you have the <uuid/uuid.h> header file. */
-#undef HAVE_UUID_UUID_H
-
-/* Define to 1 if you have the <wchar.h> header file. */
-#undef HAVE_WCHAR_H
-
-/* Define if you have the 'wchar_t' type. */
-#undef HAVE_WCHAR_T
-
-/* Define to 1 if you have the `wcrtomb' function. */
-#undef HAVE_WCRTOMB
-
-/* Define to 1 if you have the <wctype.h> header file. */
-#undef HAVE_WCTYPE_H
-
-/* Define if you have the 'wint_t' type. */
-#undef HAVE_WINT_T
-
-/* Define to 1 if O_NOATIME works. */
-#undef HAVE_WORKING_O_NOATIME
-
-/* Define to 1 if O_NOFOLLOW works. */
-#undef HAVE_WORKING_O_NOFOLLOW
-
-/* Define to 1 if you have the <xlocale.h> header file. */
-#undef HAVE_XLOCALE_H
-
-/* Define to 1 if the system has the type `_Bool'. */
-#undef HAVE__BOOL
-
-/* Set to the prefix directory */
-#undef LIBDAP_ROOT
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#undef LT_OBJDIR
-
-/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
-#undef MALLOC_0_IS_NONNULL
-
-/* Define if the mbrtowc function does not return (size_t) -2 for empty input.
-   */
-#undef MBRTOWC_EMPTY_INPUT_BUG
-
-/* Define if the mbrtowc function has the NULL pwc argument bug. */
-#undef MBRTOWC_NULL_ARG1_BUG
-
-/* Define if the mbrtowc function has the NULL string argument bug. */
-#undef MBRTOWC_NULL_ARG2_BUG
-
-/* Define if the mbrtowc function does not return 0 for a NUL character. */
-#undef MBRTOWC_NUL_RETVAL_BUG
-
-/* Define if the mbrtowc function returns a wrong return value. */
-#undef MBRTOWC_RETVAL_BUG
-
-/* Define this to suppres assert() calls. */
-#undef NDEBUG
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define if the pthread_in_use() detection is hard. */
-#undef PTHREAD_IN_USE_DETECTION_HARD
-
-/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
-   'ptrdiff_t'. */
-#undef PTRDIFF_T_SUFFIX
-
-/* Define if nl_langinfo exists but is overridden by gnulib. */
-#undef REPLACE_NL_LANGINFO
-
-/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
-   'sig_atomic_t'. */
-#undef SIG_ATOMIC_T_SUFFIX
-
-/* The size of `char', as computed by sizeof. */
-#undef SIZEOF_CHAR
-
-/* The size of `double', as computed by sizeof. */
-#undef SIZEOF_DOUBLE
-
-/* The size of `float', as computed by sizeof. */
-#undef SIZEOF_FLOAT
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `int16_t', as computed by sizeof. */
-#undef SIZEOF_INT16_T
-
-/* The size of `int32_t', as computed by sizeof. */
-#undef SIZEOF_INT32_T
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `uint16_t', as computed by sizeof. */
-#undef SIZEOF_UINT16_T
-
-/* The size of `uint32_t', as computed by sizeof. */
-#undef SIZEOF_UINT32_T
-
-/* The size of `uint8_t', as computed by sizeof. */
-#undef SIZEOF_UINT8_T
-
-/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
-   'size_t'. */
-#undef SIZE_T_SUFFIX
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at runtime.
-	STACK_DIRECTION > 0 => grows toward higher addresses
-	STACK_DIRECTION < 0 => grows toward lower addresses
-	STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-#undef TM_IN_SYS_TIME
-
-/* Define if the POSIX multithreading library can be used. */
-#undef USE_POSIX_THREADS
-
-/* Define if references to the POSIX multithreading library should be made
-   weak. */
-#undef USE_POSIX_THREADS_WEAK
-
-/* Define if the GNU Pth multithreading library can be used. */
-#undef USE_PTH_THREADS
-
-/* Define if references to the GNU Pth multithreading library should be made
-   weak. */
-#undef USE_PTH_THREADS_WEAK
-
-/* Define if the old Solaris multithreading library can be used. */
-#undef USE_SOLARIS_THREADS
-
-/* Define if references to the old Solaris multithreading library should be
-   made weak. */
-#undef USE_SOLARIS_THREADS_WEAK
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable general extensions on OS X.  */
-#ifndef _DARWIN_C_SOURCE
-# undef _DARWIN_C_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Use GNU style printf and scanf.  */
-#ifndef __USE_MINGW_ANSI_STDIO
-# undef __USE_MINGW_ANSI_STDIO
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
-   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
-   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
-#ifndef _XOPEN_SOURCE
-# undef _XOPEN_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Define if the native Windows multithreading API can be used. */
-#undef USE_WINDOWS_THREADS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
-   'wchar_t'. */
-#undef WCHAR_T_SUFFIX
-
-/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
-   'wint_t'. */
-#undef WINT_T_SUFFIX
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* xdr float32 */
-#undef XDR_FLOAT32
-
-/* xdr float64 */
-#undef XDR_FLOAT64
-
-/* xdr int16 */
-#undef XDR_INT16
-
-/* xdr int32 */
-#undef XDR_INT32
-
-/* xdr uint16 */
-#undef XDR_UINT16
-
-/* xdr uint32 */
-#undef XDR_UINT32
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
-   `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Define to 1 on Solaris. */
-#undef _LCONV_C99
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
-#undef _NETBSD_SOURCE
-
-/* The _Noreturn keyword of C11.  */
-#if ! (defined _Noreturn \
-       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
-# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
-      || 0x5110 <= __SUNPRO_C)
-#  define _Noreturn __attribute__ ((__noreturn__))
-# elif defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn
-# endif
-#endif
-
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for 'stat' and other things to work. */
-#undef _POSIX_SOURCE
-
-/* Define if you want <regex.h> to include <limits.h>, so that it consistently
-   overrides <limits.h>'s RE_DUP_MAX. */
-#undef _REGEX_INCLUDE_LIMITS_H
-
-/* Define if you want regoff_t to be at least as wide POSIX requires. */
-#undef _REGEX_LARGE_OFFSETS
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Please see the Gnulib manual for how to use these macros.
-
-   Suppress extern inline with HP-UX cc, as it appears to be broken; see
-   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
-
-   Suppress extern inline with Sun C in standards-conformance mode, as it
-   mishandles inline functions that call each other.  E.g., for 'inline void f
-   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
-   'reference to static identifier "f" in extern inline function'.
-   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
-
-   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
-   on configurations that mistakenly use 'static inline' to implement
-   functions or macros in standard C headers like <ctype.h>.  For example,
-   if isdigit is mistakenly implemented via a static inline function,
-   a program containing an extern inline function that calls isdigit
-   may not work since the C standard prohibits extern inline functions
-   from calling static functions.  This bug is known to occur on:
-
-     OS X 10.8 and earlier; see:
-     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
-
-     DragonFly; see
-     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
-
-     FreeBSD; see:
-     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
-
-   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
-   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
-   Assume DragonFly and FreeBSD will be similar.  */
-#if (((defined __APPLE__ && defined __MACH__) \
-      || defined __DragonFly__ || defined __FreeBSD__) \
-     && (defined __header_inline \
-         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
-            && ! defined __clang__) \
-         : ((! defined _DONT_USE_CTYPE_INLINE_ \
-             && (defined __GNUC__ || defined __cplusplus)) \
-            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
-                && defined __GNUC__ && ! defined __cplusplus))))
-# define _GL_EXTERN_INLINE_STDHEADER_BUG
-#endif
-#if ((__GNUC__ \
-      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
-      : (199901L <= __STDC_VERSION__ \
-         && !defined __HP_cc \
-         && !(defined __SUNPRO_C && __STDC__))) \
-     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
-# define _GL_INLINE inline
-# define _GL_EXTERN_INLINE extern inline
-# define _GL_EXTERN_INLINE_IN_USE
-#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
-       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
-# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
-   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
-#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
-# else
-#  define _GL_INLINE extern inline
-# endif
-# define _GL_EXTERN_INLINE extern
-# define _GL_EXTERN_INLINE_IN_USE
-#else
-# define _GL_INLINE static _GL_UNUSED
-# define _GL_EXTERN_INLINE static _GL_UNUSED
-#endif
-
-/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
-   suppress bogus "no previous prototype for 'FOO'"
-   and "no previous declaration for 'FOO'" diagnostics,
-   when FOO is an inline function in the header; see
-   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
-   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
-#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
-# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
-#  define _GL_INLINE_HEADER_CONST_PRAGMA
-# else
-#  define _GL_INLINE_HEADER_CONST_PRAGMA \
-     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
-# endif
-# define _GL_INLINE_HEADER_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
-    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
-    _GL_INLINE_HEADER_CONST_PRAGMA
-# define _GL_INLINE_HEADER_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define _GL_INLINE_HEADER_BEGIN
-# define _GL_INLINE_HEADER_END
-#endif
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
-   the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
-   earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for Mac OS X.
-   __APPLE_CC__ tests for the Apple compiler and its version.
-   __STDC_VERSION__ tests for the C99 mode.  */
-#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
-# define __GNUC_STDC_INLINE__ 1
-#endif
-
-/* Define to a type if <wchar.h> does not define. */
-#undef mbstate_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef mode_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to rpl_re_comp if the replacement should be used. */
-#undef re_comp
-
-/* Define to rpl_re_compile_fastmap if the replacement should be used. */
-#undef re_compile_fastmap
-
-/* Define to rpl_re_compile_pattern if the replacement should be used. */
-#undef re_compile_pattern
-
-/* Define to rpl_re_exec if the replacement should be used. */
-#undef re_exec
-
-/* Define to rpl_re_match if the replacement should be used. */
-#undef re_match
-
-/* Define to rpl_re_match_2 if the replacement should be used. */
-#undef re_match_2
-
-/* Define to rpl_re_search if the replacement should be used. */
-#undef re_search
-
-/* Define to rpl_re_search_2 if the replacement should be used. */
-#undef re_search_2
-
-/* Define to rpl_re_set_registers if the replacement should be used. */
-#undef re_set_registers
-
-/* Define to rpl_re_set_syntax if the replacement should be used. */
-#undef re_set_syntax
-
-/* Define to rpl_re_syntax_options if the replacement should be used. */
-#undef re_syntax_options
-
-/* Define to rpl_regcomp if the replacement should be used. */
-#undef regcomp
-
-/* Define to rpl_regerror if the replacement should be used. */
-#undef regerror
-
-/* Define to rpl_regexec if the replacement should be used. */
-#undef regexec
-
-/* Define to rpl_regfree if the replacement should be used. */
-#undef regfree
-
-/* Define to the equivalent of the C99 'restrict' keyword, or to
-   nothing if this is not supported.  Do not define if restrict is
-   supported directly.  */
-#undef restrict
-/* Work around a bug in Sun C++: it does not support _Restrict or
-   __restrict__, even though the corresponding Sun C compiler ends up with
-   "#define restrict _Restrict" or "#define restrict __restrict__" in the
-   previous line.  Perhaps some future version of Sun C++ will work with
-   restrict; if so, hopefully it defines __RESTRICT like Sun C does.  */
-#if defined __SUNPRO_CC && !defined __RESTRICT
-# define _Restrict
-# define __restrict__
-#endif
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define as a signed type of the same size as size_t. */
-#undef ssize_t
-
-/* Define as a marker that can be attached to declarations that might not
-    be used.  This helps to reduce warnings, such as from
-    GCC -Wunused-parameter.  */
-#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
-# define _GL_UNUSED __attribute__ ((__unused__))
-#else
-# define _GL_UNUSED
-#endif
-/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
-   is a misnomer outside of parameter lists.  */
-#define _UNUSED_PARAMETER_ _GL_UNUSED
-
-/* gcc supports the "unused" attribute on possibly unused labels, and
-   g++ has since version 4.5.  Note to support C++ as well as C,
-   _GL_UNUSED_LABEL should be used with a trailing ;  */
-#if !defined __cplusplus || __GNUC__ > 4 \
-    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-# define _GL_UNUSED_LABEL _GL_UNUSED
-#else
-# define _GL_UNUSED_LABEL
-#endif
-
-/* The __pure__ attribute was added in gcc 2.96.  */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
-# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
-#else
-# define _GL_ATTRIBUTE_PURE /* empty */
-#endif
-
-/* The __const__ attribute was added in gcc 2.95.  */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
-#else
-# define _GL_ATTRIBUTE_CONST /* empty */
-#endif
-
-
-/* Define to empty if the keyword `volatile' does not work. Warning: valid
-   code using `volatile' can become incorrect without. Disable with care. */
-#undef volatile
-
-#endif /* _config_h */
diff --git a/configure b/configure
deleted file mode 100755
index 747b3ea..0000000
--- a/configure
+++ /dev/null
@@ -1,30017 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libdap 3.15.1.
-#
-# Report bugs to <opendap-tech at opendap.org>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
-  # into an infinite loop, continuously re-executing ourselves.
-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
-    _as_can_reexec=no; export _as_can_reexec;
-    # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
-  fi
-  # We don't want this to propagate to other subprocesses.
-          { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1
-
-  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
-      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: opendap-tech at opendap.org about your system, including
-$0: any error possibly output before this message. Then
-$0: install a modern shell, or manually run the script
-$0: under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-as_awk_strverscmp='
-  # Use only awk features that work with 7th edition Unix awk (1978).
-  # My, what an old awk you have, Mr. Solaris!
-  END {
-    while (length(v1) && length(v2)) {
-      # Set d1 to be the next thing to compare from v1, and likewise for d2.
-      # Normally this is a single character, but if v1 and v2 contain digits,
-      # compare them as integers and fractions as strverscmp does.
-      if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
-	# Split v1 and v2 into their leading digit string components d1 and d2,
-	# and advance v1 and v2 past the leading digit strings.
-	for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
-	for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
-	d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
-	d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
-	if (d1 ~ /^0/) {
-	  if (d2 ~ /^0/) {
-	    # Compare two fractions.
-	    while (d1 ~ /^0/ && d2 ~ /^0/) {
-	      d1 = substr(d1, 2); len1--
-	      d2 = substr(d2, 2); len2--
-	    }
-	    if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
-	      # The two components differ in length, and the common prefix
-	      # contains only leading zeros.  Consider the longer to be less.
-	      d1 = -len1
-	      d2 = -len2
-	    } else {
-	      # Otherwise, compare as strings.
-	      d1 = "x" d1
-	      d2 = "x" d2
-	    }
-	  } else {
-	    # A fraction is less than an integer.
-	    exit 1
-	  }
-	} else {
-	  if (d2 ~ /^0/) {
-	    # An integer is greater than a fraction.
-	    exit 2
-	  } else {
-	    # Compare two integers.
-	    d1 += 0
-	    d2 += 0
-	  }
-	}
-      } else {
-	# The normal case, without worrying about digits.
-	d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
-	d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
-      }
-      if (d1 < d2) exit 1
-      if (d1 > d2) exit 2
-    }
-    # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
-    # which mishandles some comparisons of empty strings to integers.
-    if (length(v2)) exit 1
-    if (length(v1)) exit 2
-  }
-'
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='libdap'
-PACKAGE_TARNAME='libdap'
-PACKAGE_VERSION='3.15.1'
-PACKAGE_STRING='libdap 3.15.1'
-PACKAGE_BUGREPORT='opendap-tech at opendap.org'
-PACKAGE_URL=''
-
-ac_unique_file="Connect.cc"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-gl_use_threads_default=
-ac_header_list=
-ac_func_list=
-ac_subst_vars='gltests_LTLIBOBJS
-gltests_LIBOBJS
-gl_LTLIBOBJS
-gl_LIBOBJS
-am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-USE_VALGRIND_FALSE
-USE_VALGRIND_TRUE
-HAVE_VALGRIND
-BUILD_DEVELOPER_FALSE
-BUILD_DEVELOPER_TRUE
-DAP4_DEFINED_FALSE
-DAP4_DEFINED_TRUE
-CPPUNIT_LIBS
-CPPUNIT_CFLAGS
-CPPUNIT_FALSE
-CPPUNIT_TRUE
-CPPUNIT_CONFIG
-UUID_LIBS
-PTHREAD_LIBS
-xmlprivatelibs
-xmlprivatereq
-XML2_LIBS
-XML2_CFLAGS
-CURL_STATIC_LIBS
-curlprivatelibs
-curlprivatereq
-CURL_LIBS
-CURL_CFLAGS
-PKG_CONFIG
-gltests_WITNESS
-REPLACE_TOWLOWER
-REPLACE_ISWCNTRL
-HAVE_WCTYPE_H
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
-NEXT_WCTYPE_H
-HAVE_ISWCNTRL
-REPLACE_ISWBLANK
-HAVE_WCTRANS_T
-HAVE_WCTYPE_T
-HAVE_ISWBLANK
-GNULIB_TOWCTRANS
-GNULIB_WCTRANS
-GNULIB_ISWCTYPE
-GNULIB_WCTYPE
-GNULIB_ISWBLANK
-HAVE_WINT_T
-HAVE_FEATURES_H
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
-NEXT_WCHAR_H
-HAVE_UNISTD_H
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
-NEXT_UNISTD_H
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
-UNISTD_H_HAVE_WINSOCK2_H
-REPLACE_WRITE
-REPLACE_USLEEP
-REPLACE_UNLINKAT
-REPLACE_UNLINK
-REPLACE_TTYNAME_R
-REPLACE_SYMLINKAT
-REPLACE_SYMLINK
-REPLACE_SLEEP
-REPLACE_RMDIR
-REPLACE_READLINKAT
-REPLACE_READLINK
-REPLACE_READ
-REPLACE_PWRITE
-REPLACE_PREAD
-REPLACE_LSEEK
-REPLACE_LINKAT
-REPLACE_LINK
-REPLACE_LCHOWN
-REPLACE_ISATTY
-REPLACE_GETPAGESIZE
-REPLACE_GETGROUPS
-REPLACE_GETLOGIN_R
-REPLACE_GETDTABLESIZE
-REPLACE_GETDOMAINNAME
-REPLACE_GETCWD
-REPLACE_FTRUNCATE
-REPLACE_FCHOWNAT
-REPLACE_DUP2
-REPLACE_DUP
-REPLACE_CLOSE
-REPLACE_CHOWN
-HAVE_SYS_PARAM_H
-HAVE_OS_H
-HAVE_DECL_TTYNAME_R
-HAVE_DECL_SETHOSTNAME
-HAVE_DECL_GETUSERSHELL
-HAVE_DECL_GETPAGESIZE
-HAVE_DECL_GETLOGIN_R
-HAVE_DECL_GETDOMAINNAME
-HAVE_DECL_FDATASYNC
-HAVE_DECL_FCHDIR
-HAVE_DECL_ENVIRON
-HAVE_USLEEP
-HAVE_UNLINKAT
-HAVE_SYMLINKAT
-HAVE_SYMLINK
-HAVE_SLEEP
-HAVE_SETHOSTNAME
-HAVE_READLINKAT
-HAVE_READLINK
-HAVE_PWRITE
-HAVE_PREAD
-HAVE_PIPE2
-HAVE_PIPE
-HAVE_LINKAT
-HAVE_LINK
-HAVE_LCHOWN
-HAVE_GROUP_MEMBER
-HAVE_GETPAGESIZE
-HAVE_GETLOGIN
-HAVE_GETHOSTNAME
-HAVE_GETGROUPS
-HAVE_GETDTABLESIZE
-HAVE_FTRUNCATE
-HAVE_FSYNC
-HAVE_FDATASYNC
-HAVE_FCHOWNAT
-HAVE_FCHDIR
-HAVE_FACCESSAT
-HAVE_EUIDACCESS
-HAVE_DUP3
-HAVE_DUP2
-HAVE_CHOWN
-GNULIB_WRITE
-GNULIB_USLEEP
-GNULIB_UNLINKAT
-GNULIB_UNLINK
-GNULIB_UNISTD_H_SIGPIPE
-GNULIB_UNISTD_H_NONBLOCKING
-GNULIB_TTYNAME_R
-GNULIB_SYMLINKAT
-GNULIB_SYMLINK
-GNULIB_SLEEP
-GNULIB_SETHOSTNAME
-GNULIB_RMDIR
-GNULIB_READLINKAT
-GNULIB_READLINK
-GNULIB_READ
-GNULIB_PWRITE
-GNULIB_PREAD
-GNULIB_PIPE2
-GNULIB_PIPE
-GNULIB_LSEEK
-GNULIB_LINKAT
-GNULIB_LINK
-GNULIB_LCHOWN
-GNULIB_ISATTY
-GNULIB_GROUP_MEMBER
-GNULIB_GETUSERSHELL
-GNULIB_GETPAGESIZE
-GNULIB_GETLOGIN_R
-GNULIB_GETLOGIN
-GNULIB_GETHOSTNAME
-GNULIB_GETGROUPS
-GNULIB_GETDTABLESIZE
-GNULIB_GETDOMAINNAME
-GNULIB_GETCWD
-GNULIB_FTRUNCATE
-GNULIB_FSYNC
-GNULIB_FDATASYNC
-GNULIB_FCHOWNAT
-GNULIB_FCHDIR
-GNULIB_FACCESSAT
-GNULIB_EUIDACCESS
-GNULIB_ENVIRON
-GNULIB_DUP3
-GNULIB_DUP2
-GNULIB_DUP
-GNULIB_CLOSE
-GNULIB_CHOWN
-GNULIB_CHDIR
-WINDOWS_64_BIT_OFF_T
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
-NEXT_SYS_TYPES_H
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H
-NEXT_STDLIB_H
-GL_GENERATE_STDINT_H_FALSE
-GL_GENERATE_STDINT_H_TRUE
-STDINT_H
-WINT_T_SUFFIX
-WCHAR_T_SUFFIX
-SIG_ATOMIC_T_SUFFIX
-SIZE_T_SUFFIX
-PTRDIFF_T_SUFFIX
-HAVE_SIGNED_WINT_T
-HAVE_SIGNED_WCHAR_T
-HAVE_SIGNED_SIG_ATOMIC_T
-BITSIZEOF_WINT_T
-BITSIZEOF_WCHAR_T
-BITSIZEOF_SIG_ATOMIC_T
-BITSIZEOF_SIZE_T
-BITSIZEOF_PTRDIFF_T
-HAVE_SYS_BITYPES_H
-HAVE_SYS_INTTYPES_H
-HAVE_STDINT_H
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H
-NEXT_STDINT_H
-HAVE_SYS_TYPES_H
-HAVE_INTTYPES_H
-HAVE_WCHAR_H
-HAVE_UNSIGNED_LONG_LONG_INT
-HAVE_LONG_LONG_INT
-HAVE__BOOL
-GL_GENERATE_STDBOOL_H_FALSE
-GL_GENERATE_STDBOOL_H_TRUE
-STDBOOL_H
-APPLE_UNIVERSAL_BUILD
-REPLACE_WCTOMB
-REPLACE_UNSETENV
-REPLACE_STRTOD
-REPLACE_SETENV
-REPLACE_REALPATH
-REPLACE_REALLOC
-REPLACE_RANDOM_R
-REPLACE_QSORT_R
-REPLACE_PUTENV
-REPLACE_PTSNAME_R
-REPLACE_PTSNAME
-REPLACE_MKSTEMP
-REPLACE_MBTOWC
-REPLACE_MALLOC
-REPLACE_CANONICALIZE_FILE_NAME
-REPLACE_CALLOC
-HAVE_DECL_UNSETENV
-HAVE_UNLOCKPT
-HAVE_SYS_LOADAVG_H
-HAVE_STRUCT_RANDOM_DATA
-HAVE_STRTOULL
-HAVE_STRTOLL
-HAVE_STRTOD
-HAVE_DECL_SETENV
-HAVE_SETENV
-HAVE_SECURE_GETENV
-HAVE_RPMATCH
-HAVE_REALPATH
-HAVE_RANDOM_R
-HAVE_RANDOM_H
-HAVE_RANDOM
-HAVE_PTSNAME_R
-HAVE_PTSNAME
-HAVE_POSIX_OPENPT
-HAVE_MKSTEMPS
-HAVE_MKSTEMP
-HAVE_MKOSTEMPS
-HAVE_MKOSTEMP
-HAVE_MKDTEMP
-HAVE_GRANTPT
-HAVE_GETSUBOPT
-HAVE_DECL_GETLOADAVG
-HAVE_CANONICALIZE_FILE_NAME
-HAVE_ATOLL
-HAVE__EXIT
-GNULIB_WCTOMB
-GNULIB_UNSETENV
-GNULIB_UNLOCKPT
-GNULIB_SYSTEM_POSIX
-GNULIB_STRTOULL
-GNULIB_STRTOLL
-GNULIB_STRTOD
-GNULIB_SETENV
-GNULIB_SECURE_GETENV
-GNULIB_RPMATCH
-GNULIB_REALPATH
-GNULIB_REALLOC_POSIX
-GNULIB_RANDOM_R
-GNULIB_RANDOM
-GNULIB_QSORT_R
-GNULIB_PUTENV
-GNULIB_PTSNAME_R
-GNULIB_PTSNAME
-GNULIB_POSIX_OPENPT
-GNULIB_MKSTEMPS
-GNULIB_MKSTEMP
-GNULIB_MKOSTEMPS
-GNULIB_MKOSTEMP
-GNULIB_MKDTEMP
-GNULIB_MBTOWC
-GNULIB_MALLOC_POSIX
-GNULIB_GRANTPT
-GNULIB_GETSUBOPT
-GNULIB_GETLOADAVG
-GNULIB_CANONICALIZE_FILE_NAME
-GNULIB_CALLOC_POSIX
-GNULIB_ATOLL
-GNULIB__EXIT
-LOCALE_FR_UTF8
-LOCALE_ZH_CN
-LOCALE_JA
-LTLIBMULTITHREAD
-LIBMULTITHREAD
-LTLIBTHREAD
-LIBTHREAD
-LIBPTH_PREFIX
-LTLIBPTH
-LIBPTH
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H
-NEXT_LOCALE_H
-HAVE_XLOCALE_H
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H
-NEXT_STDDEF_H
-GL_GENERATE_STDDEF_H_FALSE
-GL_GENERATE_STDDEF_H_TRUE
-STDDEF_H
-HAVE_WCHAR_T
-HAVE_MAX_ALIGN_T
-REPLACE_NULL
-REPLACE_STRUCT_LCONV
-REPLACE_DUPLOCALE
-REPLACE_SETLOCALE
-REPLACE_LOCALECONV
-HAVE_DUPLOCALE
-GNULIB_DUPLOCALE
-GNULIB_SETLOCALE
-GNULIB_LOCALECONV
-LOCALCHARSET_TESTS_ENVIRONMENT
-GLIBC21
-HAVE_LANGINFO_YESEXPR
-HAVE_LANGINFO_ERA
-HAVE_LANGINFO_T_FMT_AMPM
-HAVE_LANGINFO_CODESET
-HAVE_LANGINFO_H
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H
-NEXT_LANGINFO_H
-PRAGMA_COLUMNS
-PRAGMA_SYSTEM_HEADER
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE
-INCLUDE_NEXT
-REPLACE_NL_LANGINFO
-HAVE_NL_LANGINFO
-GNULIB_NL_LANGINFO
-LTLIBINTL
-LIBINTL
-pkglibexecdir
-runstatedir
-lispdir
-GL_GENERATE_BYTESWAP_H_FALSE
-GL_GENERATE_BYTESWAP_H_TRUE
-BYTESWAP_H
-LOCALE_FR
-REPLACE_WCSWIDTH
-REPLACE_WCWIDTH
-REPLACE_WCSNRTOMBS
-REPLACE_WCSRTOMBS
-REPLACE_WCRTOMB
-REPLACE_MBSNRTOWCS
-REPLACE_MBSRTOWCS
-REPLACE_MBRLEN
-REPLACE_MBRTOWC
-REPLACE_MBSINIT
-REPLACE_WCTOB
-REPLACE_BTOWC
-REPLACE_MBSTATE_T
-HAVE_DECL_WCWIDTH
-HAVE_DECL_WCTOB
-HAVE_WCSWIDTH
-HAVE_WCSTOK
-HAVE_WCSSTR
-HAVE_WCSPBRK
-HAVE_WCSSPN
-HAVE_WCSCSPN
-HAVE_WCSRCHR
-HAVE_WCSCHR
-HAVE_WCSDUP
-HAVE_WCSXFRM
-HAVE_WCSCOLL
-HAVE_WCSNCASECMP
-HAVE_WCSCASECMP
-HAVE_WCSNCMP
-HAVE_WCSCMP
-HAVE_WCSNCAT
-HAVE_WCSCAT
-HAVE_WCPNCPY
-HAVE_WCSNCPY
-HAVE_WCPCPY
-HAVE_WCSCPY
-HAVE_WCSNLEN
-HAVE_WCSLEN
-HAVE_WMEMSET
-HAVE_WMEMMOVE
-HAVE_WMEMCPY
-HAVE_WMEMCMP
-HAVE_WMEMCHR
-HAVE_WCSNRTOMBS
-HAVE_WCSRTOMBS
-HAVE_WCRTOMB
-HAVE_MBSNRTOWCS
-HAVE_MBSRTOWCS
-HAVE_MBRLEN
-HAVE_MBRTOWC
-HAVE_MBSINIT
-HAVE_BTOWC
-GNULIB_WCSWIDTH
-GNULIB_WCSTOK
-GNULIB_WCSSTR
-GNULIB_WCSPBRK
-GNULIB_WCSSPN
-GNULIB_WCSCSPN
-GNULIB_WCSRCHR
-GNULIB_WCSCHR
-GNULIB_WCSDUP
-GNULIB_WCSXFRM
-GNULIB_WCSCOLL
-GNULIB_WCSNCASECMP
-GNULIB_WCSCASECMP
-GNULIB_WCSNCMP
-GNULIB_WCSCMP
-GNULIB_WCSNCAT
-GNULIB_WCSCAT
-GNULIB_WCPNCPY
-GNULIB_WCSNCPY
-GNULIB_WCPCPY
-GNULIB_WCSCPY
-GNULIB_WCSNLEN
-GNULIB_WCSLEN
-GNULIB_WMEMSET
-GNULIB_WMEMMOVE
-GNULIB_WMEMCPY
-GNULIB_WMEMCMP
-GNULIB_WMEMCHR
-GNULIB_WCWIDTH
-GNULIB_WCSNRTOMBS
-GNULIB_WCSRTOMBS
-GNULIB_WCRTOMB
-GNULIB_MBSNRTOWCS
-GNULIB_MBSRTOWCS
-GNULIB_MBRLEN
-GNULIB_MBRTOWC
-GNULIB_MBSINIT
-GNULIB_WCTOB
-GNULIB_BTOWC
-GL_GENERATE_ALLOCA_H_FALSE
-GL_GENERATE_ALLOCA_H_TRUE
-ALLOCA_H
-ALLOCA
-GL_COND_LIBTOOL_FALSE
-GL_COND_LIBTOOL_TRUE
-USE_C99_TYPES_FALSE
-USE_C99_TYPES_TRUE
-YACC
-CXXCPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-ac_ct_AR
-DLLTOOL
-OBJDUMP
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-SED
-LIBTOOL
-LN_S
-LEXLIB
-LEX_OUTPUT_ROOT
-LEX
-COMPILER_IS_GCC_FALSE
-COMPILER_IS_GCC_TRUE
-RANLIB
-ARFLAGS
-AR
-EGREP
-GREP
-CPP
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-ac_ct_CC
-CFLAGS
-CC
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CXX
-CPPFLAGS
-LDFLAGS
-CXXFLAGS
-CXX
-SERVERLIB_VERSION
-SERVERLIB_REVISION
-SERVERLIB_AGE
-SERVERLIB_CURRENT
-CLIENTLIB_VERSION
-CLIENTLIB_REVISION
-CLIENTLIB_AGE
-CLIENTLIB_CURRENT
-LIBDAP_VERSION
-DAPLIB_REVISION
-DAPLIB_AGE
-DAPLIB_CURRENT
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-PACKAGE_SUBMINOR_VERSION
-PACKAGE_MINOR_VERSION
-PACKAGE_MAJOR_VERSION
-DVR
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-DAP_PROTOCOL_VERSION
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_dependency_tracking
-enable_threads
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_runtime_endian_check
-enable_rpath
-with_libpth_prefix
-with_included_regex
-with_curl
-with_xml2
-with_cppunit_prefix
-with_cppunit_exec_prefix
-enable_debug
-enable_dap4
-enable_developer
-enable_coverage
-enable_valgrind
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CXX
-CXXFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CCC
-CC
-CFLAGS
-CPP
-CXXCPP
-PKG_CONFIG
-CURL_CFLAGS
-CURL_LIBS
-XML2_CFLAGS
-XML2_LIBS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures libdap 3.15.1 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/libdap]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of libdap 3.15.1:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules   less verbose build output (undo: "make V=1")
-  --disable-silent-rules  verbose build output (undo: "make V=0")
-  --enable-dependency-tracking
-                          do not reject slow dependency extractors
-  --disable-dependency-tracking
-                          speeds up one-time build
-  --enable-threads={posix|solaris|pth|windows}
-                          specify multithreading API
-  --disable-threads       build without multithread safety
-  --enable-shared[=PKGS]  build shared libraries [default=yes]
-  --enable-static[=PKGS]  build static libraries [default=yes]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation [default=yes]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-runtime-endian-check
-                          Enable runtime tests for big- or little-endian byte
-                          order (default is NO)
-
-  --disable-rpath         do not hardcode runtime library paths
-  --enable-debug=ARG      Program instrumentation (1,2)
-  --enable-dap4           Enable DAP4 types and responses (default is Yes)
-  --enable-developer      Build a debug (-g3 -O0) version of this code and
-                          include assert() calls in the code (default is no)
-  --enable-coverage       Collect coverage data (default is no)
-  --enable-valgrind       Use valgrind when running unit tests. (default is
-                          no)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-sysroot=DIR Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-libpth-prefix[=DIR]  search for libpth in DIR/include and DIR/lib
-  --without-libpth-prefix     don't search for libpth in includedir and libdir
-  --without-included-regex
-                          don't compile regex; this is the default on systems
-                          with recent-enough versions of the GNU C Library
-                          (use with caution on other systems).
-  --with-curl=PFX   Prefix where curl/libcurl is installed (optional). This will override pkgconfig, etc.
-  --with-xml2=PFX   Prefix where libxml2 is installed (optional). This will override pkgconfig, etc.
-  --with-cppunit-prefix=PFX   Prefix where CppUnit is installed (optional)
-  --with-cppunit-exec-prefix=PFX  Exec prefix where CppUnit is installed (optional)
-
-Some influential environment variables:
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  CPP         C preprocessor
-  CXXCPP      C++ preprocessor
-  PKG_CONFIG  path to pkg-config utility
-  CURL_CFLAGS C compiler flags for CURL, overriding pkg-config
-  CURL_LIBS   linker flags for CURL, overriding pkg-config
-  XML2_CFLAGS C compiler flags for XML2, overriding pkg-config
-  XML2_LIBS   linker flags for XML2, overriding pkg-config
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <opendap-tech at opendap.org>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-libdap configure 3.15.1
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## --------------------------------------- ##
-## Report this to opendap-tech at opendap.org ##
-## --------------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof ($2))
-	 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
-	    return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$4
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_member
-
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid; break
-else
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=$ac_mid; break
-else
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid
-else
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
-  else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (($2) < 0)
-    {
-      long int i = longval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
-  ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
-  fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  as_decl_name=`echo $2|sed 's/ *(.*//'`
-  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
-  (void) $as_decl_use;
-#else
-  (void) $as_decl_name;
-#endif
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_decl
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by libdap $as_me 3.15.1, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-as_fn_append ac_header_list " fcntl.h"
-as_fn_append ac_header_list " malloc.h"
-as_fn_append ac_header_list " memory.h"
-as_fn_append ac_header_list " stddef.h"
-as_fn_append ac_header_list " stdlib.h"
-as_fn_append ac_header_list " string.h"
-as_fn_append ac_header_list " strings.h"
-as_fn_append ac_header_list " unistd.h"
-as_fn_append ac_header_list " pthread.h"
-as_fn_append ac_header_list " sys/param.h"
-as_fn_append ac_header_list " sys/time.h"
-as_fn_append ac_header_list " netinet/in.h"
-as_fn_append ac_func_list " btowc"
-as_fn_append ac_header_list " langinfo.h"
-as_fn_append ac_func_list " symlink"
-as_fn_append ac_header_list " xlocale.h"
-as_fn_append ac_func_list " mbsinit"
-as_fn_append ac_func_list " mbrtowc"
-as_fn_append ac_func_list " nl_langinfo"
-as_fn_append ac_func_list " isblank"
-as_fn_append ac_func_list " iswctype"
-as_fn_append ac_header_list " wchar.h"
-as_fn_append ac_header_list " stdint.h"
-as_fn_append ac_header_list " features.h"
-as_fn_append ac_func_list " wcrtomb"
-as_fn_append ac_func_list " iswcntrl"
-as_fn_append ac_header_list " wctype.h"
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-$as_echo "#define DAP_PROTOCOL_VERSION \"4.0\"" >>confdefs.h
-
-
-
-
-ac_aux_dir=
-for ac_dir in conf "$srcdir"/conf; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in conf \"$srcdir\"/conf" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-ac_config_headers="$ac_config_headers config.h dods-datatypes-config.h xdr-datatypes-config.h"
-
-
-
-am__api_version='1.14'
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   am_has_slept=no
-   for am_try in 1 2; do
-     echo "timestamp, slept: $am_has_slept" > conftest.file
-     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-     if test "$*" = "X"; then
-	# -L didn't work.
-	set X `ls -t "$srcdir/configure" conftest.file`
-     fi
-     if test "$*" != "X $srcdir/configure conftest.file" \
-	&& test "$*" != "X conftest.file $srcdir/configure"; then
-
-	# If neither matched, then we have a broken ls.  This can happen
-	# if, for instance, CONFIG_SHELL is bash and it inherits a
-	# broken ls alias from the environment.  This has actually
-	# happened.  Such a system could not be considered "sane".
-	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment" "$LINENO" 5
-     fi
-     if test "$2" = conftest.file || test $am_try -eq 2; then
-       break
-     fi
-     # Just in case.
-     sleep 1
-     am_has_slept=yes
-   done
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
-  am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
-  am_missing_run="$MISSING "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip".  However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-	@$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='libdap'
- VERSION='3.15.1'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar  pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake at gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
-
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
-    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
-  fi
-fi
-ac_config_commands="$ac_config_commands tests/atconfig"
-
-
-
-$as_echo "#define CNAME \"libdap\"" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define CVER "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DVR "libdap/$PACKAGE_VERSION"
-_ACEOF
-
-
-
-PACKAGE_MAJOR_VERSION=`echo $PACKAGE_VERSION | sed 's@^\([0-9]\)*\.\([0-9]*\)\.\([0-9]*\)$@\1@'`
-PACKAGE_MINOR_VERSION=`echo $PACKAGE_VERSION | sed 's@^\([0-9]\)*\.\([0-9]*\)\.\([0-9]*\)$@\2@'`
-PACKAGE_SUBMINOR_VERSION=`echo $PACKAGE_VERSION | sed 's@^\([0-9]\)*\.\([0-9]*\)\.\([0-9]*\)$@\3@'`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Package Major Version:     $PACKAGE_MAJOR_VERSION" >&5
-$as_echo "$as_me: Package Major Version:     $PACKAGE_MAJOR_VERSION" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Package Minor Version:     $PACKAGE_MINOR_VERSION" >&5
-$as_echo "$as_me: Package Minor Version:     $PACKAGE_MINOR_VERSION" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Package SubMinor Version:  $PACKAGE_SUBMINOR_VERSION" >&5
-$as_echo "$as_me: Package SubMinor Version:  $PACKAGE_SUBMINOR_VERSION" >&6;}
-
-
-
-
-
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-
-
-DAPLIB_CURRENT=20
-DAPLIB_AGE=3
-DAPLIB_REVISION=1
-
-
-
-
-LIBDAP_VERSION="$DAPLIB_CURRENT:$DAPLIB_REVISION:$DAPLIB_AGE"
-
-
-CLIENTLIB_CURRENT=7
-CLIENTLIB_AGE=1
-CLIENTLIB_REVISION=1
-
-
-
-
-CLIENTLIB_VERSION="$CLIENTLIB_CURRENT:$CLIENTLIB_REVISION:$CLIENTLIB_AGE"
-
-
-SERVERLIB_CURRENT=13
-SERVERLIB_AGE=6
-SERVERLIB_REVISION=1
-
-
-
-
-SERVERLIB_VERSION="$SERVERLIB_CURRENT:$SERVERLIB_REVISION:$SERVERLIB_AGE"
-
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
-$as_echo_n "checking whether the C++ compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C++ compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
-$as_echo_n "checking for C++ compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C++ compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-  am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
-fi
-
-
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-  # Make sure it works both with $CC and with simple cc.
-  # Following AC_PROG_CC_C_O, we do the test twice because some
-  # compilers refuse to overwrite an existing .o file with -o,
-  # though they will create one.
-  am_cv_prog_cc_c_o=yes
-  for am_i in 1 2; do
-    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
-   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } \
-         && test -f conftest2.$ac_objext; then
-      : OK
-    else
-      am_cv_prog_cc_c_o=no
-      break
-    fi
-  done
-  rm -f core conftest*
-  unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC"   am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
-$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
-if ${gl_cv_c_amsterdam_compiler+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef __ACK__
-Amsterdam
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Amsterdam" >/dev/null 2>&1; then :
-  gl_cv_c_amsterdam_compiler=yes
-else
-  gl_cv_c_amsterdam_compiler=no
-fi
-rm -f conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
-$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
-  if test -z "$AR"; then
-    if test $gl_cv_c_amsterdam_compiler = yes; then
-      AR='cc -c.a'
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='-o'
-      fi
-    else
-                  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="ar"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='cr'
-      fi
-    fi
-  else
-    if test -z "$ARFLAGS"; then
-      ARFLAGS='cr'
-    fi
-  fi
-
-
-  if test -z "$RANLIB"; then
-    if test $gl_cv_c_amsterdam_compiler = yes; then
-      RANLIB=':'
-    else
-            if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-    fi
-  fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
-else
-  MINIX=
-fi
-
-
-  if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
-
-$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#         define __EXTENSIONS__ 1
-          $ac_includes_default
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
-else
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
-  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
-
-  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
-  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
-$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; }
-if ${ac_cv_should_define__xopen_source+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_should_define__xopen_source=no
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-          #include <wchar.h>
-          mbstate_t x;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-             #define _XOPEN_SOURCE 500
-             #include <wchar.h>
-             mbstate_t x;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_should_define__xopen_source=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
-$as_echo "$ac_cv_should_define__xopen_source" >&6; }
-  test $ac_cv_should_define__xopen_source = yes &&
-    $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
-
-
-
-
-
-
-
-
-
-
-
-
-
-  # Check whether --enable-threads was given.
-if test "${enable_threads+set}" = set; then :
-  enableval=$enable_threads; gl_use_threads=$enableval
-else
-  if test -n "$gl_use_threads_default"; then
-       gl_use_threads="$gl_use_threads_default"
-     else
-       case "$host_os" in
-                                                               osf*) gl_use_threads=no ;;
-         cygwin*)
-               case `uname -r` in
-                 1.[0-5].*) gl_use_threads=no ;;
-                 *)         gl_use_threads=yes ;;
-               esac
-               ;;
-         *)    gl_use_threads=yes ;;
-       esac
-     fi
-
-fi
-
-  if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-    # For using <pthread.h>:
-    case "$host_os" in
-      osf*)
-        # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
-        # groks <pthread.h>. cc also understands the flag -pthread, but
-        # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
-        # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
-        # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
-        CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-        ;;
-    esac
-    # Some systems optimize for single-threaded programs by default, and
-    # need special flags to disable these optimizations. For example, the
-    # definition of 'errno' in <errno.h>.
-    case "$host_os" in
-      aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
-      solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
-    esac
-  fi
-
-
-
-
-  # Code from module absolute-header:
-  # Code from module alloca-opt:
-  # Code from module btowc:
-  # Code from module byteswap:
-  # Code from module configmake:
-  # Code from module extensions:
-
-  # Code from module extern-inline:
-  # Code from module gettext-h:
-  # Code from module havelib:
-  # Code from module include_next:
-  # Code from module langinfo:
-  # Code from module localcharset:
-  # Code from module locale:
-  # Code from module localeconv:
-  # Code from module lock:
-  # Code from module mbrtowc:
-  # Code from module mbsinit:
-  # Code from module mbtowc:
-  # Code from module multiarch:
-  # Code from module nl_langinfo:
-  # Code from module regex:
-  # Code from module snippet/_Noreturn:
-  # Code from module snippet/arg-nonnull:
-  # Code from module snippet/c++defs:
-  # Code from module snippet/warn-on-use:
-  # Code from module ssize_t:
-  # Code from module stdbool:
-  # Code from module stddef:
-  # Code from module stdint:
-  # Code from module stdlib:
-  # Code from module streq:
-  # Code from module sys_types:
-  # Code from module threadlib:
-
-
-
-  # Code from module unistd:
-  # Code from module verify:
-  # Code from module wchar:
-  # Code from module wcrtomb:
-  # Code from module wctype-h:
-
-
-if test x$CC = xgcc; then :
-   if true; then
-  COMPILER_IS_GCC_TRUE=
-  COMPILER_IS_GCC_FALSE='#'
-else
-  COMPILER_IS_GCC_TRUE='#'
-  COMPILER_IS_GCC_FALSE=
-fi
-
-else
-   if false; then
-  COMPILER_IS_GCC_TRUE=
-  COMPILER_IS_GCC_FALSE='#'
-else
-  COMPILER_IS_GCC_TRUE='#'
-  COMPILER_IS_GCC_FALSE=
-fi
-
-fi
-
-for ac_prog in flex lex
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LEX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LEX"; then
-  ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LEX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
-$as_echo "$LEX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
-if test "x$LEX" != "x:"; then
-  cat >conftest.l <<_ACEOF
-%%
-a { ECHO; }
-b { REJECT; }
-c { yymore (); }
-d { yyless (1); }
-e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument.  */
-    yyless ((input () != 0)); }
-f { unput (yytext[0]); }
-. { BEGIN INITIAL; }
-%%
-#ifdef YYTEXT_POINTER
-extern char *yytext;
-#endif
-int
-main (void)
-{
-  return ! yylex () + ! yywrap ();
-}
-_ACEOF
-{ { ac_try="$LEX conftest.l"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$LEX conftest.l") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
-$as_echo_n "checking lex output file root... " >&6; }
-if ${ac_cv_prog_lex_root+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
-else
-  as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
-$as_echo "$ac_cv_prog_lex_root" >&6; }
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-if test -z "${LEXLIB+set}"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
-$as_echo_n "checking lex library... " >&6; }
-if ${ac_cv_lib_lex+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    ac_save_LIBS=$LIBS
-    ac_cv_lib_lex='none needed'
-    for ac_lib in '' -lfl -ll; do
-      LIBS="$ac_lib $ac_save_LIBS"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_lex=$ac_lib
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-      test "$ac_cv_lib_lex" != 'none needed' && break
-    done
-    LIBS=$ac_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
-$as_echo "$ac_cv_lib_lex" >&6; }
-  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
-$as_echo_n "checking whether yytext is a pointer... " >&6; }
-if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent.  Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-ac_save_LIBS=$LIBS
-LIBS="$LEXLIB $ac_save_LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  #define YYTEXT_POINTER 1
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_prog_lex_yytext_pointer=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
-$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
-
-fi
-rm -f conftest.l $LEX_OUTPUT_ROOT.c
-
-fi
-if test "$LEX" = :; then
-  LEX=${am_missing_run}flex
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-case `pwd` in
-  *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO ""
-}
-
-case "$ECHO" in
-  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
-  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
-  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-   then ac_cv_path_FGREP="$GREP -F"
-   else
-     if test -z "$FGREP"; then
-  ac_path_FGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
-  # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
-    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_FGREP="$ac_path_FGREP"
-      ac_path_FGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_FGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_FGREP=$FGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in dumpbin "link -dump"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$DUMPBIN" && break
-  done
-fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in dumpbin "link -dump"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_DUMPBIN" && break
-done
-
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
-fi
-
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[3-9]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
-  fi
-else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in ar
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$AR" && break
-  done
-fi
-if test -z "$AR"; then
-  ac_ct_AR=$AR
-  for ac_prog in ar
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_AR" && break
-done
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ar_at_file=no
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
-      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-  (eval $lt_ar_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-  (eval $lt_ar_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT_DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
-  withval=$with_sysroot;
-else
-  with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
-   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
-   ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_cc_needs_belf=yes
-else
-  lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$MANIFEST_TOOL"; then
-  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
-  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
-  # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_MANIFEST_TOOL"; then
-  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_MANIFEST_TOOL" = x; then
-    MANIFEST_TOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
-  fi
-else
-  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&5
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
-  case $host_os in
-    rhapsody* | darwin*)
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DSYMUTIL"; then
-  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
-  ac_ct_DSYMUTIL=$DSYMUTIL
-  # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DSYMUTIL"; then
-  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DSYMUTIL" = x; then
-    DSYMUTIL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DSYMUTIL=$ac_ct_DSYMUTIL
-  fi
-else
-  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NMEDIT"; then
-  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
-  ac_ct_NMEDIT=$NMEDIT
-  # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_NMEDIT"; then
-  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_NMEDIT" = x; then
-    NMEDIT=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    NMEDIT=$ac_ct_NMEDIT
-  fi
-else
-  NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LIPO"; then
-  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
-  ac_ct_LIPO=$LIPO
-  # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_LIPO"; then
-  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_LIPO" = x; then
-    LIPO=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    LIPO=$ac_ct_LIPO
-  fi
-else
-  LIPO="$ac_cv_prog_LIPO"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL"; then
-  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
-  ac_ct_OTOOL=$OTOOL
-  # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL"; then
-  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL" = x; then
-    OTOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL=$ac_ct_OTOOL
-  fi
-else
-  OTOOL="$ac_cv_prog_OTOOL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL64"; then
-  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
-  ac_ct_OTOOL64=$OTOOL64
-  # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL64"; then
-  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL64" = x; then
-    OTOOL64=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL64=$ac_ct_OTOOL64
-  fi
-else
-  OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	# If there is a non-empty error log, and "single_module"
-	# appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-	  cat conftest.err >&5
-	# Otherwise, if the output was created with a 0 exit code from
-	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&5
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_ld_exported_symbols_list=yes
-else
-  lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
-      echo "$AR cru libconftest.a conftest.o" >&5
-      $AR cru libconftest.a conftest.o 2>&5
-      echo "$RANLIB libconftest.a" >&5
-      $RANLIB libconftest.a 2>&5
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-	cat conftest.err >&5
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&5
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
-    case $host_os in
-    rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-func_stripname_cnf ()
-{
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-} # func_stripname_cnf
-
-
-
-
-
-# Set options
-
-
-
-        enable_dlopen=no
-
-
-  enable_win32_dll=no
-
-
-            # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
-  # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
-  withval=$with_pic; lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
-	if test "X$lt_pkg" = "X$lt_p"; then
-	  pic_mode=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
-  # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
-  *)
-    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
-  esac
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-
-
-
-
-
-  lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      lt_prog_compiler_static=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      lt_prog_compiler_wl='-Xlinker '
-      if test -n "$lt_prog_compiler_pic"; then
-        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
-      fi
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='--shared'
-	lt_prog_compiler_static='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	lt_prog_compiler_wl='-Wl,-Wl,,'
-	lt_prog_compiler_pic='-PIC'
-	lt_prog_compiler_static='-Bstatic'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-qpic'
-	lt_prog_compiler_static='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
-	  ;;
-	*Sun\ F* | *Sun*Fortran*)
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Qoption ld '
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
-	  ;;
-        *Intel*\ [CF]*Compiler*)
-	  lt_prog_compiler_wl='-Wl,'
-	  lt_prog_compiler_pic='-fPIC'
-	  lt_prog_compiler_static='-static'
-	  ;;
-	*Portland\ Group*)
-	  lt_prog_compiler_wl='-Wl,'
-	  lt_prog_compiler_pic='-fpic'
-	  lt_prog_compiler_static='-Bstatic'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    rdos*)
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  always_export_symbols=no
-  archive_cmds=
-  archive_expsym_cmds=
-  compiler_needs_object=no
-  enable_shared_with_static_runtimes=no
-  export_dynamic_flag_spec=
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  hardcode_automatic=no
-  hardcode_direct=no
-  hardcode_direct_absolute=no
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_separator=
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  inherit_rpath=no
-  link_all_deplibs=unknown
-  module_cmds=
-  module_expsym_cmds=
-  old_archive_from_new_cmds=
-  old_archive_from_expsyms_cmds=
-  thread_safe_flag_spec=
-  whole_archive_flag_spec=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
-	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      export_dynamic_flag_spec='${wl}--export-all-symbols'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    haiku*)
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      link_all_deplibs=yes
-      ;;
-
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  whole_archive_flag_spec=
-	  tmp_sharedflag='--shared' ;;
-	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_direct_absolute=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  hardcode_direct=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L=yes
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_libdir_separator=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      export_dynamic_flag_spec='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath_
-fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath_
-fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec='$convenience'
-	  fi
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	hardcode_libdir_flag_spec=' '
-	allow_undefined_flag=unsupported
-	always_export_symbols=yes
-	file_list_spec='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
-	enable_shared_with_static_runtimes=yes
-	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	old_postinstall_cmds='chmod 644 $oldlib'
-	postlink_cmds='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	hardcode_libdir_flag_spec=' '
-	allow_undefined_flag=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	old_archive_from_new_cmds='true'
-	# FIXME: Should let the user specify the lib program.
-	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	enable_shared_with_static_runtimes=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
-  else
-    whole_archive_flag_spec=''
-  fi
-  link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
-  else
-  ld_shlibs=no
-  fi
-
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-	hardcode_direct=yes
-	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler__b=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS -b"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler__b=yes
-       fi
-     else
-       lt_cv_prog_compiler__b=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
-    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
-    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_irix_exported_symbol=yes
-else
-  lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-           LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      inherit_rpath=yes
-      link_all_deplibs=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	hardcode_direct=yes
-	hardcode_shlibpath_var=no
-	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_separator=:
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  $RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$lt_prog_compiler_wl
-	  pic_flag=$lt_prog_compiler_pic
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$allow_undefined_flag
-	  allow_undefined_flag=
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	  then
-	    lt_cv_archive_cmds_need_lc=no
-	  else
-	    lt_cv_archive_cmds_need_lc=yes
-	  fi
-	  allow_undefined_flag=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
-      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[lt_foo]++; }
-  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[23].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[3-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-
-fi
-
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
-   test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-  if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-    ;;
-
-  *)
-    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_shl_load=yes
-else
-  ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_svld_dlopen=yes
-else
-  ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_dld_link=yes
-else
-  ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ;;
-  esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-  # Report which library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-      if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if ${ac_cv_prog_CXXCPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
-  _lt_caught_CXX_error=yes
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-reload_flag_CXX=$reload_flag
-reload_cmds_CXX=$reload_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-  # save warnings/boilerplate of simple test code
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          whole_archive_flag_spec_CXX=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-    ld_shlibs_CXX=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-      aix[4-9]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        archive_cmds_CXX=''
-        hardcode_direct_CXX=yes
-        hardcode_direct_absolute_CXX=yes
-        hardcode_libdir_separator_CXX=':'
-        link_all_deplibs_CXX=yes
-        file_list_spec_CXX='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[012]|aix4.[012].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    hardcode_direct_CXX=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    hardcode_minus_L_CXX=yes
-	    hardcode_libdir_flag_spec_CXX='-L$libdir'
-	    hardcode_libdir_separator_CXX=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        export_dynamic_flag_spec_CXX='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        always_export_symbols_CXX=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath__CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
-          hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath__CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' ${wl}-bernotok'
-	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      whole_archive_flag_spec_CXX='$convenience'
-	    fi
-	    archive_cmds_need_lc_CXX=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  hardcode_libdir_flag_spec_CXX=' '
-	  allow_undefined_flag_CXX=unsupported
-	  always_export_symbols_CXX=yes
-	  file_list_spec_CXX='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
-	  # FIXME: Setting linknames here is a bad hack.
-	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
-	  enable_shared_with_static_runtimes_CXX=yes
-	  # Don't use ranlib
-	  old_postinstall_cmds_CXX='chmod 644 $oldlib'
-	  postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  hardcode_libdir_flag_spec_CXX='-L$libdir'
-	  export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
-	  allow_undefined_flag_CXX=unsupported
-	  always_export_symbols_CXX=no
-	  enable_shared_with_static_runtimes_CXX=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    ld_shlibs_CXX=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
-  else
-    whole_archive_flag_spec_CXX=''
-  fi
-  link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-       if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-
-  else
-  ld_shlibs_CXX=no
-  fi
-
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        ld_shlibs_CXX=no
-        ;;
-
-      freebsd-elf*)
-        archive_cmds_need_lc_CXX=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      haiku*)
-        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        link_all_deplibs_CXX=yes
-        ;;
-
-      hpux9*)
-        hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='${wl}-E'
-        hardcode_direct_CXX=yes
-        hardcode_minus_L_CXX=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            ld_shlibs_CXX=no
-            ;;
-          aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      export_dynamic_flag_spec_CXX='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct_CXX=no
-            hardcode_shlibpath_var_CXX=no
-            ;;
-          *)
-            hardcode_direct_CXX=yes
-            hardcode_direct_absolute_CXX=yes
-            hardcode_minus_L_CXX=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[3-9]*)
-	hardcode_direct_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-	      fi
-	    fi
-	    link_all_deplibs_CXX=yes
-	    ;;
-        esac
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        inherit_rpath_CXX=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
-	      prelink_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      old_archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
-	      archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	      compiler_needs_object_CXX=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  hardcode_libdir_flag_spec_CXX='-R$libdir'
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        ld_shlibs_CXX=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	ld_shlibs_CXX=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	  hardcode_direct_absolute_CXX=yes
-	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='${wl}-E'
-	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-		;;
-	    esac
-
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	      hardcode_libdir_separator_CXX=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            archive_cmds_need_lc_CXX=yes
-	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    hardcode_libdir_flag_spec_CXX='-R$libdir'
-	    hardcode_shlibpath_var_CXX=no
-	    case $host_os in
-	      solaris2.[0-5] | solaris2.[0-5].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    link_all_deplibs_CXX=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[0-5] | solaris2.[0-5].*) ;;
-		*)
-		  whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='${wl}-z,text'
-      archive_cmds_need_lc_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	no_undefined_flag_CXX='${wl}-z,text'
-	allow_undefined_flag_CXX='${wl}-z,nodefs'
-	archive_cmds_need_lc_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
-	hardcode_libdir_separator_CXX=':'
-	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
-	      '"$old_archive_cmds_CXX"
-	    reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
-	      '"$reload_cmds_CXX"
-	    ;;
-	  *)
-	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-    esac
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-    test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-    GCC_CXX="$GXX"
-    LD_CXX="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
-	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  predep_objects_CXX=
-  postdep_objects_CXX=
-  postdeps_CXX=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic_CXX='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      lt_prog_compiler_static_CXX=
-      ;;
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic_CXX='-fPIC -shared'
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[4-9]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fpic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-qpic'
-	    lt_prog_compiler_static_CXX='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      lt_prog_compiler_pic_CXX='-KPIC'
-	      lt_prog_compiler_static_CXX='-Bstatic'
-	      lt_prog_compiler_wl_CXX='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        lt_prog_compiler_pic_CXX='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works_CXX=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works_CXX=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  case $host_os in
-  aix[4-9]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-      exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-      ;;
-    esac
-    ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  $RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$lt_prog_compiler_wl_CXX
-	  pic_flag=$lt_prog_compiler_pic_CXX
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-	  allow_undefined_flag_CXX=
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	  then
-	    lt_cv_archive_cmds_need_lc_CXX=no
-	  else
-	    lt_cv_archive_cmds_need_lc_CXX=yes
-	  fi
-	  allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
-      archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[23].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[3-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-
-fi
-
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
-   test -n "$runpath_var_CXX" ||
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-        ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-# Extract the first word of "bison", so it can be a program name with args.
-set dummy bison; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_YACC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$YACC"; then
-  ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_YACC="bison"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-$as_echo "$YACC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-bison_version=`bison --version | sed -n '/^bison.*/p' | sed 's at .* \(.*\)@\1@'`
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bison 3.0" >&5
-$as_echo_n "checking for bison 3.0... " >&6; }
-
-# This was used to set a conditional in the d4_ce/Makefile.am to build
-# the DAP4 parsers using bison 3 or get pre-built sources from a set
-# of template files. That didn't work on some linux machines, so bison
-# 3 is a requirement for building until that gets sorted out. jhrg 4/5/15
-
-as_arg_v1="$bison_version"
-as_arg_v2="3.0"
-awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
-case $? in #(
-  1) :
-    as_fn_error $? "not found" "$LINENO" 5 ;; #(
-  0) :
-      ;; #(
-  2) :
-      ;; #(
-  *) :
-     ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found vesion $bison_version" >&5
-$as_echo "found vesion $bison_version" >&6; }
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
-  as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
-$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if eval \${$as_ac_Header+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_ac_Header=yes"
-else
-  eval "$as_ac_Header=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_ac_Header
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-_ACEOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' dir; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_opendir+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' x; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_opendir+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
-$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
-if ${ac_cv_header_sys_wait_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-int
-main ()
-{
-  int s;
-  wait (&s);
-  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_sys_wait_h=yes
-else
-  ac_cv_header_sys_wait_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
-$as_echo "$ac_cv_header_sys_wait_h" >&6; }
-if test $ac_cv_header_sys_wait_h = yes; then
-
-$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
-
-fi
-
-
-
-
-
-  for ac_header in $ac_header_list
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in uuid/uuid.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
-if test "x$ac_cv_header_uuid_uuid_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_UUID_UUID_H 1
-_ACEOF
- found_uuid_uuid_h=true
-else
-  found_uuid_uuid_h=false
-fi
-
-done
-
-for ac_header in uuid.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default"
-if test "x$ac_cv_header_uuid_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_UUID_H 1
-_ACEOF
- found_uuid_h=true
-else
-  found_uuid_h=false
-fi
-
-done
-
-
-if test $found_uuid_uuid_h = true -o $found_uuid_h = true; then :
-
-else
-  as_fn_error $? "Could not find uuid.h" "$LINENO" 5
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this sort of thing.  */
-  typedef int charset[2];
-  const charset cs = { 0, 0 };
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *pcpcc;
-  char **ppc;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  pcpcc = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++pcpcc;
-  ppc = (char**) pcpcc;
-  pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this sort of thing.  */
-    char tx;
-    char *t = &tx;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-    if (s) return 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; } bx;
-    struct s *b = &bx; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-    if (!foo) return 0;
-  }
-  return !cs[0] && !zero.x;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_const=yes
-else
-  ac_cv_c_const=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-$as_echo "#define const /**/" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
-    ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
-if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
-_ACEOF
-
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if ${ac_cv_header_time+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_time=yes
-else
-  ac_cv_header_time=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
-$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
-if ${ac_cv_struct_tm+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <time.h>
-
-int
-main ()
-{
-struct tm tm;
-				     int *p = &tm.tm_sec;
-				     return !p;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_struct_tm=time.h
-else
-  ac_cv_struct_tm=sys/time.h
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
-$as_echo "$ac_cv_struct_tm" >&6; }
-if test $ac_cv_struct_tm = sys/time.h; then
-
-$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
-$as_echo_n "checking for working volatile... " >&6; }
-if ${ac_cv_c_volatile+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-volatile int x;
-int * volatile y = (int *) 0;
-return !x && !y;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_volatile=yes
-else
-  ac_cv_c_volatile=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
-$as_echo "$ac_cv_c_volatile" >&6; }
-if test $ac_cv_c_volatile = no; then
-
-$as_echo "#define volatile /**/" >>confdefs.h
-
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-	       not a universal capable compiler
-	     #endif
-	     typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-	# Check for potential -arch flags.  It is not universal unless
-	# there are at least two -arch flags with different values.
-	ac_arch=
-	ac_prev=
-	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-	 if test -n "$ac_prev"; then
-	   case $ac_word in
-	     i?86 | x86_64 | ppc | ppc64)
-	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-		 ac_arch=$ac_word
-	       else
-		 ac_cv_c_bigendian=universal
-		 break
-	       fi
-	       ;;
-	   esac
-	   ac_prev=
-	 elif test "x$ac_word" = "x-arch"; then
-	   ac_prev=arch
-	 fi
-       done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-	     #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-		     && LITTLE_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-		#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
-		 not big endian
-		#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-		 not big endian
-		#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-short int ascii_mm[] =
-		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-		short int ascii_ii[] =
-		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-		int use_ascii (int i) {
-		  return ascii_mm[i] + ascii_ii[i];
-		}
-		short int ebcdic_ii[] =
-		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-		short int ebcdic_mm[] =
-		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-		int use_ebcdic (int i) {
-		  return ebcdic_mm[i] + ebcdic_ii[i];
-		}
-		extern int foo;
-
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-	      ac_cv_c_bigendian=yes
-	    fi
-	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-	      if test "$ac_cv_c_bigendian" = unknown; then
-		ac_cv_c_bigendian=no
-	      else
-		# finding both strings is unlikely to happen, but who knows?
-		ac_cv_c_bigendian=unknown
-	      fi
-	    fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-	     /* Are we little or big endian?  From Harbison&Steele.  */
-	     union
-	     {
-	       long int l;
-	       char c[sizeof (long int)];
-	     } u;
-	     u.l = 1;
-	     return u.c[sizeof (long int) - 1] == 1;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
-else
-  ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
-   yes)
-     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
-   no)
-      ;; #(
-   universal)
-
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
-     ;; #(
-   *)
-     as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
- esac
-
-
-    # Ignore the errors about AC_TRY_RUN missing an argument. jhrg 5/2/95
-
-
-
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
-$as_echo_n "checking size of int... " >&6; }
-if ${ac_cv_sizeof_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (int)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_int=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
-$as_echo "$ac_cv_sizeof_int" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
-
-
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
-$as_echo_n "checking size of long... " >&6; }
-if ${ac_cv_sizeof_long+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_long=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-$as_echo "$ac_cv_sizeof_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
-
-
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
-$as_echo_n "checking size of char... " >&6; }
-if ${ac_cv_sizeof_char+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_char" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (char)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_char=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
-$as_echo "$ac_cv_sizeof_char" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_CHAR $ac_cv_sizeof_char
-_ACEOF
-
-
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5
-$as_echo_n "checking size of double... " >&6; }
-if ${ac_cv_sizeof_double+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_double" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (double)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_double=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5
-$as_echo "$ac_cv_sizeof_double" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_DOUBLE $ac_cv_sizeof_double
-_ACEOF
-
-
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of float" >&5
-$as_echo_n "checking size of float... " >&6; }
-if ${ac_cv_sizeof_float+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_float" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (float)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_float=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5
-$as_echo "$ac_cv_sizeof_float" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_FLOAT $ac_cv_sizeof_float
-_ACEOF
-
-
-
-    # check for C99 types, headers and functions
-    ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = xyes; then :
-  dap_inttypes_header=yes
-fi
-
-
-    # DINT32 4
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int32_t" >&5
-$as_echo_n "checking size of int32_t... " >&6; }
-if ${ac_cv_sizeof_int32_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int32_t))" "ac_cv_sizeof_int32_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_int32_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (int32_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_int32_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int32_t" >&5
-$as_echo "$ac_cv_sizeof_int32_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT32_T $ac_cv_sizeof_int32_t
-_ACEOF
-
-
-    # DUINT32
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint32_t" >&5
-$as_echo_n "checking size of uint32_t... " >&6; }
-if ${ac_cv_sizeof_uint32_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint32_t))" "ac_cv_sizeof_uint32_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_uint32_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (uint32_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_uint32_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint32_t" >&5
-$as_echo "$ac_cv_sizeof_uint32_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UINT32_T $ac_cv_sizeof_uint32_t
-_ACEOF
-
-
-    # DINT16 short
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int16_t" >&5
-$as_echo_n "checking size of int16_t... " >&6; }
-if ${ac_cv_sizeof_int16_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int16_t))" "ac_cv_sizeof_int16_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_int16_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (int16_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_int16_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int16_t" >&5
-$as_echo "$ac_cv_sizeof_int16_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT16_T $ac_cv_sizeof_int16_t
-_ACEOF
-
-
-    # DUINT16 unsigned short
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint16_t" >&5
-$as_echo_n "checking size of uint16_t... " >&6; }
-if ${ac_cv_sizeof_uint16_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint16_t))" "ac_cv_sizeof_uint16_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_uint16_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (uint16_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_uint16_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint16_t" >&5
-$as_echo "$ac_cv_sizeof_uint16_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UINT16_T $ac_cv_sizeof_uint16_t
-_ACEOF
-
-
-    # DBYTE 1
-    # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uint8_t" >&5
-$as_echo_n "checking size of uint8_t... " >&6; }
-if ${ac_cv_sizeof_uint8_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uint8_t))" "ac_cv_sizeof_uint8_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_uint8_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (uint8_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_uint8_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uint8_t" >&5
-$as_echo "$ac_cv_sizeof_uint8_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UINT8_T $ac_cv_sizeof_uint8_t
-_ACEOF
-
-
-    if test x"$dap_inttypes_header" = x'yes' -a $ac_cv_sizeof_int32_t -eq 4 -a $ac_cv_sizeof_int16_t -eq 2 -a $ac_cv_sizeof_uint8_t -eq 1 -a $ac_cv_sizeof_double -eq 8; then
-        dap_use_c99_types=yes
-    fi
-     if test x"$dap_use_c99_types" = 'xyes'; then
-  USE_C99_TYPES_TRUE=
-  USE_C99_TYPES_FALSE='#'
-else
-  USE_C99_TYPES_TRUE='#'
-  USE_C99_TYPES_FALSE=
-fi
-
-
-    # I've separated the typedefs from the config.h header because other
-    # projects which use the DAP were getting conflicts with their includes,
-    # or the includes of still other libraries, and config.h. The
-    # config.h header is now included only by .cc and .c files and headers
-    # that need the typedefs use dods-datatypes.h.
-    # there are 2 possibilities for the definition of dods_int32, ...,
-    # types. First possibility is that the C99 types are used and
-    # dods-datatypes-static.h is copied. In that case the following
-    # definitions are not really usefull. In case the C99 types are
-    # not available, dods-datatypes-config.h.in is used to generate
-    # dods-datatypes.h.
-    # The code below makes dods-datatypes-config.h stand on its own.
-    # 8/2/2000 jhrg
-
-    # DMH: Divide into two sets of tests: one for DODS and one for XDR
-    if test x"$dap_use_c99_types" = 'xyes'; then
-        DODS_INT64=int64_t
-        DODS_UINT64=uint64_t
-        DODS_INT32=int32_t
-        DODS_UINT32=uint32_t
-        DODS_INT16=int16_t
-        DODS_UINT16=uint16_t
-        DODS_INT8=int8_t
-        DODS_BYTE=uint8_t
-    else
-        DODS_INT64="long long"
-        DODS_UINT64="unsigned long long"
-        DODS_INT16=short
-        DODS_UINT16="unsigned short"
-	DODS_INT32=int
-	DODS_UINT32="unsigned int"
-	DODS_INT8=char
-	DODS_BYTE="unsigned char"
-    fi
-    DODS_FLOAT64=double
-    DODS_FLOAT32=float
-
-    # I'm using the three arg form of AC_DEFINE_UNQUOTED because autoheader
-    # needs the third argument (although I don't quite get the specifics...
-    # 2/15/2001 jhrg
-
-cat >>confdefs.h <<_ACEOF
-#define DINT64 $DODS_INT64
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DUINT64 $DODS_UINT64
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DINT32 $DODS_INT32
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DUINT32 $DODS_UINT32
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DINT16 $DODS_INT16
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DUINT16 $DODS_UINT16
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DFLOAT64 $DODS_FLOAT64
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DFLOAT32 $DODS_FLOAT32
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DINT8 $DODS_INT8
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DBYTE $DODS_BYTE
-_ACEOF
-
-
-    # XDR INTEGER TYPES
-    #
-    # Since DAP4 does not use XDR, there are no defines for the int8 or the
-    # 64-bit integer types used by DAP4. jhrg  6/26/12
-    #
-    # Unfortunately, there is little commonality about xdr
-
-    # First, we need to see if the xdr routines are in libc, librpc,
-    # or librpcsvc or libnsl
-    dap_xdrlib=
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xdr_void" >&5
-$as_echo_n "checking for library containing xdr_void... " >&6; }
-if ${ac_cv_search_xdr_void+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_void ();
-int
-main ()
-{
-return xdr_void ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' c rpc nsl rpcsvc; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_xdr_void=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_xdr_void+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_xdr_void+:} false; then :
-
-else
-  ac_cv_search_xdr_void=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xdr_void" >&5
-$as_echo "$ac_cv_search_xdr_void" >&6; }
-ac_res=$ac_cv_search_xdr_void
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-      dap_xdrlib=`echo $ac_res|sed -e 's/^-l//'`
-else
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot locate library containing xdr functions." >&5
-$as_echo "$as_me: WARNING: Cannot locate library containing xdr functions." >&2;}
-fi
-
-    # Added for autoconf 2.59 which appears to not use/set $ac_res. jhrg
-    if test -z "$dap_xdrlib" ; then dap_xdrlib=c; fi
-    if test "$dap_xdrlib" = "none required" ; then dap_xdrlib=c; fi
-    # I don't think this is needed for autoconf 2.61 but I have no idea about
-    # 2.59 - it doesn't seem to be hurting anything with 2.61. jhrg
-    if test "$dap_xdrlib" != "c" ; then
-       # Add to library list
-       as_ac_Lib=`$as_echo "ac_cv_lib_$dap_xdrlib''_xdr_void" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_void in -l$dap_xdrlib" >&5
-$as_echo_n "checking for xdr_void in -l$dap_xdrlib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$dap_xdrlib  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_void ();
-int
-main ()
-{
-return xdr_void ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_LIB$dap_xdrlib" | $as_tr_cpp` 1
-_ACEOF
-
-  LIBS="-l$dap_xdrlib $LIBS"
-
-fi
-
-    fi
-    # Now figure out what integer functions to use
-    dap_xdrint=0
-    as_ac_Lib=`$as_echo "ac_cv_lib_$dap_xdrlib''_xdr_uint32_t" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_uint32_t in -l$dap_xdrlib" >&5
-$as_echo_n "checking for xdr_uint32_t in -l$dap_xdrlib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$dap_xdrlib  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_uint32_t ();
-int
-main ()
-{
-return xdr_uint32_t ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  dap_xdrint=1
-else
-
-      as_ac_Lib=`$as_echo "ac_cv_lib_$dap_xdrlib''_xdr_u_int32_t" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_u_int32_t in -l$dap_xdrlib" >&5
-$as_echo_n "checking for xdr_u_int32_t in -l$dap_xdrlib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$dap_xdrlib  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_u_int32_t ();
-int
-main ()
-{
-return xdr_u_int32_t ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  dap_xdrint=2
-else
-
-        as_ac_Lib=`$as_echo "ac_cv_lib_$dap_xdrlib''_xdr_uint" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_uint in -l$dap_xdrlib" >&5
-$as_echo_n "checking for xdr_uint in -l$dap_xdrlib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$dap_xdrlib  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_uint ();
-int
-main ()
-{
-return xdr_uint ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  dap_xdrint=3
-else
-
-          as_ac_Lib=`$as_echo "ac_cv_lib_$dap_xdrlib''_xdr_u_int" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_u_int in -l$dap_xdrlib" >&5
-$as_echo_n "checking for xdr_u_int in -l$dap_xdrlib... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$dap_xdrlib  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_u_int ();
-int
-main ()
-{
-return xdr_u_int ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  dap_xdrint=4
-fi
-
-fi
-
-fi
-
-fi
-
-    case "$dap_xdrint" in
-    1) # uint32_t
-	XDR_INT32=xdr_int32_t
-	XDR_UINT32=xdr_uint32_t
-        XDR_INT16=xdr_int16_t
-        XDR_UINT16=xdr_uint16_t
-        ;;
-    2) # u_int32_t
-	XDR_INT32=xdr_int32_t
-	XDR_UINT32=xdr_u_int32_t
-        XDR_INT16=xdr_int16_t
-        XDR_UINT16=xdr_u_int16_t
-        ;;
-    3) # uint
-	XDR_INT32=xdr_int
-	XDR_UINT32=xdr_uint
-        XDR_INT16=xdr_short
-        XDR_UINT16=xdr_ushort
-        ;;
-    4) # u_int
-	XDR_INT32=xdr_int
-	XDR_UINT32=xdr_u_int
-        XDR_INT16=xdr_short
-        XDR_UINT16=xdr_u_short
-        ;;
-    *)
-	as_fn_error $? "Cannot determine DODS XDR integer sizes" "$LINENO" 5
-        ;;
-    esac
-    XDR_FLOAT64=xdr_double
-    XDR_FLOAT32=xdr_float
-
-
-cat >>confdefs.h <<_ACEOF
-#define XDR_INT16 $XDR_INT16
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define XDR_UINT16 $XDR_UINT16
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define XDR_INT32 $XDR_INT32
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define XDR_UINT32 $XDR_UINT32
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define XDR_FLOAT64 $XDR_FLOAT64
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define XDR_FLOAT32 $XDR_FLOAT32
-_ACEOF
-
-
-# Check whether --enable-runtime-endian-check was given.
-if test "${enable_runtime_endian_check+set}" = set; then :
-  enableval=$enable_runtime_endian_check;
-fi
-
-
-if test "x$enable_runtime_endian_check" = "xyes"; then :
-
-
-$as_echo "#define COMPUTE_ENDIAN_AT_RUNTIME 1" >>confdefs.h
-
-
-fi
-
-# Checks for library functions.
-
-for ac_func in alarm atexit bzero dup2 getcwd getpagesize localtime_r memmove memset pow putenv setenv strchr strerror strtol strtoul timegm mktime
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-
-
-
-
-
-          LIBC_FATAL_STDERR_=1
-  export LIBC_FATAL_STDERR_
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments.  Useless!
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
-$as_echo_n "checking for working alloca.h... " >&6; }
-if ${ac_cv_working_alloca_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
-			  if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_working_alloca_h=yes
-else
-  ac_cv_working_alloca_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
-$as_echo "$ac_cv_working_alloca_h" >&6; }
-if test $ac_cv_working_alloca_h = yes; then
-
-$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
-$as_echo_n "checking for alloca... " >&6; }
-if ${ac_cv_func_alloca_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  ifdef HAVE_ALLOCA_H
-#   include <alloca.h>
-#  else
-#   ifdef _AIX
- #pragma alloca
-#   else
-#    ifndef alloca /* predefined by HP cc +Olibcalls */
-void *alloca (size_t);
-#    endif
-#   endif
-#  endif
-# endif
-#endif
-
-int
-main ()
-{
-char *p = (char *) alloca (1);
-				    if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_func_alloca_works=yes
-else
-  ac_cv_func_alloca_works=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
-$as_echo "$ac_cv_func_alloca_works" >&6; }
-
-if test $ac_cv_func_alloca_works = yes; then
-
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
-
-else
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble.  Some versions do not even contain alloca or
-# contain a buggy version.  If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-
-
-
-
-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-
-$as_echo "#define C_ALLOCA 1" >>confdefs.h
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
-$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if ${ac_cv_os_cray+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined CRAY && ! defined CRAY2
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then :
-  ac_cv_os_cray=yes
-else
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
-$as_echo "$ac_cv_os_cray" >&6; }
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-
-    break
-fi
-
-  done
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
-$as_echo_n "checking stack direction for C alloca... " >&6; }
-if ${ac_cv_c_stack_direction+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_c_stack_direction=0
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-find_stack_direction (int *addr, int depth)
-{
-  int dir, dummy = 0;
-  if (! addr)
-    addr = &dummy;
-  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
-  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
-  return dir + dummy;
-}
-
-int
-main (int argc, char **argv)
-{
-  return find_stack_direction (0, argc + !argv + 20) < 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_stack_direction=1
-else
-  ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
-$as_echo "$ac_cv_c_stack_direction" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-fi
-
-
-  GNULIB_BTOWC=0;
-  GNULIB_WCTOB=0;
-  GNULIB_MBSINIT=0;
-  GNULIB_MBRTOWC=0;
-  GNULIB_MBRLEN=0;
-  GNULIB_MBSRTOWCS=0;
-  GNULIB_MBSNRTOWCS=0;
-  GNULIB_WCRTOMB=0;
-  GNULIB_WCSRTOMBS=0;
-  GNULIB_WCSNRTOMBS=0;
-  GNULIB_WCWIDTH=0;
-  GNULIB_WMEMCHR=0;
-  GNULIB_WMEMCMP=0;
-  GNULIB_WMEMCPY=0;
-  GNULIB_WMEMMOVE=0;
-  GNULIB_WMEMSET=0;
-  GNULIB_WCSLEN=0;
-  GNULIB_WCSNLEN=0;
-  GNULIB_WCSCPY=0;
-  GNULIB_WCPCPY=0;
-  GNULIB_WCSNCPY=0;
-  GNULIB_WCPNCPY=0;
-  GNULIB_WCSCAT=0;
-  GNULIB_WCSNCAT=0;
-  GNULIB_WCSCMP=0;
-  GNULIB_WCSNCMP=0;
-  GNULIB_WCSCASECMP=0;
-  GNULIB_WCSNCASECMP=0;
-  GNULIB_WCSCOLL=0;
-  GNULIB_WCSXFRM=0;
-  GNULIB_WCSDUP=0;
-  GNULIB_WCSCHR=0;
-  GNULIB_WCSRCHR=0;
-  GNULIB_WCSCSPN=0;
-  GNULIB_WCSSPN=0;
-  GNULIB_WCSPBRK=0;
-  GNULIB_WCSSTR=0;
-  GNULIB_WCSTOK=0;
-  GNULIB_WCSWIDTH=0;
-    HAVE_BTOWC=1;
-  HAVE_MBSINIT=1;
-  HAVE_MBRTOWC=1;
-  HAVE_MBRLEN=1;
-  HAVE_MBSRTOWCS=1;
-  HAVE_MBSNRTOWCS=1;
-  HAVE_WCRTOMB=1;
-  HAVE_WCSRTOMBS=1;
-  HAVE_WCSNRTOMBS=1;
-  HAVE_WMEMCHR=1;
-  HAVE_WMEMCMP=1;
-  HAVE_WMEMCPY=1;
-  HAVE_WMEMMOVE=1;
-  HAVE_WMEMSET=1;
-  HAVE_WCSLEN=1;
-  HAVE_WCSNLEN=1;
-  HAVE_WCSCPY=1;
-  HAVE_WCPCPY=1;
-  HAVE_WCSNCPY=1;
-  HAVE_WCPNCPY=1;
-  HAVE_WCSCAT=1;
-  HAVE_WCSNCAT=1;
-  HAVE_WCSCMP=1;
-  HAVE_WCSNCMP=1;
-  HAVE_WCSCASECMP=1;
-  HAVE_WCSNCASECMP=1;
-  HAVE_WCSCOLL=1;
-  HAVE_WCSXFRM=1;
-  HAVE_WCSDUP=1;
-  HAVE_WCSCHR=1;
-  HAVE_WCSRCHR=1;
-  HAVE_WCSCSPN=1;
-  HAVE_WCSSPN=1;
-  HAVE_WCSPBRK=1;
-  HAVE_WCSSTR=1;
-  HAVE_WCSTOK=1;
-  HAVE_WCSWIDTH=1;
-  HAVE_DECL_WCTOB=1;
-  HAVE_DECL_WCWIDTH=1;
-  REPLACE_MBSTATE_T=0;
-  REPLACE_BTOWC=0;
-  REPLACE_WCTOB=0;
-  REPLACE_MBSINIT=0;
-  REPLACE_MBRTOWC=0;
-  REPLACE_MBRLEN=0;
-  REPLACE_MBSRTOWCS=0;
-  REPLACE_MBSNRTOWCS=0;
-  REPLACE_WCRTOMB=0;
-  REPLACE_WCSRTOMBS=0;
-  REPLACE_WCSNRTOMBS=0;
-  REPLACE_WCWIDTH=0;
-  REPLACE_WCSWIDTH=0;
-
-
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
-$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
-if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_wchar_h_correct_inline=yes
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-       #define wcstod renamed_wcstod
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-extern int zero (void);
-int main () { return zero(); }
-
-_ACEOF
-     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-       mv conftest.$ac_objext conftest1.$ac_objext
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-         #define wcstod renamed_wcstod
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int zero (void) { return 0; }
-
-_ACEOF
-       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-         mv conftest.$ac_objext conftest2.$ac_objext
-         if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then
-           :
-         else
-           gl_cv_header_wchar_h_correct_inline=no
-         fi
-       fi
-     fi
-     rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
-$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; }
-  if test $gl_cv_header_wchar_h_correct_inline = no; then
-    as_fn_error $? "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
-This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
-C99 mode. You have four options:
-  - Add the flag -fgnu89-inline to CC and reconfigure, or
-  - Fix your include files, using parts of
-    <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
-  - Use a gcc version older than 4.3, or
-  - Don't use the flags -std=c99 or -std=gnu99.
-Configuration aborted." "$LINENO" 5
-  fi
-
-
-
-
-  for ac_func in $ac_func_list
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
-$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if ${am_cv_langinfo_codeset+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int
-main ()
-{
-char* cs = nl_langinfo(CODESET); return !cs;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_langinfo_codeset=yes
-else
-  am_cv_langinfo_codeset=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
-$as_echo "$am_cv_langinfo_codeset" >&6; }
-  if test $am_cv_langinfo_codeset = yes; then
-
-$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
-
-  fi
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if ${gt_cv_locale_fr+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the native Windows locale name.
-          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=French_France.1252
-          else
-            # None found.
-            gt_cv_locale_fr=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.ISO-8859-1
-            else
-              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr_FR.ISO8859-1
-              else
-                # Test for the HP-UX locale name.
-                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_fr=fr_FR.iso88591
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_fr=fr
-                  else
-                    # None found.
-                    gt_cv_locale_fr=none
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
-
-
-
-
-
-
-  GNULIB_NL_LANGINFO=0;
-    HAVE_NL_LANGINFO=1;
-  REPLACE_NL_LANGINFO=0;
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
-$as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
-if ${gl_cv_have_include_next+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -rf conftestd1a conftestd1b conftestd2
-     mkdir conftestd1a conftestd1b conftestd2
-                                                  cat <<EOF > conftestd1a/conftest.h
-#define DEFINED_IN_CONFTESTD1
-#include_next <conftest.h>
-#ifdef DEFINED_IN_CONFTESTD2
-int foo;
-#else
-#error "include_next doesn't work"
-#endif
-EOF
-     cat <<EOF > conftestd1b/conftest.h
-#define DEFINED_IN_CONFTESTD1
-#include <stdio.h>
-#include_next <conftest.h>
-#ifdef DEFINED_IN_CONFTESTD2
-int foo;
-#else
-#error "include_next doesn't work"
-#endif
-EOF
-     cat <<EOF > conftestd2/conftest.h
-#ifndef DEFINED_IN_CONFTESTD1
-#error "include_next test doesn't work"
-#endif
-#define DEFINED_IN_CONFTESTD2
-EOF
-     gl_save_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <conftest.h>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_have_include_next=yes
-else
-  CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <conftest.h>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_have_include_next=buggy
-else
-  gl_cv_have_include_next=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     CPPFLAGS="$gl_save_CPPFLAGS"
-     rm -rf conftestd1a conftestd1b conftestd2
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5
-$as_echo "$gl_cv_have_include_next" >&6; }
-  PRAGMA_SYSTEM_HEADER=
-  if test $gl_cv_have_include_next = yes; then
-    INCLUDE_NEXT=include_next
-    INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
-    if test -n "$GCC"; then
-      PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
-    fi
-  else
-    if test $gl_cv_have_include_next = buggy; then
-      INCLUDE_NEXT=include
-      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
-    else
-      INCLUDE_NEXT=include
-      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
-    fi
-  fi
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
-$as_echo_n "checking whether system header files limit the line length... " >&6; }
-if ${gl_cv_pragma_columns+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef __TANDEM
-choke me
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "choke me" >/dev/null 2>&1; then :
-  gl_cv_pragma_columns=yes
-else
-  gl_cv_pragma_columns=no
-fi
-rm -f conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
-$as_echo "$gl_cv_pragma_columns" >&6; }
-  if test $gl_cv_pragma_columns = yes; then
-    PRAGMA_COLUMNS="#pragma COLUMNS 10000"
-  else
-    PRAGMA_COLUMNS=
-  fi
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
-$as_echo_n "checking for working fcntl.h... " >&6; }
-if ${gl_cv_header_working_fcntl_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  gl_cv_header_working_fcntl_h=cross-compiling
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-           #include <sys/stat.h>
-           #if HAVE_UNISTD_H
-           # include <unistd.h>
-           #else /* on Windows with MSVC */
-           # include <io.h>
-           # include <stdlib.h>
-           # defined sleep(n) _sleep ((n) * 1000)
-           #endif
-           #include <fcntl.h>
-           #ifndef O_NOATIME
-            #define O_NOATIME 0
-           #endif
-           #ifndef O_NOFOLLOW
-            #define O_NOFOLLOW 0
-           #endif
-           static int const constants[] =
-            {
-              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
-              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
-            };
-
-int
-main ()
-{
-
-            int result = !constants;
-            #if HAVE_SYMLINK
-            {
-              static char const sym[] = "conftest.sym";
-              if (symlink ("/dev/null", sym) != 0)
-                result |= 2;
-              else
-                {
-                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
-                  if (fd >= 0)
-                    {
-                      close (fd);
-                      result |= 4;
-                    }
-                }
-              if (unlink (sym) != 0 || symlink (".", sym) != 0)
-                result |= 2;
-              else
-                {
-                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
-                  if (fd >= 0)
-                    {
-                      close (fd);
-                      result |= 4;
-                    }
-                }
-              unlink (sym);
-            }
-            #endif
-            {
-              static char const file[] = "confdefs.h";
-              int fd = open (file, O_RDONLY | O_NOATIME);
-              if (fd < 0)
-                result |= 8;
-              else
-                {
-                  struct stat st0;
-                  if (fstat (fd, &st0) != 0)
-                    result |= 16;
-                  else
-                    {
-                      char c;
-                      sleep (1);
-                      if (read (fd, &c, 1) != 1)
-                        result |= 24;
-                      else
-                        {
-                          if (close (fd) != 0)
-                            result |= 32;
-                          else
-                            {
-                              struct stat st1;
-                              if (stat (file, &st1) != 0)
-                                result |= 40;
-                              else
-                                if (st0.st_atime != st1.st_atime)
-                                  result |= 64;
-                            }
-                        }
-                    }
-                }
-            }
-            return result;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_header_working_fcntl_h=yes
-else
-  case $? in #(
-        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
-        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
-        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
-         *) gl_cv_header_working_fcntl_h='no';;
-        esac
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
-$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
-
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOATIME $ac_val
-_ACEOF
-
-
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOFOLLOW $ac_val
-_ACEOF
-
-
-ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
-_ACEOF
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
-$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
-if ${ac_cv_gnu_library_2_1+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
-#endif
-#ifdef __UCLIBC__
- Lucky user
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky" >/dev/null 2>&1; then :
-  ac_cv_gnu_library_2_1=yes
-else
-  ac_cv_gnu_library_2_1=no
-fi
-rm -f conftest*
-
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
-$as_echo "$ac_cv_gnu_library_2_1" >&6; }
-
-    GLIBC21="$ac_cv_gnu_library_2_1"
-
-
-
-  GNULIB_LOCALECONV=0;
-  GNULIB_SETLOCALE=0;
-  GNULIB_DUPLOCALE=0;
-    HAVE_DUPLOCALE=1;
-  REPLACE_LOCALECONV=0;
-  REPLACE_SETLOCALE=0;
-  REPLACE_DUPLOCALE=0;
-  REPLACE_STRUCT_LCONV=0;
-
-
-    REPLACE_NULL=0;
-  HAVE_MAX_ALIGN_T=1;
-  HAVE_WCHAR_T=1;
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
-$as_echo_n "checking for wchar_t... " >&6; }
-if ${gt_cv_c_wchar_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-            wchar_t foo = (wchar_t)'\0';
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wchar_t=yes
-else
-  gt_cv_c_wchar_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
-$as_echo "$gt_cv_c_wchar_t" >&6; }
-  if test $gt_cv_c_wchar_t = yes; then
-
-$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
-
-  fi
-
-
-
-
-  STDDEF_H=
-  ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h>
-
-"
-if test "x$ac_cv_type_max_align_t" = xyes; then :
-
-else
-  HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h
-fi
-
-  if test $gt_cv_c_wchar_t = no; then
-    HAVE_WCHAR_T=0
-    STDDEF_H=stddef.h
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
-$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
-if ${gl_cv_decl_null_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-      int test[2 * (sizeof NULL == sizeof (void *)) -1];
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_decl_null_works=yes
-else
-  gl_cv_decl_null_works=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
-$as_echo "$gl_cv_decl_null_works" >&6; }
-  if test $gl_cv_decl_null_works = no; then
-    REPLACE_NULL=1
-    STDDEF_H=stddef.h
-  fi
-
-   if test -n "$STDDEF_H"; then
-  GL_GENERATE_STDDEF_H_TRUE=
-  GL_GENERATE_STDDEF_H_FALSE='#'
-else
-  GL_GENERATE_STDDEF_H_TRUE='#'
-  GL_GENERATE_STDDEF_H_FALSE=
-fi
-
-  if test -n "$STDDEF_H"; then
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stddef_h='<'stddef.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
-$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
-if ${gl_cv_next_stddef_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'stddef.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_stddef_h
-           gl_cv_next_stddef_h='"'$gl_header'"'
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
-$as_echo "$gl_cv_next_stddef_h" >&6; }
-     fi
-     NEXT_STDDEF_H=$gl_cv_next_stddef_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stddef.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stddef_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
-
-
-
-
-  fi
-
-
-
-
-      if test "X$prefix" = "XNONE"; then
-    acl_final_prefix="$ac_default_prefix"
-  else
-    acl_final_prefix="$prefix"
-  fi
-  if test "X$exec_prefix" = "XNONE"; then
-    acl_final_exec_prefix='${prefix}'
-  else
-    acl_final_exec_prefix="$exec_prefix"
-  fi
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-  prefix="$acl_save_prefix"
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
-  # contains only /bin. Note that ksh looks also at the FPATH variable,
-  # so we have to set that as well for the test.
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-           || PATH_SEPARATOR=';'
-       }
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
-      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
-        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${acl_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$acl_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      acl_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break
-        ;;
-      *)
-        test "$with_gnu_ld" != yes && break
-        ;;
-      esac
-    fi
-  done
-  IFS="$acl_save_ifs"
-else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${acl_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes
-  ;;
-*)
-  acl_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
-$as_echo "$acl_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$acl_cv_prog_gnu_ld
-
-
-
-
-                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
-$as_echo_n "checking for shared library run path origin... " >&6; }
-if ${acl_cv_rpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-    . ./conftest.sh
-    rm -f ./conftest.sh
-    acl_cv_rpath=done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
-$as_echo "$acl_cv_rpath" >&6; }
-  wl="$acl_cv_wl"
-  acl_libext="$acl_cv_libext"
-  acl_shlibext="$acl_cv_shlibext"
-  acl_libname_spec="$acl_cv_libname_spec"
-  acl_library_names_spec="$acl_cv_library_names_spec"
-  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-  acl_hardcode_direct="$acl_cv_hardcode_direct"
-  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
-    # Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
-  enableval=$enable_rpath; :
-else
-  enable_rpath=yes
-fi
-
-
-
-
-  acl_libdirstem=lib
-  acl_libdirstem2=
-  case "$host_os" in
-    solaris*)
-                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
-$as_echo_n "checking for 64-bit host... " >&6; }
-if ${gl_cv_solaris_64bit+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef _LP64
-sixtyfour bits
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
-  gl_cv_solaris_64bit=yes
-else
-  gl_cv_solaris_64bit=no
-fi
-rm -f conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
-$as_echo "$gl_cv_solaris_64bit" >&6; }
-      if test $gl_cv_solaris_64bit = yes; then
-        acl_libdirstem=lib/64
-        case "$host_cpu" in
-          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
-          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
-        esac
-      fi
-      ;;
-    *)
-      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-      if test -n "$searchpath"; then
-        acl_save_IFS="${IFS= 	}"; IFS=":"
-        for searchdir in $searchpath; do
-          if test -d "$searchdir"; then
-            case "$searchdir" in
-              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
-              */../ | */.. )
-                # Better ignore directories of this form. They are misleading.
-                ;;
-              *) searchdir=`cd "$searchdir" && pwd`
-                 case "$searchdir" in
-                   */lib64 ) acl_libdirstem=lib64 ;;
-                 esac ;;
-            esac
-          fi
-        done
-        IFS="$acl_save_IFS"
-      fi
-      ;;
-  esac
-  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
-
-
-
-  gl_threads_api=none
-  LIBTHREAD=
-  LTLIBTHREAD=
-  LIBMULTITHREAD=
-  LTLIBMULTITHREAD=
-  if test "$gl_use_threads" != no; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5
-$as_echo_n "checking whether imported symbols can be declared weak... " >&6; }
-if ${gl_cv_have_weak+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_have_weak=no
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-extern void xyzzy ();
-#pragma weak xyzzy
-int
-main ()
-{
-xyzzy();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_have_weak=maybe
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-       if test $gl_cv_have_weak = maybe; then
-                           if test "$cross_compiling" = yes; then :
-                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __ELF__
-               Extensible Linking Format
-               #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Extensible Linking Format" >/dev/null 2>&1; then :
-  gl_cv_have_weak="guessing yes"
-else
-  gl_cv_have_weak="guessing no"
-fi
-rm -f conftest*
-
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#pragma weak fputs
-int main ()
-{
-  return (fputs == NULL);
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_have_weak=yes
-else
-  gl_cv_have_weak=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-       fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
-$as_echo "$gl_cv_have_weak" >&6; }
-    if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-      # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
-      # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
-      ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = xyes; then :
-  gl_have_pthread_h=yes
-else
-  gl_have_pthread_h=no
-fi
-
-
-      if test "$gl_have_pthread_h" = yes; then
-        # Other possible tests:
-        #   -lpthreads (FSU threads, PCthreads)
-        #   -lgthreads
-        gl_have_pthread=
-        # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
-        # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
-        # the second one only in libpthread, and lock.c needs it.
-        #
-        # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04
-        # needs -pthread for some reason.  See:
-        # http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html
-        save_LIBS=$LIBS
-        for gl_pthread in '' '-pthread'; do
-          LIBS="$LIBS $gl_pthread"
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <pthread.h>
-                 pthread_mutex_t m;
-                 pthread_mutexattr_t ma;
-
-int
-main ()
-{
-pthread_mutex_lock (&m);
-                 pthread_mutexattr_init (&ma);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_have_pthread=yes
-             LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread
-             LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          LIBS=$save_LIBS
-          test -n "$gl_have_pthread" && break
-        done
-
-        # Test for libpthread by looking for pthread_kill. (Not pthread_self,
-        # since it is defined as a macro on OSF/1.)
-        if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then
-          # The program links fine without libpthread. But it may actually
-          # need to link with libpthread in order to create multiple threads.
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5
-$as_echo_n "checking for pthread_kill in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_kill+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_kill ();
-int
-main ()
-{
-return pthread_kill ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_pthread_kill=yes
-else
-  ac_cv_lib_pthread_pthread_kill=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then :
-  LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
-             # On Solaris and HP-UX, most pthread functions exist also in libc.
-             # Therefore pthread_in_use() needs to actually try to create a
-             # thread: pthread_create from libc will fail, whereas
-             # pthread_create will actually create a thread.
-             case "$host_os" in
-               solaris* | hpux*)
-
-$as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h
-
-             esac
-
-fi
-
-        elif test -z "$gl_have_pthread"; then
-          # Some library is needed. Try libpthread and libc_r.
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5
-$as_echo_n "checking for pthread_kill in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_kill+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_kill ();
-int
-main ()
-{
-return pthread_kill ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_pthread_kill=yes
-else
-  ac_cv_lib_pthread_pthread_kill=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then :
-  gl_have_pthread=yes
-             LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
-             LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
-fi
-
-          if test -z "$gl_have_pthread"; then
-            # For FreeBSD 4.
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5
-$as_echo_n "checking for pthread_kill in -lc_r... " >&6; }
-if ${ac_cv_lib_c_r_pthread_kill+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc_r  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_kill ();
-int
-main ()
-{
-return pthread_kill ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_c_r_pthread_kill=yes
-else
-  ac_cv_lib_c_r_pthread_kill=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5
-$as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; }
-if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then :
-  gl_have_pthread=yes
-               LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
-               LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r
-fi
-
-          fi
-        fi
-        if test -n "$gl_have_pthread"; then
-          gl_threads_api=posix
-
-$as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h
-
-          if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
-            if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
-
-$as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h
-
-              LIBTHREAD=
-              LTLIBTHREAD=
-            fi
-          fi
-        fi
-      fi
-    fi
-    if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
-        gl_have_solaristhread=
-        gl_save_LIBS="$LIBS"
-        LIBS="$LIBS -lthread"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <thread.h>
-#include <synch.h>
-
-int
-main ()
-{
-thr_self();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_have_solaristhread=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LIBS="$gl_save_LIBS"
-        if test -n "$gl_have_solaristhread"; then
-          gl_threads_api=solaris
-          LIBTHREAD=-lthread
-          LTLIBTHREAD=-lthread
-          LIBMULTITHREAD="$LIBTHREAD"
-          LTLIBMULTITHREAD="$LTLIBTHREAD"
-
-$as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h
-
-          if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
-
-$as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h
-
-            LIBTHREAD=
-            LTLIBTHREAD=
-          fi
-        fi
-      fi
-    fi
-    if test "$gl_use_threads" = pth; then
-      gl_save_CPPFLAGS="$CPPFLAGS"
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5
-$as_echo_n "checking how to link with libpth... " >&6; }
-if ${ac_cv_libpth_libs+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-
-
-
-
-
-
-
-    use_additional=yes
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-libpth-prefix was given.
-if test "${with_libpth_prefix+set}" = set; then :
-  withval=$with_libpth_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
-      fi
-    fi
-
-fi
-
-      LIBPTH=
-  LTLIBPTH=
-  INCPTH=
-  LIBPTH_PREFIX=
-      HAVE_LIBPTH=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='pth '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
-          if test -n "$acl_shlibext"; then
-            shrext=".$acl_shlibext"             # typically: shrext=.so
-          else
-            shrext=
-          fi
-          if test $use_additional = yes; then
-            dir="$additional_libdir"
-                                    if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
-                  fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
-                      found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
-                    fi
-                  done
-                fi
-              fi
-            fi
-                        if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBPTH; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                                    if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                                    if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-                        LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
-                                LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
-              else
-                                                                                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                                if test "$acl_hardcode_direct" = yes; then
-                                                      LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
-                else
-                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-                                                            LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
-                                                            haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBPTH; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir"
-                    fi
-                    if test "$acl_hardcode_minus_L" != no; then
-                                                                                        LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a"
-              else
-                                                LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */$acl_libdirstem | */$acl_libdirstem/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                if test "$name" = 'pth'; then
-                  LIBPTH_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem2 | */$acl_libdirstem2/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
-                if test "$name" = 'pth'; then
-                  LIBPTH_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCPTH; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBPTH; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBPTH; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBPTH="${LIBPTH}${LIBPTH:+ }$dep"
-                    LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name"
-            LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$acl_hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$acl_hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBPTH="${LIBPTH}${LIBPTH:+ }$flag"
-    else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$acl_hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBPTH="${LIBPTH}${LIBPTH:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir"
-    done
-  fi
-
-
-
-
-
-
-    ac_cv_libpth_libs="$LIBPTH"
-    ac_cv_libpth_ltlibs="$LTLIBPTH"
-    ac_cv_libpth_cppflags="$INCPTH"
-    ac_cv_libpth_prefix="$LIBPTH_PREFIX"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5
-$as_echo "$ac_cv_libpth_libs" >&6; }
-  LIBPTH="$ac_cv_libpth_libs"
-  LTLIBPTH="$ac_cv_libpth_ltlibs"
-  INCPTH="$ac_cv_libpth_cppflags"
-  LIBPTH_PREFIX="$ac_cv_libpth_prefix"
-
-  for element in $INCPTH; do
-    haveit=
-    for x in $CPPFLAGS; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
-
-
-
-
-      HAVE_LIBPTH=yes
-
-
-
-      gl_have_pth=
-      gl_save_LIBS="$LIBS"
-      LIBS="$LIBS $LIBPTH"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <pth.h>
-int
-main ()
-{
-pth_self();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_have_pth=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-      LIBS="$gl_save_LIBS"
-      if test -n "$gl_have_pth"; then
-        gl_threads_api=pth
-        LIBTHREAD="$LIBPTH"
-        LTLIBTHREAD="$LTLIBPTH"
-        LIBMULTITHREAD="$LIBTHREAD"
-        LTLIBMULTITHREAD="$LTLIBTHREAD"
-
-$as_echo "#define USE_PTH_THREADS 1" >>confdefs.h
-
-        if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
-          if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
-
-$as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h
-
-            LIBTHREAD=
-            LTLIBTHREAD=
-          fi
-        fi
-      else
-        CPPFLAGS="$gl_save_CPPFLAGS"
-      fi
-    fi
-    if test -z "$gl_have_pthread"; then
-      case "$gl_use_threads" in
-        yes | windows | win32) # The 'win32' is for backward compatibility.
-          if { case "$host_os" in
-                 mingw*) true;;
-                 *) false;;
-               esac
-             }; then
-            gl_threads_api=windows
-
-$as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h
-
-          fi
-          ;;
-      esac
-    fi
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5
-$as_echo_n "checking for multithread API to use... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5
-$as_echo "$gl_threads_api" >&6; }
-
-
-
-
-
-
-
-
-
-
-
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
-$as_echo_n "checking for mbstate_t... " >&6; }
-if ${ac_cv_type_mbstate_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int
-main ()
-{
-mbstate_t x; return sizeof x;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_mbstate_t=yes
-else
-  ac_cv_type_mbstate_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
-$as_echo "$ac_cv_type_mbstate_t" >&6; }
-   if test $ac_cv_type_mbstate_t = yes; then
-
-$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
-
-   else
-
-$as_echo "#define mbstate_t int" >>confdefs.h
-
-   fi
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-$as_echo_n "checking for a traditional japanese locale... " >&6; }
-if ${gt_cv_locale_ja+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Windows, the Japanese locale is
-          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
-          # cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-$as_echo "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-$as_echo_n "checking for a transitional chinese locale... " >&6; }
-if ${gt_cv_locale_zh_CN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        solaris2.8)
-          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
-          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
-          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
-          gt_cv_locale_zh_CN=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-$as_echo "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if ${gt_cv_locale_fr_utf8+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Windows, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Windows locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-  GNULIB__EXIT=0;
-  GNULIB_ATOLL=0;
-  GNULIB_CALLOC_POSIX=0;
-  GNULIB_CANONICALIZE_FILE_NAME=0;
-  GNULIB_GETLOADAVG=0;
-  GNULIB_GETSUBOPT=0;
-  GNULIB_GRANTPT=0;
-  GNULIB_MALLOC_POSIX=0;
-  GNULIB_MBTOWC=0;
-  GNULIB_MKDTEMP=0;
-  GNULIB_MKOSTEMP=0;
-  GNULIB_MKOSTEMPS=0;
-  GNULIB_MKSTEMP=0;
-  GNULIB_MKSTEMPS=0;
-  GNULIB_POSIX_OPENPT=0;
-  GNULIB_PTSNAME=0;
-  GNULIB_PTSNAME_R=0;
-  GNULIB_PUTENV=0;
-  GNULIB_QSORT_R=0;
-  GNULIB_RANDOM=0;
-  GNULIB_RANDOM_R=0;
-  GNULIB_REALLOC_POSIX=0;
-  GNULIB_REALPATH=0;
-  GNULIB_RPMATCH=0;
-  GNULIB_SECURE_GETENV=0;
-  GNULIB_SETENV=0;
-  GNULIB_STRTOD=0;
-  GNULIB_STRTOLL=0;
-  GNULIB_STRTOULL=0;
-  GNULIB_SYSTEM_POSIX=0;
-  GNULIB_UNLOCKPT=0;
-  GNULIB_UNSETENV=0;
-  GNULIB_WCTOMB=0;
-    HAVE__EXIT=1;
-  HAVE_ATOLL=1;
-  HAVE_CANONICALIZE_FILE_NAME=1;
-  HAVE_DECL_GETLOADAVG=1;
-  HAVE_GETSUBOPT=1;
-  HAVE_GRANTPT=1;
-  HAVE_MKDTEMP=1;
-  HAVE_MKOSTEMP=1;
-  HAVE_MKOSTEMPS=1;
-  HAVE_MKSTEMP=1;
-  HAVE_MKSTEMPS=1;
-  HAVE_POSIX_OPENPT=1;
-  HAVE_PTSNAME=1;
-  HAVE_PTSNAME_R=1;
-  HAVE_RANDOM=1;
-  HAVE_RANDOM_H=1;
-  HAVE_RANDOM_R=1;
-  HAVE_REALPATH=1;
-  HAVE_RPMATCH=1;
-  HAVE_SECURE_GETENV=1;
-  HAVE_SETENV=1;
-  HAVE_DECL_SETENV=1;
-  HAVE_STRTOD=1;
-  HAVE_STRTOLL=1;
-  HAVE_STRTOULL=1;
-  HAVE_STRUCT_RANDOM_DATA=1;
-  HAVE_SYS_LOADAVG_H=0;
-  HAVE_UNLOCKPT=1;
-  HAVE_DECL_UNSETENV=1;
-  REPLACE_CALLOC=0;
-  REPLACE_CANONICALIZE_FILE_NAME=0;
-  REPLACE_MALLOC=0;
-  REPLACE_MBTOWC=0;
-  REPLACE_MKSTEMP=0;
-  REPLACE_PTSNAME=0;
-  REPLACE_PTSNAME_R=0;
-  REPLACE_PUTENV=0;
-  REPLACE_QSORT_R=0;
-  REPLACE_RANDOM_R=0;
-  REPLACE_REALLOC=0;
-  REPLACE_REALPATH=0;
-  REPLACE_SETENV=0;
-  REPLACE_STRTOD=0;
-  REPLACE_UNSETENV=0;
-  REPLACE_WCTOMB=0;
-
-
-    gl_cv_c_multiarch=no
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-         not a universal capable compiler
-        #endif
-        typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-               arch=
-     prev=
-     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
-       if test -n "$prev"; then
-         case $word in
-           i?86 | x86_64 | ppc | ppc64)
-             if test -z "$arch" || test "$arch" = "$word"; then
-               arch="$word"
-             else
-               gl_cv_c_multiarch=yes
-             fi
-             ;;
-         esac
-         prev=
-       else
-         if test "x$word" = "x-arch"; then
-           prev=arch
-         fi
-       fi
-     done
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  if test $gl_cv_c_multiarch = yes; then
-    APPLE_UNIVERSAL_BUILD=1
-  else
-    APPLE_UNIVERSAL_BUILD=0
-  fi
-
-
-
-
-ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default"
-if test "x$ac_cv_have_decl_alarm" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ALARM $ac_have_decl
-_ACEOF
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
-$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
-if ${ac_cv_c_restrict+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_restrict=no
-   # The order here caters to the fact that C++ does not require restrict.
-   for ac_kw in __restrict __restrict__ _Restrict restrict; do
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int *int_ptr;
-	   int foo (int_ptr $ac_kw ip) { return ip[0]; }
-	   int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
-	   int bar (int ip[$ac_kw]) { return ip[0]; }
-
-int
-main ()
-{
-int s[1];
-	   int *$ac_kw t = s;
-	   t[0] = 0;
-	   return foo (t) + bar (t);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_restrict=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     test "$ac_cv_c_restrict" != no && break
-   done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
-$as_echo "$ac_cv_c_restrict" >&6; }
-
- case $ac_cv_c_restrict in
-   restrict) ;;
-   no) $as_echo "#define restrict /**/" >>confdefs.h
- ;;
-   *)  cat >>confdefs.h <<_ACEOF
-#define restrict $ac_cv_c_restrict
-_ACEOF
- ;;
- esac
-
-
-  for ac_header in stdlib.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_func_malloc_0_nonnull=no
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_func_malloc_0_nonnull=yes
-else
-  ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-  gl_cv_func_malloc_0_nonnull=1
-else
-  gl_cv_func_malloc_0_nonnull=0
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
-_ACEOF
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
-$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
-if ${ac_cv_header_stdbool_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-             #include <stdbool.h>
-             #ifndef bool
-              "error: bool is not defined"
-             #endif
-             #ifndef false
-              "error: false is not defined"
-             #endif
-             #if false
-              "error: false is not 0"
-             #endif
-             #ifndef true
-              "error: true is not defined"
-             #endif
-             #if true != 1
-              "error: true is not 1"
-             #endif
-             #ifndef __bool_true_false_are_defined
-              "error: __bool_true_false_are_defined is not defined"
-             #endif
-
-             struct s { _Bool s: 1; _Bool t; } s;
-
-             char a[true == 1 ? 1 : -1];
-             char b[false == 0 ? 1 : -1];
-             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-             char d[(bool) 0.5 == true ? 1 : -1];
-             /* See body of main program for 'e'.  */
-             char f[(_Bool) 0.0 == false ? 1 : -1];
-             char g[true];
-             char h[sizeof (_Bool)];
-             char i[sizeof s.t];
-             enum { j = false, k = true, l = false * true, m = true * 256 };
-             /* The following fails for
-                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-             _Bool n[m];
-             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-             /* Catch a bug in an HP-UX C compiler.  See
-                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-              */
-             _Bool q = true;
-             _Bool *pq = &q;
-
-int
-main ()
-{
-
-             bool e = &s;
-             *pq |= q;
-             *pq |= ! q;
-             /* Refer to every declared value, to avoid compiler optimizations.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                     + !m + !n + !o + !p + !q + !pq);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdbool_h=yes
-else
-  ac_cv_header_stdbool_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
-$as_echo "$ac_cv_header_stdbool_h" >&6; }
-   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
-if test "x$ac_cv_type__Bool" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE__BOOL 1
-_ACEOF
-
-
-fi
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if ${ac_cv_type_unsigned_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_unsigned_long_long_int=yes
-     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-         implementations with broken preprocessors.  Perhaps this can
-         be revisited in 2012.  In the meantime, code should not expect
-         #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                     ? 1 : -1)];
-      int i = 63;
-int
-main ()
-{
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-              | (llmax / ll) | (llmax % ll)
-              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-              | (ullmax / ull) | (ullmax % ull));
-  ;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-else
-  ac_cv_type_unsigned_long_long_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-
-$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if ${ac_cv_type_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_long_long_int=yes
-      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
-        if test $ac_cv_type_long_long_int = yes; then
-                                        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-                 #ifndef LLONG_MAX
-                 # define HALF \
-                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-                 # define LLONG_MAX (HALF - 1 + HALF)
-                 #endif
-int
-main ()
-{
-long long int n = 1;
-                 int i;
-                 for (i = 0; ; i++)
-                   {
-                     long long int m = n << i;
-                     if (m >> i != n)
-                       return 1;
-                     if (LLONG_MAX / 2 < m)
-                       break;
-                   }
-                 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_type_long_long_int=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-        fi
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
-$as_echo "$ac_cv_type_long_long_int" >&6; }
-  if test $ac_cv_type_long_long_int = yes; then
-
-$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-
-
-
-
-
-
-  if test $ac_cv_type_long_long_int = yes; then
-    HAVE_LONG_LONG_INT=1
-  else
-    HAVE_LONG_LONG_INT=0
-  fi
-
-
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    HAVE_UNSIGNED_LONG_LONG_INT=1
-  else
-    HAVE_UNSIGNED_LONG_LONG_INT=0
-  fi
-
-
-
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
-
-
-      if test $ac_cv_header_inttypes_h = yes; then
-    HAVE_INTTYPES_H=1
-  else
-    HAVE_INTTYPES_H=0
-  fi
-
-
-      if test $ac_cv_header_sys_types_h = yes; then
-    HAVE_SYS_TYPES_H=1
-  else
-    HAVE_SYS_TYPES_H=0
-  fi
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdint_h='<'stdint.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
-$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
-if ${gl_cv_next_stdint_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_stdint_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdint.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'stdint.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_stdint_h
-           gl_cv_next_stdint_h='"'$gl_header'"'
-          else
-               gl_cv_next_stdint_h='<'stdint.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
-$as_echo "$gl_cv_next_stdint_h" >&6; }
-     fi
-     NEXT_STDINT_H=$gl_cv_next_stdint_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stdint.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdint_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_stdint_h = yes; then
-    HAVE_STDINT_H=1
-  else
-    HAVE_STDINT_H=0
-  fi
-
-
-    if test $ac_cv_header_stdint_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
-$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
-if ${gl_cv_header_working_stdint_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_working_stdint_h=no
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
-/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
-#if !(defined WCHAR_MIN && defined WCHAR_MAX)
-#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
-#endif
-
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-
-#ifdef INT8_MAX
-int8_t a1 = INT8_MAX;
-int8_t a1min = INT8_MIN;
-#endif
-#ifdef INT16_MAX
-int16_t a2 = INT16_MAX;
-int16_t a2min = INT16_MIN;
-#endif
-#ifdef INT32_MAX
-int32_t a3 = INT32_MAX;
-int32_t a3min = INT32_MIN;
-#endif
-#ifdef INT64_MAX
-int64_t a4 = INT64_MAX;
-int64_t a4min = INT64_MIN;
-#endif
-#ifdef UINT8_MAX
-uint8_t b1 = UINT8_MAX;
-#else
-typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
-#endif
-#ifdef UINT16_MAX
-uint16_t b2 = UINT16_MAX;
-#endif
-#ifdef UINT32_MAX
-uint32_t b3 = UINT32_MAX;
-#endif
-#ifdef UINT64_MAX
-uint64_t b4 = UINT64_MAX;
-#endif
-int_least8_t c1 = INT8_C (0x7f);
-int_least8_t c1max = INT_LEAST8_MAX;
-int_least8_t c1min = INT_LEAST8_MIN;
-int_least16_t c2 = INT16_C (0x7fff);
-int_least16_t c2max = INT_LEAST16_MAX;
-int_least16_t c2min = INT_LEAST16_MIN;
-int_least32_t c3 = INT32_C (0x7fffffff);
-int_least32_t c3max = INT_LEAST32_MAX;
-int_least32_t c3min = INT_LEAST32_MIN;
-int_least64_t c4 = INT64_C (0x7fffffffffffffff);
-int_least64_t c4max = INT_LEAST64_MAX;
-int_least64_t c4min = INT_LEAST64_MIN;
-uint_least8_t d1 = UINT8_C (0xff);
-uint_least8_t d1max = UINT_LEAST8_MAX;
-uint_least16_t d2 = UINT16_C (0xffff);
-uint_least16_t d2max = UINT_LEAST16_MAX;
-uint_least32_t d3 = UINT32_C (0xffffffff);
-uint_least32_t d3max = UINT_LEAST32_MAX;
-uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
-uint_least64_t d4max = UINT_LEAST64_MAX;
-int_fast8_t e1 = INT_FAST8_MAX;
-int_fast8_t e1min = INT_FAST8_MIN;
-int_fast16_t e2 = INT_FAST16_MAX;
-int_fast16_t e2min = INT_FAST16_MIN;
-int_fast32_t e3 = INT_FAST32_MAX;
-int_fast32_t e3min = INT_FAST32_MIN;
-int_fast64_t e4 = INT_FAST64_MAX;
-int_fast64_t e4min = INT_FAST64_MIN;
-uint_fast8_t f1 = UINT_FAST8_MAX;
-uint_fast16_t f2 = UINT_FAST16_MAX;
-uint_fast32_t f3 = UINT_FAST32_MAX;
-uint_fast64_t f4 = UINT_FAST64_MAX;
-#ifdef INTPTR_MAX
-intptr_t g = INTPTR_MAX;
-intptr_t gmin = INTPTR_MIN;
-#endif
-#ifdef UINTPTR_MAX
-uintptr_t h = UINTPTR_MAX;
-#endif
-intmax_t i = INTMAX_MAX;
-uintmax_t j = UINTMAX_MAX;
-
-#include <limits.h> /* for CHAR_BIT */
-#define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 \
-        ? (t) -1 \
-        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-struct s {
-  int check_PTRDIFF:
-      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
-      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
-      ? 1 : -1;
-  /* Detect bug in FreeBSD 6.0 / ia64.  */
-  int check_SIG_ATOMIC:
-      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
-      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
-      ? 1 : -1;
-  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
-  int check_WCHAR:
-      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
-      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
-      ? 1 : -1;
-  /* Detect bug in mingw.  */
-  int check_WINT:
-      WINT_MIN == TYPE_MINIMUM (wint_t)
-      && WINT_MAX == TYPE_MAXIMUM (wint_t)
-      ? 1 : -1;
-
-  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
-  int check_UINT8_C:
-        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
-  int check_UINT16_C:
-        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
-
-  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
-#ifdef UINT8_MAX
-  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
-#endif
-#ifdef UINT16_MAX
-  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
-#endif
-#ifdef UINT32_MAX
-  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
-#endif
-#ifdef UINT64_MAX
-  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
-#endif
-  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
-  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
-  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
-  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
-  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
-  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
-  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
-  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
-  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
-  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
-  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
-};
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-                                                    if test "$cross_compiling" = yes; then :
-                 gl_cv_header_working_stdint_h=yes
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
-
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-
-#include <stdio.h>
-#include <string.h>
-#define MVAL(macro) MVAL1(macro)
-#define MVAL1(expression) #expression
-static const char *macro_values[] =
-  {
-#ifdef INT8_MAX
-    MVAL (INT8_MAX),
-#endif
-#ifdef INT16_MAX
-    MVAL (INT16_MAX),
-#endif
-#ifdef INT32_MAX
-    MVAL (INT32_MAX),
-#endif
-#ifdef INT64_MAX
-    MVAL (INT64_MAX),
-#endif
-#ifdef UINT8_MAX
-    MVAL (UINT8_MAX),
-#endif
-#ifdef UINT16_MAX
-    MVAL (UINT16_MAX),
-#endif
-#ifdef UINT32_MAX
-    MVAL (UINT32_MAX),
-#endif
-#ifdef UINT64_MAX
-    MVAL (UINT64_MAX),
-#endif
-    NULL
-  };
-
-int
-main ()
-{
-
-  const char **mv;
-  for (mv = macro_values; *mv != NULL; mv++)
-    {
-      const char *value = *mv;
-      /* Test whether it looks like a cast expression.  */
-      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
-          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
-          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
-          || strncmp (value, "((int)"/*)*/, 6) == 0
-          || strncmp (value, "((signed short)"/*)*/, 15) == 0
-          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return mv - macro_values + 1;
-    }
-  return 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_header_working_stdint_h=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5
-$as_echo "$gl_cv_header_working_stdint_h" >&6; }
-  fi
-  if test "$gl_cv_header_working_stdint_h" = yes; then
-    STDINT_H=
-  else
-            for ac_header in sys/inttypes.h sys/bitypes.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-    if test $ac_cv_header_sys_inttypes_h = yes; then
-      HAVE_SYS_INTTYPES_H=1
-    else
-      HAVE_SYS_INTTYPES_H=0
-    fi
-
-    if test $ac_cv_header_sys_bitypes_h = yes; then
-      HAVE_SYS_BITYPES_H=1
-    else
-      HAVE_SYS_BITYPES_H=0
-    fi
-
-
-
-
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
-
-
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-#include <limits.h>"; then :
-
-else
-  result=unknown
-fi
-
-       eval gl_cv_bitsizeof_${gltype}=\$result
-
-fi
-eval ac_res=\$gl_cv_bitsizeof_${gltype}
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
-
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
-
-
-  fi
-
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-#include <limits.h>"; then :
-
-else
-  result=unknown
-fi
-
-       eval gl_cv_bitsizeof_${gltype}=\$result
-
-fi
-eval ac_res=\$gl_cv_bitsizeof_${gltype}
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
-
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
-
-
-
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
-$as_echo_n "checking whether $gltype is signed... " >&6; }
-if eval \${gl_cv_type_${gltype}_signed+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  result=yes
-else
-  result=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       eval gl_cv_type_${gltype}_signed=\$result
-
-fi
-eval ac_res=\$gl_cv_type_${gltype}_signed
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_type_${gltype}_signed
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    if test "$result" = yes; then
-      cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNED_${GLTYPE} 1
-_ACEOF
-
-      eval HAVE_SIGNED_${GLTYPE}=1
-    else
-      eval HAVE_SIGNED_${GLTYPE}=0
-    fi
-  done
-
-
-  gl_cv_type_ptrdiff_t_signed=yes
-  gl_cv_type_size_t_signed=no
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
-
-
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
-fi
-eval ac_res=\$gl_cv_type_${gltype}_suffix
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
-
-
-  fi
-
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
-fi
-eval ac_res=\$gl_cv_type_${gltype}_suffix
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
-
-
-
-          if test $BITSIZEOF_WINT_T -lt 32; then
-    BITSIZEOF_WINT_T=32
-  fi
-
-    STDINT_H=stdint.h
-  fi
-
-   if test -n "$STDINT_H"; then
-  GL_GENERATE_STDINT_H_TRUE=
-  GL_GENERATE_STDINT_H_FALSE='#'
-else
-  GL_GENERATE_STDINT_H_TRUE='#'
-  GL_GENERATE_STDINT_H_FALSE=
-fi
-
-
-
-
-ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
-if test "x$ac_cv_type_mode_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define mode_t int
-_ACEOF
-
-fi
-
-
-
-    WINDOWS_64_BIT_OFF_T=0
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sys_types_h='<'sys/types.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
-$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
-if ${gl_cv_next_sys_types_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'sys/types.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_sys_types_h
-           gl_cv_next_sys_types_h='"'$gl_header'"'
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
-$as_echo "$gl_cv_next_sys_types_h" >&6; }
-     fi
-     NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'sys/types.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sys_types_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
-
-
-
-
-
-
-
-
-
-
-
-
-  GNULIB_CHDIR=0;
-  GNULIB_CHOWN=0;
-  GNULIB_CLOSE=0;
-  GNULIB_DUP=0;
-  GNULIB_DUP2=0;
-  GNULIB_DUP3=0;
-  GNULIB_ENVIRON=0;
-  GNULIB_EUIDACCESS=0;
-  GNULIB_FACCESSAT=0;
-  GNULIB_FCHDIR=0;
-  GNULIB_FCHOWNAT=0;
-  GNULIB_FDATASYNC=0;
-  GNULIB_FSYNC=0;
-  GNULIB_FTRUNCATE=0;
-  GNULIB_GETCWD=0;
-  GNULIB_GETDOMAINNAME=0;
-  GNULIB_GETDTABLESIZE=0;
-  GNULIB_GETGROUPS=0;
-  GNULIB_GETHOSTNAME=0;
-  GNULIB_GETLOGIN=0;
-  GNULIB_GETLOGIN_R=0;
-  GNULIB_GETPAGESIZE=0;
-  GNULIB_GETUSERSHELL=0;
-  GNULIB_GROUP_MEMBER=0;
-  GNULIB_ISATTY=0;
-  GNULIB_LCHOWN=0;
-  GNULIB_LINK=0;
-  GNULIB_LINKAT=0;
-  GNULIB_LSEEK=0;
-  GNULIB_PIPE=0;
-  GNULIB_PIPE2=0;
-  GNULIB_PREAD=0;
-  GNULIB_PWRITE=0;
-  GNULIB_READ=0;
-  GNULIB_READLINK=0;
-  GNULIB_READLINKAT=0;
-  GNULIB_RMDIR=0;
-  GNULIB_SETHOSTNAME=0;
-  GNULIB_SLEEP=0;
-  GNULIB_SYMLINK=0;
-  GNULIB_SYMLINKAT=0;
-  GNULIB_TTYNAME_R=0;
-  GNULIB_UNISTD_H_NONBLOCKING=0;
-  GNULIB_UNISTD_H_SIGPIPE=0;
-  GNULIB_UNLINK=0;
-  GNULIB_UNLINKAT=0;
-  GNULIB_USLEEP=0;
-  GNULIB_WRITE=0;
-    HAVE_CHOWN=1;
-  HAVE_DUP2=1;
-  HAVE_DUP3=1;
-  HAVE_EUIDACCESS=1;
-  HAVE_FACCESSAT=1;
-  HAVE_FCHDIR=1;
-  HAVE_FCHOWNAT=1;
-  HAVE_FDATASYNC=1;
-  HAVE_FSYNC=1;
-  HAVE_FTRUNCATE=1;
-  HAVE_GETDTABLESIZE=1;
-  HAVE_GETGROUPS=1;
-  HAVE_GETHOSTNAME=1;
-  HAVE_GETLOGIN=1;
-  HAVE_GETPAGESIZE=1;
-  HAVE_GROUP_MEMBER=1;
-  HAVE_LCHOWN=1;
-  HAVE_LINK=1;
-  HAVE_LINKAT=1;
-  HAVE_PIPE=1;
-  HAVE_PIPE2=1;
-  HAVE_PREAD=1;
-  HAVE_PWRITE=1;
-  HAVE_READLINK=1;
-  HAVE_READLINKAT=1;
-  HAVE_SETHOSTNAME=1;
-  HAVE_SLEEP=1;
-  HAVE_SYMLINK=1;
-  HAVE_SYMLINKAT=1;
-  HAVE_UNLINKAT=1;
-  HAVE_USLEEP=1;
-  HAVE_DECL_ENVIRON=1;
-  HAVE_DECL_FCHDIR=1;
-  HAVE_DECL_FDATASYNC=1;
-  HAVE_DECL_GETDOMAINNAME=1;
-  HAVE_DECL_GETLOGIN_R=1;
-  HAVE_DECL_GETPAGESIZE=1;
-  HAVE_DECL_GETUSERSHELL=1;
-  HAVE_DECL_SETHOSTNAME=1;
-  HAVE_DECL_TTYNAME_R=1;
-  HAVE_OS_H=0;
-  HAVE_SYS_PARAM_H=0;
-  REPLACE_CHOWN=0;
-  REPLACE_CLOSE=0;
-  REPLACE_DUP=0;
-  REPLACE_DUP2=0;
-  REPLACE_FCHOWNAT=0;
-  REPLACE_FTRUNCATE=0;
-  REPLACE_GETCWD=0;
-  REPLACE_GETDOMAINNAME=0;
-  REPLACE_GETDTABLESIZE=0;
-  REPLACE_GETLOGIN_R=0;
-  REPLACE_GETGROUPS=0;
-  REPLACE_GETPAGESIZE=0;
-  REPLACE_ISATTY=0;
-  REPLACE_LCHOWN=0;
-  REPLACE_LINK=0;
-  REPLACE_LINKAT=0;
-  REPLACE_LSEEK=0;
-  REPLACE_PREAD=0;
-  REPLACE_PWRITE=0;
-  REPLACE_READ=0;
-  REPLACE_READLINK=0;
-  REPLACE_READLINKAT=0;
-  REPLACE_RMDIR=0;
-  REPLACE_SLEEP=0;
-  REPLACE_SYMLINK=0;
-  REPLACE_SYMLINKAT=0;
-  REPLACE_TTYNAME_R=0;
-  REPLACE_UNLINK=0;
-  REPLACE_UNLINKAT=0;
-  REPLACE_USLEEP=0;
-  REPLACE_WRITE=0;
-  UNISTD_H_HAVE_WINSOCK2_H=0;
-  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
-
-
-
-
-
-
-  if test $ac_cv_header_features_h = yes; then
-    HAVE_FEATURES_H=1
-  else
-    HAVE_FEATURES_H=0
-  fi
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if ${gt_cv_c_wint_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-            wint_t foo = (wchar_t)'\0';
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wint_t=yes
-else
-  gt_cv_c_wint_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
-
-$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
-
-  fi
-
-
-
-
-  GNULIB_ISWBLANK=0;
-  GNULIB_WCTYPE=0;
-  GNULIB_ISWCTYPE=0;
-  GNULIB_WCTRANS=0;
-  GNULIB_TOWCTRANS=0;
-    HAVE_ISWBLANK=1;
-  HAVE_WCTYPE_T=1;
-  HAVE_WCTRANS_T=1;
-  REPLACE_ISWBLANK=0;
-
-
-
-
-
-
-   if true; then
-  GL_COND_LIBTOOL_TRUE=
-  GL_COND_LIBTOOL_FALSE='#'
-else
-  GL_COND_LIBTOOL_TRUE='#'
-  GL_COND_LIBTOOL_FALSE=
-fi
-
-  gl_cond_libtool=true
-  gl_m4_base='gl/m4'
-
-
-
-
-
-
-
-
-
-  gl_source_base='gl'
-
-
-  if test $ac_cv_func_alloca_works = no; then
-    :
-  fi
-
-  # Define an additional variable used in the Makefile substitution.
-  if test $ac_cv_working_alloca_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
-$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
-if ${gl_cv_rpl_alloca+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#if defined __GNUC__ || defined _AIX || defined _MSC_VER
-        Need own alloca
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Need own alloca" >/dev/null 2>&1; then :
-  gl_cv_rpl_alloca=yes
-else
-  gl_cv_rpl_alloca=no
-fi
-rm -f conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
-$as_echo "$gl_cv_rpl_alloca" >&6; }
-    if test $gl_cv_rpl_alloca = yes; then
-
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
-
-      ALLOCA_H=alloca.h
-    else
-                  ALLOCA_H=
-    fi
-  else
-    ALLOCA_H=alloca.h
-  fi
-
-   if test -n "$ALLOCA_H"; then
-  GL_GENERATE_ALLOCA_H_TRUE=
-  GL_GENERATE_ALLOCA_H_FALSE='#'
-else
-  GL_GENERATE_ALLOCA_H_TRUE='#'
-  GL_GENERATE_ALLOCA_H_FALSE=
-fi
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_btowc = no; then
-    HAVE_BTOWC=0
-  else
-
-
-
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
-$as_echo_n "checking whether btowc(0) is correct... " >&6; }
-if ${gl_cv_func_btowc_nul+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-        if test "$cross_compiling" = yes; then :
-
-           case "$host_os" in
-                      # Guess no on Cygwin.
-             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
-                      # Guess yes otherwise.
-             *)       gl_cv_func_btowc_nul="guessing yes" ;;
-           esac
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (btowc ('\0') != 0)
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_btowc_nul=yes
-else
-  gl_cv_func_btowc_nul=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
-$as_echo "$gl_cv_func_btowc_nul" >&6; }
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
-$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
-if ${gl_cv_func_btowc_eof+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                        case "$host_os" in
-                 # Guess no on IRIX.
-          irix*) gl_cv_func_btowc_eof="guessing no" ;;
-                 # Guess yes otherwise.
-          *)     gl_cv_func_btowc_eof="guessing yes" ;;
-        esac
-        if test $LOCALE_FR != none; then
-          if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      if (btowc (EOF) != WEOF)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_btowc_eof=yes
-else
-  gl_cv_func_btowc_eof=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-        fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
-$as_echo "$gl_cv_func_btowc_eof" >&6; }
-
-    case "$gl_cv_func_btowc_nul" in
-      *yes) ;;
-      *) REPLACE_BTOWC=1 ;;
-    esac
-    case "$gl_cv_func_btowc_eof" in
-      *yes) ;;
-      *) REPLACE_BTOWC=1 ;;
-    esac
-  fi
-
-  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
-
-
-  :
-
-  fi
-
-
-
-
-
-          GNULIB_BTOWC=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
-
-
-
-
-    for ac_header in byteswap.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "byteswap.h" "ac_cv_header_byteswap_h" "$ac_includes_default"
-if test "x$ac_cv_header_byteswap_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_BYTESWAP_H 1
-_ACEOF
-
-    BYTESWAP_H=''
-
-else
-
-    BYTESWAP_H='byteswap.h'
-
-fi
-
-done
-
-
-   if test -n "$BYTESWAP_H"; then
-  GL_GENERATE_BYTESWAP_H_TRUE=
-  GL_GENERATE_BYTESWAP_H_FALSE='#'
-else
-  GL_GENERATE_BYTESWAP_H_TRUE='#'
-  GL_GENERATE_BYTESWAP_H_FALSE=
-fi
-
-
-
-          if test "x$datarootdir" = x; then
-    datarootdir='${datadir}'
-
-  fi
-    if test "x$docdir" = x; then
-    docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-
-  fi
-    if test "x$htmldir" = x; then
-    htmldir='${docdir}'
-
-  fi
-  if test "x$dvidir" = x; then
-    dvidir='${docdir}'
-
-  fi
-  if test "x$pdfdir" = x; then
-    pdfdir='${docdir}'
-
-  fi
-  if test "x$psdir" = x; then
-    psdir='${docdir}'
-
-  fi
-  if test "x$lispdir" = x; then
-    lispdir='${datarootdir}/emacs/site-lisp'
-
-  fi
-  if test "x$localedir" = x; then
-    localedir='${datarootdir}/locale'
-
-  fi
-    if test "x$runstatedir" = x; then
-    runstatedir='${localstatedir}/run'
-
-  fi
-
-      pkglibexecdir='${libexecdir}/${PACKAGE}'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_langinfo_h='<'langinfo.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5
-$as_echo_n "checking absolute name of <langinfo.h>... " >&6; }
-if ${gl_cv_next_langinfo_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_langinfo_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'langinfo.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_langinfo_h
-           gl_cv_next_langinfo_h='"'$gl_header'"'
-          else
-               gl_cv_next_langinfo_h='<'langinfo.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5
-$as_echo "$gl_cv_next_langinfo_h" >&6; }
-     fi
-     NEXT_LANGINFO_H=$gl_cv_next_langinfo_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'langinfo.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_langinfo_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive
-
-
-
-
-
-    HAVE_LANGINFO_CODESET=0
-  HAVE_LANGINFO_T_FMT_AMPM=0
-  HAVE_LANGINFO_ERA=0
-  HAVE_LANGINFO_YESEXPR=0
-
-  if test $ac_cv_header_langinfo_h = yes; then
-    HAVE_LANGINFO_H=1
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
-$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; }
-if ${gl_cv_header_langinfo_codeset+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int a = CODESET;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_langinfo_codeset=yes
-else
-  gl_cv_header_langinfo_codeset=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5
-$as_echo "$gl_cv_header_langinfo_codeset" >&6; }
-    if test $gl_cv_header_langinfo_codeset = yes; then
-      HAVE_LANGINFO_CODESET=1
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5
-$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
-if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int a = T_FMT_AMPM;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_langinfo_t_fmt_ampm=yes
-else
-  gl_cv_header_langinfo_t_fmt_ampm=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5
-$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
-    if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
-      HAVE_LANGINFO_T_FMT_AMPM=1
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
-$as_echo_n "checking whether langinfo.h defines ERA... " >&6; }
-if ${gl_cv_header_langinfo_era+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int a = ERA;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_langinfo_era=yes
-else
-  gl_cv_header_langinfo_era=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5
-$as_echo "$gl_cv_header_langinfo_era" >&6; }
-    if test $gl_cv_header_langinfo_era = yes; then
-      HAVE_LANGINFO_ERA=1
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5
-$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; }
-if ${gl_cv_header_langinfo_yesexpr+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int a = YESEXPR;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_langinfo_yesexpr=yes
-else
-  gl_cv_header_langinfo_yesexpr=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5
-$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
-    if test $gl_cv_header_langinfo_yesexpr = yes; then
-      HAVE_LANGINFO_YESEXPR=1
-    fi
-  else
-    HAVE_LANGINFO_H=0
-  fi
-
-
-
-
-
-
-
-    for gl_func in nl_langinfo; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
-
-
-
-
-
-
-
-
-  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
-
-
-
-
-
-
-
-
-
-  case "$host_os" in
-    solaris*)
-
-$as_echo "#define _LCONV_C99 1" >>confdefs.h
-
-      ;;
-  esac
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5
-$as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; }
-if ${gl_cv_header_locale_h_posix2001+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-            int x = LC_MESSAGES;
-            int y = sizeof (((struct lconv *) 0)->decimal_point);
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_locale_h_posix2001=yes
-else
-  gl_cv_header_locale_h_posix2001=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5
-$as_echo "$gl_cv_header_locale_h_posix2001" >&6; }
-
-
-  if test $ac_cv_header_xlocale_h = yes; then
-    HAVE_XLOCALE_H=1
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5
-$as_echo_n "checking whether locale.h defines locale_t... " >&6; }
-if ${gl_cv_header_locale_has_locale_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-              locale_t x;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_locale_has_locale_t=yes
-else
-  gl_cv_header_locale_has_locale_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5
-$as_echo "$gl_cv_header_locale_has_locale_t" >&6; }
-    if test $gl_cv_header_locale_has_locale_t = yes; then
-      gl_cv_header_locale_h_needs_xlocale_h=no
-    else
-      gl_cv_header_locale_h_needs_xlocale_h=yes
-    fi
-  else
-    HAVE_XLOCALE_H=0
-    gl_cv_header_locale_h_needs_xlocale_h=no
-  fi
-
-
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5
-$as_echo_n "checking whether struct lconv is properly defined... " >&6; }
-if ${gl_cv_sys_struct_lconv_ok+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-            struct lconv l;
-            int x = sizeof (l.decimal_point);
-            int y = sizeof (l.int_p_cs_precedes);
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_lconv_ok=yes
-else
-  gl_cv_sys_struct_lconv_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5
-$as_echo "$gl_cv_sys_struct_lconv_ok" >&6; }
-  if test $gl_cv_sys_struct_lconv_ok = no; then
-    REPLACE_STRUCT_LCONV=1
-  fi
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_locale_h='<'locale.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5
-$as_echo_n "checking absolute name of <locale.h>... " >&6; }
-if ${gl_cv_next_locale_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'locale.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_locale_h
-           gl_cv_next_locale_h='"'$gl_header'"'
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5
-$as_echo "$gl_cv_next_locale_h" >&6; }
-     fi
-     NEXT_LOCALE_H=$gl_cv_next_locale_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'locale.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_locale_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive
-
-
-
-
-
-
-    for gl_func in setlocale duplocale; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-/* Some systems provide declarations in a non-standard header.  */
-#if HAVE_XLOCALE_H
-# include <xlocale.h>
-#endif
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
-
-
-
-
-  if test $REPLACE_STRUCT_LCONV = 1; then
-    REPLACE_LOCALECONV=1
-  fi
-
-  if test $REPLACE_LOCALECONV = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext"
-
-
-  ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
-"
-if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1
-_ACEOF
-
-
-fi
-
-
-  fi
-
-
-
-
-
-          GNULIB_LOCALECONV=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h
-
-
-
-
-
-  if test "$gl_threads_api" = posix; then
-    # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
-    # pthread_rwlock_* functions.
-    ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
-"
-if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then :
-
-$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h
-
-fi
-
-    # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-      #include <pthread.h>
-int
-main ()
-{
-
-#if __FreeBSD__ == 4
-error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
-#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
-       && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
-error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
-#else
-int x = (int)PTHREAD_MUTEX_RECURSIVE;
-return !x;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-$as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  fi
-  :
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_LOCK 1
-_ACEOF
-
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
-
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-
-
-
-  if test $ac_cv_func_mbrtowc = no; then
-    HAVE_MBRTOWC=0
-    ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" "
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-
-"
-if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MBRTOWC $ac_have_decl
-_ACEOF
-
-    if test $ac_cv_have_decl_mbrtowc = yes; then
-                        REPLACE_MBRTOWC=1
-    fi
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBRTOWC=1
-    else
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
-$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
-if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                  # Guess no on Solaris.
-        solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
-                  # Guess yes otherwise.
-        *)        gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
-
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      char input[] = "\303\237er";
-      mbstate_t state;
-      wchar_t wc;
-      size_t ret;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      wc = (wchar_t) 0xBADFACE;
-      ret = mbrtowc (&wc, input, 5, &state);
-      if (ret != 2)
-        result |= 1;
-      if (!mbsinit (&state))
-        result |= 2;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      ret = mbrtowc (NULL, input, 5, &state);
-      if (ret != 2) /* Solaris 7 fails here: ret is -1.  */
-        result |= 4;
-      if (!mbsinit (&state))
-        result |= 8;
-    }
-  return result;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_null_arg1=yes
-else
-  gl_cv_func_mbrtowc_null_arg1=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
-$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
-
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
-$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
-if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-              # Guess no on OSF/1.
-        osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
-              # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc;
-      int ret;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      wc = (wchar_t) 0xBADFACE;
-      mbrtowc (&wc, NULL, 5, &state);
-      /* Check that wc was not modified.  */
-      if (wc != (wchar_t) 0xBADFACE)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_null_arg2=yes
-else
-  gl_cv_func_mbrtowc_null_arg2=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
-$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
-$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
-if ${gl_cv_func_mbrtowc_retval+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                                   # Guess no on HP-UX, Solaris, native Windows.
-        hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
-                                   # Guess yes otherwise.
-        *)                         gl_cv_func_mbrtowc_retval="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
-         || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
-  int found_some_locale = 0;
-  /* This fails on Solaris.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        {
-          input[1] = '\0';
-          if (mbrtowc (&wc, input + 2, 5, &state) != 1)
-            result |= 1;
-        }
-      found_some_locale = 1;
-    }
-  /* This fails on HP-UX 11.11.  */
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        {
-          input[1] = '\0';
-          if (mbrtowc (&wc, input + 2, 5, &state) != 2)
-            result |= 2;
-        }
-      found_some_locale = 1;
-    }
-  /* This fails on native Windows.  */
-  if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
-    {
-      char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
-        {
-          input[3] = '\0';
-          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
-            result |= 4;
-        }
-      found_some_locale = 1;
-    }
-  if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
-    {
-      char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
-        {
-          input[3] = '\0';
-          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
-            result |= 8;
-        }
-      found_some_locale = 1;
-    }
-  if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
-    {
-      char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
-        {
-          input[3] = '\0';
-          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
-            result |= 16;
-        }
-      found_some_locale = 1;
-    }
-  return (found_some_locale ? result : 77);
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_retval=yes
-else
-  if test $? != 77; then
-             gl_cv_func_mbrtowc_retval=no
-           fi
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
-$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
-
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5
-$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; }
-if ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                       # Guess no on Solaris 8 and 9.
-        solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;;
-                       # Guess yes otherwise.
-        *)             gl_cv_func_mbrtowc_nul_retval="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8 and 9.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, "", 1, &state) != 0)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_nul_retval=yes
-else
-  gl_cv_func_mbrtowc_nul_retval=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
-$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5
-$as_echo_n "checking whether mbrtowc works on empty input... " >&6; }
-if ${gl_cv_func_mbrtowc_empty_input+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                     # Guess no on AIX and glibc systems.
-        aix* | *-gnu*)
-                    gl_cv_func_mbrtowc_empty_input="guessing no" ;;
-        *)          gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
-      esac
-      if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-           #include <wchar.h>
-           static wchar_t wc;
-           static mbstate_t mbs;
-           int
-           main (void)
-           {
-             return mbrtowc (&wc, "", 0, &mbs) == (size_t) -2;
-           }
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_empty_input=no
-else
-  gl_cv_func_mbrtowc_empty_input=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5
-$as_echo "$gl_cv_func_mbrtowc_empty_input" >&6; }
-
-      case "$gl_cv_func_mbrtowc_null_arg1" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_null_arg2" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_retval" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_nul_retval" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_empty_input" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-    fi
-  fi
-
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
-
-
-  :
-
-  fi
-
-
-
-
-
-          GNULIB_MBRTOWC=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
-
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-
-
-
-  if test $ac_cv_func_mbsinit = no; then
-    HAVE_MBSINIT=0
-    ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-
-"
-if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MBSINIT $ac_have_decl
-_ACEOF
-
-    if test $ac_cv_have_decl_mbsinit = yes; then
-                        REPLACE_MBSINIT=1
-    fi
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSINIT=1
-    else
-                        case "$host_os" in
-        mingw*) REPLACE_MBSINIT=1 ;;
-      esac
-    fi
-  fi
-
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
-
-
-  :
-
-  fi
-
-
-
-
-
-          GNULIB_MBSINIT=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
-
-
-
-
-
-
-  if false; then
-    REPLACE_MBTOWC=1
-  fi
-
-  if test $REPLACE_MBTOWC = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
-
-
-  :
-
-  fi
-
-
-
-
-
-          GNULIB_MBTOWC=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
-
-
-
-
-
-
-
-
-     if test $ac_cv_func_nl_langinfo = yes; then
-    # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5
-$as_echo_n "checking whether YESEXPR works... " >&6; }
-if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-
-         case "$host_os" in
-                   # Guess no on irix systems.
-           irix*)  gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
-                   # Guess yes elsewhere.
-           *)      gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
-         esac
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-
-int
-main ()
-{
-return !*nl_langinfo(YESEXPR);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_nl_langinfo_yesexpr_works=yes
-else
-  gl_cv_func_nl_langinfo_yesexpr_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
-$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
-    case $gl_cv_func_nl_langinfo_yesexpr_works in
-      *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
-      *)    FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
-    esac
-
-cat >>confdefs.h <<_ACEOF
-#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS
-_ACEOF
-
-    if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
-        && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
-      :
-    else
-      REPLACE_NL_LANGINFO=1
-
-$as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h
-
-    fi
-  else
-    HAVE_NL_LANGINFO=0
-  fi
-
-  if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
-
-  fi
-
-
-
-
-
-          GNULIB_NL_LANGINFO=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h
-
-
-
-
-
-# Check whether --with-included-regex was given.
-if test "${with_included_regex+set}" = set; then :
-  withval=$with_included_regex;
-fi
-
-
-  case $with_included_regex in #(
-  yes|no) ac_use_included_regex=$with_included_regex
-        ;;
-  '')
-    # If the system regex support is good enough that it passes the
-    # following run test, then default to *not* using the included regex.c.
-    # If cross compiling, assume the test would fail and use the included
-    # regex.c.
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5
-$as_echo_n "checking for working re_compile_pattern... " >&6; }
-if ${gl_cv_func_re_compile_pattern_working+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-         gl_cv_func_re_compile_pattern_working=no
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <regex.h>
-
-            #include <locale.h>
-            #include <limits.h>
-            #include <string.h>
-
-            #if defined M_CHECK_ACTION || HAVE_DECL_ALARM
-            # include <signal.h>
-            # include <unistd.h>
-            #endif
-
-            #if HAVE_MALLOC_H
-            # include <malloc.h>
-            #endif
-
-            #ifdef M_CHECK_ACTION
-            /* Exit with distinguishable exit code.  */
-            static void sigabrt_no_core (int sig) { raise (SIGTERM); }
-            #endif
-
-int
-main ()
-{
-int result = 0;
-            static struct re_pattern_buffer regex;
-            unsigned char folded_chars[UCHAR_MAX + 1];
-            int i;
-            const char *s;
-            struct re_registers regs;
-
-            /* Some builds of glibc go into an infinite loop on this
-               test.  Use alarm to force death, and mallopt to avoid
-               malloc recursion in diagnosing the corrupted heap. */
-#if HAVE_DECL_ALARM
-            signal (SIGALRM, SIG_DFL);
-            alarm (2);
-#endif
-#ifdef M_CHECK_ACTION
-            signal (SIGABRT, sigabrt_no_core);
-            mallopt (M_CHECK_ACTION, 2);
-#endif
-
-            if (setlocale (LC_ALL, "en_US.UTF-8"))
-              {
-                {
-                  /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
-                     This test needs valgrind to catch the bug on Debian
-                     GNU/Linux 3.1 x86, but it might catch the bug better
-                     on other platforms and it shouldn't hurt to try the
-                     test here.  */
-                  static char const pat[] = "insert into";
-                  static char const data[] =
-                    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
-                  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
-                                 | RE_ICASE);
-                  memset (&regex, 0, sizeof regex);
-                  s = re_compile_pattern (pat, sizeof pat - 1, &regex);
-                  if (s)
-                    result |= 1;
-                  else if (re_search (&regex, data, sizeof data - 1,
-                                      0, sizeof data - 1, &regs)
-                           != -1)
-                    result |= 1;
-                }
-
-                {
-                  /* This test is from glibc bug 15078.
-                     The test case is from Andreas Schwab in
-                     <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
-                     */
-                  static char const pat[] = "[^x]x";
-                  static char const data[] =
-                    /* <U1000><U103B><U103D><U1014><U103A><U102F><U1015><U103A> */
-                    "\xe1\x80\x80"
-                    "\xe1\x80\xbb"
-                    "\xe1\x80\xbd"
-                    "\xe1\x80\x94"
-                    "\xe1\x80\xba"
-                    "\xe1\x80\xaf"
-                    "\xe1\x80\x95"
-                    "\xe1\x80\xba"
-                    "x";
-                  re_set_syntax (0);
-                  memset (&regex, 0, sizeof regex);
-                  s = re_compile_pattern (pat, sizeof pat - 1, &regex);
-                  if (s)
-                    result |= 1;
-                  else
-                    {
-                      i = re_search (&regex, data, sizeof data - 1,
-                                     0, sizeof data - 1, 0);
-                      if (i != 0 && i != 21)
-                        result |= 1;
-                    }
-                }
-
-                if (! setlocale (LC_ALL, "C"))
-                  return 1;
-              }
-
-            /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
-            re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("a[^x]b", 6, &regex);
-            if (s)
-              result |= 2;
-            /* This should fail, but succeeds for glibc-2.5.  */
-            else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
-              result |= 2;
-
-            /* This regular expression is from Spencer ere test number 75
-               in grep-2.3.  */
-            re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-            memset (&regex, 0, sizeof regex);
-            for (i = 0; i <= UCHAR_MAX; i++)
-              folded_chars[i] = i;
-            regex.translate = folded_chars;
-            s = re_compile_pattern ("a[[:]:]]b\n", 11, &regex);
-            /* This should fail with _Invalid character class name_ error.  */
-            if (!s)
-              result |= 4;
-
-            /* Ensure that [b-a] is diagnosed as invalid, when
-               using RE_NO_EMPTY_RANGES. */
-            re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("a[b-a]", 6, &regex);
-            if (s == 0)
-              result |= 8;
-
-            /* This should succeed, but does not for glibc-2.1.3.  */
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("{1", 2, &regex);
-            if (s)
-              result |= 8;
-
-            /* The following example is derived from a problem report
-               against gawk from Jorge Stolfi <stolfi at ic.unicamp.br>.  */
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("[an\371]*n", 7, &regex);
-            if (s)
-              result |= 8;
-            /* This should match, but does not for glibc-2.2.1.  */
-            else if (re_match (&regex, "an", 2, 0, &regs) != 2)
-              result |= 8;
-
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("x", 1, &regex);
-            if (s)
-              result |= 8;
-            /* glibc-2.2.93 does not work with a negative RANGE argument.  */
-            else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
-              result |= 8;
-
-            /* The version of regex.c in older versions of gnulib
-               ignored RE_ICASE.  Detect that problem too.  */
-            re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("x", 1, &regex);
-            if (s)
-              result |= 16;
-            else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
-              result |= 16;
-
-            /* Catch a bug reported by Vin Shelton in
-               http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
-               */
-            re_set_syntax (RE_SYNTAX_POSIX_BASIC
-                           & ~RE_CONTEXT_INVALID_DUP
-                           & ~RE_NO_EMPTY_RANGES);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
-            if (s)
-              result |= 32;
-
-            /* REG_STARTEND was added to glibc on 2004-01-15.
-               Reject older versions.  */
-            if (! REG_STARTEND)
-              result |= 64;
-
-#if 0
-            /* It would be nice to reject hosts whose regoff_t values are too
-               narrow (including glibc on hosts with 64-bit ptrdiff_t and
-               32-bit int), but we should wait until glibc implements this
-               feature.  Otherwise, support for equivalence classes and
-               multibyte collation symbols would always be broken except
-               when compiling --without-included-regex.   */
-            if (sizeof (regoff_t) < sizeof (ptrdiff_t)
-                || sizeof (regoff_t) < sizeof (ssize_t))
-              result |= 64;
-#endif
-
-            return result;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_re_compile_pattern_working=yes
-else
-  gl_cv_func_re_compile_pattern_working=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5
-$as_echo "$gl_cv_func_re_compile_pattern_working" >&6; }
-    case $gl_cv_func_re_compile_pattern_working in #(
-    yes) ac_use_included_regex=no;; #(
-    no) ac_use_included_regex=yes;;
-    esac
-    ;;
-  *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5
-    ;;
-  esac
-
-  if test $ac_use_included_regex = yes; then
-
-$as_echo "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h
-
-
-$as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h
-
-
-$as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h
-
-
-$as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h
-
-
-$as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h
-
-
-$as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h
-
-
-$as_echo "#define re_search rpl_re_search" >>confdefs.h
-
-
-$as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h
-
-
-$as_echo "#define re_match rpl_re_match" >>confdefs.h
-
-
-$as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h
-
-
-$as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h
-
-
-$as_echo "#define re_comp rpl_re_comp" >>confdefs.h
-
-
-$as_echo "#define re_exec rpl_re_exec" >>confdefs.h
-
-
-$as_echo "#define regcomp rpl_regcomp" >>confdefs.h
-
-
-$as_echo "#define regexec rpl_regexec" >>confdefs.h
-
-
-$as_echo "#define regerror rpl_regerror" >>confdefs.h
-
-
-$as_echo "#define regfree rpl_regfree" >>confdefs.h
-
-  fi
-
-  if test $ac_use_included_regex = yes; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
-
-
-
-
-
-
-
-
-  for ac_header in libintl.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
-if test "x$ac_cv_header_libintl_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBINTL_H 1
-_ACEOF
-
-fi
-
-done
-
-
-  ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
-"
-if test "x$ac_cv_have_decl_isblank" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK $ac_have_decl
-_ACEOF
-
-
-  fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
-$as_echo_n "checking for ssize_t... " >&6; }
-if ${gt_cv_ssize_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-int
-main ()
-{
-int x = sizeof (ssize_t *) + sizeof (ssize_t);
-            return !x;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_ssize_t=yes
-else
-  gt_cv_ssize_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
-$as_echo "$gt_cv_ssize_t" >&6; }
-  if test $gt_cv_ssize_t = no; then
-
-$as_echo "#define ssize_t int" >>confdefs.h
-
-  fi
-
-
-
-
-  # Define two additional variables used in the Makefile substitution.
-
-  if test "$ac_cv_header_stdbool_h" = yes; then
-    STDBOOL_H=''
-  else
-    STDBOOL_H='stdbool.h'
-  fi
-
-   if test -n "$STDBOOL_H"; then
-  GL_GENERATE_STDBOOL_H_TRUE=
-  GL_GENERATE_STDBOOL_H_FALSE='#'
-else
-  GL_GENERATE_STDBOOL_H_TRUE='#'
-  GL_GENERATE_STDBOOL_H_FALSE=
-fi
-
-
-  if test "$ac_cv_type__Bool" = yes; then
-    HAVE__BOOL=1
-  else
-    HAVE__BOOL=0
-  fi
-
-
-
-
-
-  STDDEF_H=
-  ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h>
-
-"
-if test "x$ac_cv_type_max_align_t" = xyes; then :
-
-else
-  HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h
-fi
-
-  if test $gt_cv_c_wchar_t = no; then
-    HAVE_WCHAR_T=0
-    STDDEF_H=stddef.h
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
-$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
-if ${gl_cv_decl_null_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-      int test[2 * (sizeof NULL == sizeof (void *)) -1];
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_decl_null_works=yes
-else
-  gl_cv_decl_null_works=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
-$as_echo "$gl_cv_decl_null_works" >&6; }
-  if test $gl_cv_decl_null_works = no; then
-    REPLACE_NULL=1
-    STDDEF_H=stddef.h
-  fi
-
-   if test -n "$STDDEF_H"; then
-  GL_GENERATE_STDDEF_H_TRUE=
-  GL_GENERATE_STDDEF_H_FALSE='#'
-else
-  GL_GENERATE_STDDEF_H_TRUE='#'
-  GL_GENERATE_STDDEF_H_FALSE=
-fi
-
-  if test -n "$STDDEF_H"; then
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stddef_h='<'stddef.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
-$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
-if ${gl_cv_next_stddef_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'stddef.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_stddef_h
-           gl_cv_next_stddef_h='"'$gl_header'"'
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
-$as_echo "$gl_cv_next_stddef_h" >&6; }
-     fi
-     NEXT_STDDEF_H=$gl_cv_next_stddef_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stddef.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stddef_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
-
-
-
-
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdlib_h='<'stdlib.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
-$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
-if ${gl_cv_next_stdlib_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'stdlib.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_stdlib_h
-           gl_cv_next_stdlib_h='"'$gl_header'"'
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5
-$as_echo "$gl_cv_next_stdlib_h" >&6; }
-     fi
-     NEXT_STDLIB_H=$gl_cv_next_stdlib_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stdlib.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdlib_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive
-
-
-
-
-
-
-    for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt     initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps     posix_openpt ptsname ptsname_r random random_r realpath rpmatch     secure_getenv setenv setstate setstate_r srandom srandom_r     strtod strtoll strtoull unlockpt unsetenv; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#if HAVE_SYS_LOADAVG_H
-# include <sys/loadavg.h>
-#endif
-#if HAVE_RANDOM_H
-# include <random.h>
-#endif
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_unistd_h='<'unistd.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
-$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
-if ${gl_cv_next_unistd_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_unistd_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <unistd.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'unistd.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_unistd_h
-           gl_cv_next_unistd_h='"'$gl_header'"'
-          else
-               gl_cv_next_unistd_h='<'unistd.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5
-$as_echo "$gl_cv_next_unistd_h" >&6; }
-     fi
-     NEXT_UNISTD_H=$gl_cv_next_unistd_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'unistd.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_unistd_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_unistd_h = yes; then
-    HAVE_UNISTD_H=1
-  else
-    HAVE_UNISTD_H=0
-  fi
-
-
-
-
-
-
-
-    for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat     fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups     gethostname getlogin getlogin_r getpagesize     getusershell setusershell endusershell     group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite     readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r     unlink unlinkat usleep; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-/* Some systems declare various items in the wrong headers.  */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <fcntl.h>
-# include <stdio.h>
-# include <stdlib.h>
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-#  include <io.h>
-# endif
-#endif
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_wchar_h='<'wchar.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
-$as_echo_n "checking absolute name of <wchar.h>... " >&6; }
-if ${gl_cv_next_wchar_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_wchar_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <wchar.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'wchar.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_wchar_h
-           gl_cv_next_wchar_h='"'$gl_header'"'
-          else
-               gl_cv_next_wchar_h='<'wchar.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5
-$as_echo "$gl_cv_next_wchar_h" >&6; }
-     fi
-     NEXT_WCHAR_H=$gl_cv_next_wchar_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'wchar.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_wchar_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
-
-
-
-
-
-  if test $gt_cv_c_wint_t = yes; then
-    HAVE_WINT_T=1
-  else
-    HAVE_WINT_T=0
-  fi
-
-
-
-    for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb      wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset      wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp      wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr      wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth     ; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-#endif
-#include <wchar.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
-
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-
-
-
-  if test $ac_cv_func_wcrtomb = no; then
-    HAVE_WCRTOMB=0
-    ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" "
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-
-"
-if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCRTOMB $ac_have_decl
-_ACEOF
-
-    if test $ac_cv_have_decl_wcrtomb = yes; then
-                        REPLACE_WCRTOMB=1
-    fi
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_WCRTOMB=1
-    else
-
-
-
-
-
-             { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
-$as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
-if ${gl_cv_func_wcrtomb_retval+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                              case "$host_os" in
-                                     # Guess no on AIX 4, OSF/1 and Solaris.
-            aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;;
-                                     # Guess yes otherwise.
-            *)                       gl_cv_func_wcrtomb_retval="guessing yes" ;;
-          esac
-          if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
-            if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      if (wcrtomb (NULL, 0, NULL) != 1)
-        result |= 1;
-    }
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      if (wcrtomb (NULL, 0, NULL) != 1)
-        result |= 2;
-    }
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      if (wcrtomb (NULL, 0, NULL) != 1)
-        result |= 4;
-    }
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      if (wcrtomb (NULL, 0, NULL) != 1)
-        result |= 8;
-    }
-  return result;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_wcrtomb_retval=yes
-else
-  gl_cv_func_wcrtomb_retval=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-          fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5
-$as_echo "$gl_cv_func_wcrtomb_retval" >&6; }
-      case "$gl_cv_func_wcrtomb_retval" in
-        *yes) ;;
-        *) REPLACE_WCRTOMB=1 ;;
-      esac
-    fi
-  fi
-
-  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext"
-
-
-  :
-
-  fi
-
-
-
-
-
-          GNULIB_WCRTOMB=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_iswcntrl = yes; then
-    HAVE_ISWCNTRL=1
-  else
-    HAVE_ISWCNTRL=0
-  fi
-
-
-
-  if test $gt_cv_c_wint_t = yes; then
-    HAVE_WINT_T=1
-  else
-    HAVE_WINT_T=0
-  fi
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_wctype_h='<'wctype.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
-$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
-if ${gl_cv_next_wctype_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_wctype_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <wctype.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'wctype.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_wctype_h
-           gl_cv_next_wctype_h='"'$gl_header'"'
-          else
-               gl_cv_next_wctype_h='<'wctype.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
-$as_echo "$gl_cv_next_wctype_h" >&6; }
-     fi
-     NEXT_WCTYPE_H=$gl_cv_next_wctype_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'wctype.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_wctype_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_wctype_h = yes; then
-    if test $ac_cv_func_iswcntrl = yes; then
-                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
-$as_echo_n "checking whether iswcntrl works... " >&6; }
-if ${gl_cv_func_iswcntrl_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-          if test "$cross_compiling" = yes; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-                          #if __GNU_LIBRARY__ == 1
-                          Linux libc5 i18n is broken.
-                          #endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_func_iswcntrl_works="guessing yes"
-else
-  gl_cv_func_iswcntrl_works="guessing no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-               /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-                  included before <wchar.h>.
-                  BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
-                  must be included before <wchar.h>.  */
-               #include <stddef.h>
-               #include <stdio.h>
-               #include <time.h>
-               #include <wchar.h>
-               #include <wctype.h>
-               int main () { return iswprint ('x') == 0; }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_iswcntrl_works=yes
-else
-  gl_cv_func_iswcntrl_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
-$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
-    fi
-    HAVE_WCTYPE_H=1
-  else
-    HAVE_WCTYPE_H=0
-  fi
-
-
-  case "$gl_cv_func_iswcntrl_works" in
-    *yes) REPLACE_ISWCNTRL=0 ;;
-    *)    REPLACE_ISWCNTRL=1 ;;
-  esac
-
-
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-        :
-  fi
-
-  if test $REPLACE_ISWCNTRL = 1; then
-    REPLACE_TOWLOWER=1
-  else
-    for ac_func in towlower
-do :
-  ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
-if test "x$ac_cv_func_towlower" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_TOWLOWER 1
-_ACEOF
-
-fi
-done
-
-    if test $ac_cv_func_towlower = yes; then
-      REPLACE_TOWLOWER=0
-    else
-      ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-             included before <wchar.h>.
-             BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
-             must be included before <wchar.h>.  */
-          #include <stddef.h>
-          #include <stdio.h>
-          #include <time.h>
-          #include <wchar.h>
-          #if HAVE_WCTYPE_H
-          # include <wctype.h>
-          #endif
-
-"
-if test "x$ac_cv_have_decl_towlower" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TOWLOWER $ac_have_decl
-_ACEOF
-
-      if test $ac_cv_have_decl_towlower = yes; then
-                                REPLACE_TOWLOWER=1
-      else
-        REPLACE_TOWLOWER=0
-      fi
-    fi
-  fi
-
-
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
-        :
-  fi
-
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
-$as_echo_n "checking for wctype_t... " >&6; }
-if ${gl_cv_type_wctype_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-               included before <wchar.h>.
-               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
-               must be included before <wchar.h>.  */
-            #include <stddef.h>
-            #include <stdio.h>
-            #include <time.h>
-            #include <wchar.h>
-            #if HAVE_WCTYPE_H
-            # include <wctype.h>
-            #endif
-            wctype_t a;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_type_wctype_t=yes
-else
-  gl_cv_type_wctype_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
-$as_echo "$gl_cv_type_wctype_t" >&6; }
-  if test $gl_cv_type_wctype_t = no; then
-    HAVE_WCTYPE_T=0
-  fi
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
-$as_echo_n "checking for wctrans_t... " >&6; }
-if ${gl_cv_type_wctrans_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-               included before <wchar.h>.
-               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
-               must be included before <wchar.h>.  */
-            #include <stddef.h>
-            #include <stdio.h>
-            #include <time.h>
-            #include <wchar.h>
-            #include <wctype.h>
-            wctrans_t a;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_type_wctrans_t=yes
-else
-  gl_cv_type_wctrans_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
-$as_echo "$gl_cv_type_wctrans_t" >&6; }
-  if test $gl_cv_type_wctrans_t = no; then
-    HAVE_WCTRANS_T=0
-  fi
-
-
-    for gl_func in wctype iswctype wctrans towctrans     ; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-# include <wchar.h>
-#endif
-#include <wctype.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
-  # End of code from modules
-
-
-
-
-
-
-
-
-
-  gltests_libdeps=
-  gltests_ltlibdeps=
-
-
-
-
-
-
-
-
-
-  gl_source_base='tests'
-  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
-
-  gl_module_indicator_condition=$gltests_WITNESS
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-curl was given.
-if test "${with_curl+set}" = set; then :
-  withval=$with_curl; with_curl_prefix="$withval"
-else
-  with_curl_prefix=""
-fi
-
-
-
-curlprivatereq=
-curlprivatelibs=
-curl_set=
-
-if test -n "$with_curl_prefix" -a -x $with_curl_prefix/bin/curl-config
-then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: Using $with_curl_prefix as the curl prefix directory." >&5
-$as_echo "$as_me: Using $with_curl_prefix as the curl prefix directory." >&6;}
-    CURL_LIBS="`$with_curl_prefix/bin/curl-config --libs`"
-    CURL_STATIC_LIBS=$CURL_LIBS
-    curlprivatelibs="`$with_curl_prefix/bin/curl-config --libs`"
-    CURL_CFLAGS="`$with_curl_prefix/bin/curl-config --cflags`"
-    curl_set="yes"
-elif test -n "$with_curl_prefix"
-then
-    as_fn_error $? "You set the curl-prefix directory to $with_curl_prefix, but curl-config is not there." "$LINENO" 5
-fi
-
-if test -z "$curl_set"
-then
-    # curlprivatereq=
-    # curlprivatelibs=
-    libdap_pkgconfig_libcurl=yes
-    libdap_libcurl_module='libcurl >= 7.19.0'
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
-	if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
-  ac_pt_PKG_CONFIG=$PKG_CONFIG
-  # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $ac_pt_PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_pt_PKG_CONFIG" = x; then
-    PKG_CONFIG=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    PKG_CONFIG=$ac_pt_PKG_CONFIG
-  fi
-else
-  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
-	_pkg_min_version=0.9.0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
-	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	else
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-		PKG_CONFIG=""
-	fi
-
-fi
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5
-$as_echo_n "checking for CURL... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$CURL_CFLAGS"; then
-        pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libdap_libcurl_module\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$libdap_libcurl_module") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_CURL_CFLAGS=`$PKG_CONFIG --cflags "$libdap_libcurl_module" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$CURL_LIBS"; then
-        pkg_cv_CURL_LIBS="$CURL_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libdap_libcurl_module\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$libdap_libcurl_module") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_CURL_LIBS=`$PKG_CONFIG --libs "$libdap_libcurl_module" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$libdap_libcurl_module"`
-        else
-	        CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$libdap_libcurl_module"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$CURL_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-                libdap_pkgconfig_libcurl=no
-elif test $pkg_failed = untried; then
-	libdap_pkgconfig_libcurl=no
-else
-	CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
-	CURL_LIBS=$pkg_cv_CURL_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	:
-fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcurl" >&5
-$as_echo_n "checking for libcurl... " >&6; }
-
-    if test $libdap_pkgconfig_libcurl = 'yes'
-    then
-	   curlprivatereq=$libdap_libcurl_module
-	   CURL_STATIC_LIBS="`$PKG_CONFIG --static --libs libcurl`"
-	   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; used pkg-config" >&5
-$as_echo "yes; used pkg-config" >&6; }
-    elif curl-config --version > /dev/null 2>&1
-    then
-	   version_libcurl=`curl-config --version | sed 's at libcurl \(.*\)@\1@'`
-
-       as_arg_v1="$version_libcurl"
-as_arg_v2="7.19.0"
-awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
-case $? in #(
-  1) :
-    as_fn_error $? "I could not find libcurl 7.19.0 or newer, found $version_libcurl" "$LINENO" 5 ;; #(
-  0) :
-     ;; #(
-  2) :
-     ;; #(
-  *) :
-     ;;
-esac
-
-	   CURL_LIBS="`curl-config --libs`"
-	   CURL_STATIC_LIBS=$CURL_LIBS
-	   curlprivatelibs="`curl-config --libs`"
-	   CURL_CFLAGS="`curl-config --cflags`"
-	   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; used curl-config and found version $version_libcurl" >&5
-$as_echo "yes; used curl-config and found version $version_libcurl" >&6; }
-    else
-	   as_fn_error $? "I could not find libcurl" "$LINENO" 5
-    fi
-fi
-
-
-
-
-
-
-
-
-# Check whether --with-xml2 was given.
-if test "${with_xml2+set}" = set; then :
-  withval=$with_xml2; with_xml2_prefix="$withval"
-else
-  with_xml2_prefix=""
-fi
-
-
-xmlprivatereq=
-xmlprivatelibs=
-xml_set=
-
-if test -n "$with_xml2_prefix" -a -x $with_xml2_prefix/bin/xml2-config
-then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: Using $with_xml2_prefix as the libxml2 prefix directory." >&5
-$as_echo "$as_me: Using $with_xml2_prefix as the libxml2 prefix directory." >&6;}
-    XML2_LIBS="`$with_xml2_prefix/bin/xml2-config --libs`"
-        xmlprivatelibs="`$with_xml2_prefix/bin/xml2-config --libs`"
-    XML2_CFLAGS="`$with_xml2_prefix/bin/xml2-config --cflags`"
-    xml_set="yes"
-elif test -n "$with_xml2_prefix"
-then
-    as_fn_error $? "You set the libxml2 prefix directory to $with_xml2_prefix, but xml2-config is not there." "$LINENO" 5
-fi
-
-if test -z "$xml_set"
-then
-libdap_pkgconfig_libxml2=yes
-libdap_libxml2_module='libxml-2.0 >= 2.7.0'
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML2" >&5
-$as_echo_n "checking for XML2... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XML2_CFLAGS"; then
-        pkg_cv_XML2_CFLAGS="$XML2_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libdap_libxml2_module\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$libdap_libxml2_module") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_XML2_CFLAGS=`$PKG_CONFIG --cflags "$libdap_libxml2_module" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XML2_LIBS"; then
-        pkg_cv_XML2_LIBS="$XML2_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libdap_libxml2_module\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$libdap_libxml2_module") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_XML2_LIBS=`$PKG_CONFIG --libs "$libdap_libxml2_module" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        XML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$libdap_libxml2_module"`
-        else
-	        XML2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$libdap_libxml2_module"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$XML2_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-                libdap_pkgconfig_libxml2=no
-elif test $pkg_failed = untried; then
-	libdap_pkgconfig_libxml2=no
-else
-	XML2_CFLAGS=$pkg_cv_XML2_CFLAGS
-	XML2_LIBS=$pkg_cv_XML2_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	:
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2" >&5
-$as_echo_n "checking for libxml2... " >&6; }
-if test $libdap_pkgconfig_libxml2 = 'yes'
-then
-	xmlprivatereq=$libdap_libxml2_module
-		XML2_LIBS="`$PKG_CONFIG --libs libxml-2.0`"
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; used pkg-config" >&5
-$as_echo "yes; used pkg-config" >&6; }
-elif xml2-config --version > /dev/null 2>&1
-then
-	version_libxml2=`xml2-config --version`
-
-        as_arg_v1="$version_libxml2"
-as_arg_v2="2.7.0"
-awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
-case $? in #(
-  1) :
-    as_fn_error $? "I could not find libxml2 2.7.0 or newer" "$LINENO" 5 ;; #(
-  0) :
-     ;; #(
-  2) :
-     ;; #(
-  *) :
-     ;;
-esac
-
-	XML2_LIBS="`xml2-config --libs`"
-		XML2_CFLAGS="`xml2-config --cflags`"
-	xmlprivatelibs="`xml2-config --libs `"
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; used xml2-config and found version $version_libxml2" >&5
-$as_echo "yes; used xml2-config and found version $version_libxml2" >&6; }
-else
-	as_fn_error $? "I could not find ml2-config" "$LINENO" 5
-fi
-fi
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5
-$as_echo_n "checking for pthread_kill in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_kill+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_kill ();
-int
-main ()
-{
-return pthread_kill ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_pthread_kill=yes
-else
-  ac_cv_lib_pthread_pthread_kill=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then :
-  PTHREAD_LIBS="-lpthread"
-else
-  as_fn_error $? "I could not find pthreads" "$LINENO" 5
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
-$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
-if ${ac_cv_lib_uuid_uuid_generate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-luuid  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char uuid_generate ();
-int
-main ()
-{
-return uuid_generate ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_uuid_uuid_generate=yes
-else
-  ac_cv_lib_uuid_uuid_generate=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
-$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
-if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then :
-  UUID_LIBS="-luuid"
-else
-  UUID_LIBS=""
-fi
-
-
-
-
-
-
-# Check whether --with-cppunit-prefix was given.
-if test "${with_cppunit_prefix+set}" = set; then :
-  withval=$with_cppunit_prefix; cppunit_config_prefix="$withval"
-else
-  cppunit_config_prefix=""
-fi
-
-
-# Check whether --with-cppunit-exec-prefix was given.
-if test "${with_cppunit_exec_prefix+set}" = set; then :
-  withval=$with_cppunit_exec_prefix; cppunit_config_exec_prefix="$withval"
-else
-  cppunit_config_exec_prefix=""
-fi
-
-
-  if test x$cppunit_config_exec_prefix != x ; then
-     cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
-     if test x${CPPUNIT_CONFIG+set} != xset ; then
-        CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
-     fi
-  fi
-  if test x$cppunit_config_prefix != x ; then
-     cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
-     if test x${CPPUNIT_CONFIG+set} != xset ; then
-        CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
-     fi
-  fi
-
-  # Extract the first word of "cppunit-config", so it can be a program name with args.
-set dummy cppunit-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CPPUNIT_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $CPPUNIT_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CPPUNIT_CONFIG="$CPPUNIT_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_CPPUNIT_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_CPPUNIT_CONFIG" && ac_cv_path_CPPUNIT_CONFIG="no"
-  ;;
-esac
-fi
-CPPUNIT_CONFIG=$ac_cv_path_CPPUNIT_CONFIG
-if test -n "$CPPUNIT_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPPUNIT_CONFIG" >&5
-$as_echo "$CPPUNIT_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  cppunit_version_min=1.12.0
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cppunit - version >= $cppunit_version_min" >&5
-$as_echo_n "checking for Cppunit - version >= $cppunit_version_min... " >&6; }
-  no_cppunit=""
-  if test "$CPPUNIT_CONFIG" = "no" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    no_cppunit=yes
-  else
-    CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
-    CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
-    cppunit_version=`$CPPUNIT_CONFIG --version`
-
-    cppunit_major_version=`echo $cppunit_version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-    cppunit_minor_version=`echo $cppunit_version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-    cppunit_micro_version=`echo $cppunit_version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-
-    cppunit_major_min=`echo $cppunit_version_min | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-    if test "x${cppunit_major_min}" = "x" ; then
-       cppunit_major_min=0
-    fi
-
-    cppunit_minor_min=`echo $cppunit_version_min | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-    if test "x${cppunit_minor_min}" = "x" ; then
-       cppunit_minor_min=0
-    fi
-
-    cppunit_micro_min=`echo $cppunit_version_min | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-    if test "x${cppunit_micro_min}" = "x" ; then
-       cppunit_micro_min=0
-    fi
-
-    cppunit_version_proper=`expr \
-        $cppunit_major_version \> $cppunit_major_min \| \
-        $cppunit_major_version \= $cppunit_major_min \& \
-        $cppunit_minor_version \> $cppunit_minor_min \| \
-        $cppunit_major_version \= $cppunit_major_min \& \
-        $cppunit_minor_version \= $cppunit_minor_min \& \
-        $cppunit_micro_version \>= $cppunit_micro_min `
-
-    if test "$cppunit_version_proper" = "1" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version" >&5
-$as_echo "$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-      no_cppunit=yes
-    fi
-  fi
-
-  if test "x$no_cppunit" = x ; then
-      if true; then
-  CPPUNIT_TRUE=
-  CPPUNIT_FALSE='#'
-else
-  CPPUNIT_TRUE='#'
-  CPPUNIT_FALSE=
-fi
-
-  else
-     CPPUNIT_CFLAGS=""
-     CPPUNIT_LIBS=""
-      if false; then
-  CPPUNIT_TRUE=
-  CPPUNIT_FALSE='#'
-else
-  CPPUNIT_TRUE='#'
-  CPPUNIT_FALSE=
-fi
-
-  fi
-
-
-
-
-
-    # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
-  enableval=$enable_debug; DEBUG=$enableval
-else
-  DEBUG=no
-fi
-
-
-    case "$DEBUG" in
-    no)
-      ;;
-    1)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: Setting debugging to level 1" >&5
-$as_echo "Setting debugging to level 1" >&6; }
-      $as_echo "#define DODS_DEBUG 1" >>confdefs.h
-
-      ;;
-    2)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: Setting debugging to level 2" >&5
-$as_echo "Setting debugging to level 2" >&6; }
-
-$as_echo "#define DODS_DEBUG /**/" >>confdefs.h
-
-
-$as_echo "#define DODS_DEBUG2 /**/" >>confdefs.h
-
-      ;;
-    *)
-      as_fn_error $? "Bad debug value" "$LINENO" 5
-      ;;
-    esac
-
-if test "$prefix" = "NONE"; then :
-
-$as_echo "#define LIBDAP_ROOT \"/usr/local\"" >>confdefs.h
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define LIBDAP_ROOT "$prefix"
-_ACEOF
-
-fi
-
-# Check whether --enable-dap4 was given.
-if test "${enable_dap4+set}" = set; then :
-  enableval=$enable_dap4; enable_dap4=${enableval}
-else
-  enable_dap4=yes
-fi
-
-
-if test x$enable_dap4 = xyes; then :
-
-
-$as_echo "#define DAP4 1" >>confdefs.h
-
-     if true; then
-  DAP4_DEFINED_TRUE=
-  DAP4_DEFINED_FALSE='#'
-else
-  DAP4_DEFINED_TRUE='#'
-  DAP4_DEFINED_FALSE=
-fi
-
-else
-        if false; then
-  DAP4_DEFINED_TRUE=
-  DAP4_DEFINED_FALSE='#'
-else
-  DAP4_DEFINED_TRUE='#'
-  DAP4_DEFINED_FALSE=
-fi
-
-
-fi
-
-# Check whether --enable-developer was given.
-if test "${enable_developer+set}" = set; then :
-  enableval=$enable_developer; build_developer=${enableval}
-else
-  build_developer=no
-fi
-
-
-if test x$build_developer = xyes; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: Building developer version" >&5
-$as_echo "$as_me: Building developer version" >&6;}
-        if true; then
-  BUILD_DEVELOPER_TRUE=
-  BUILD_DEVELOPER_FALSE='#'
-else
-  BUILD_DEVELOPER_TRUE='#'
-  BUILD_DEVELOPER_FALSE=
-fi
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: Not building developer version" >&5
-$as_echo "$as_me: Not building developer version" >&6;}
-        if false; then
-  BUILD_DEVELOPER_TRUE=
-  BUILD_DEVELOPER_FALSE='#'
-else
-  BUILD_DEVELOPER_TRUE='#'
-  BUILD_DEVELOPER_FALSE=
-fi
-
-
-$as_echo "#define NDEBUG 1" >>confdefs.h
-
-fi
-
-
-
-# Check whether --enable-coverage was given.
-if test "${enable_coverage+set}" = set; then :
-  enableval=$enable_coverage; coverage=$enableval
-else
-  coverage=no
-fi
-
-
-if test x$coverage = xyes; then :
-   if test x$GCC = xyes; then :
-   CFLAGS="-fprofile-arcs -ftest-coverage -pg $CFLAGS"
-              CXXFLAGS="-fprofile-arcs -ftest-coverage -pg $CXXFLAGS"
-              LDFLAGS="-pg $LDFLAGS"
-	          { $as_echo "$as_me:${as_lineno-$LINENO}: Building coverage reporting." >&5
-$as_echo "$as_me: Building coverage reporting." >&6;}
-else
-   as_fn_error $? "Can only enable coverage when using gcc." "$LINENO" 5
-fi
-fi
-
-# Support for running test cases using valgrind:
-
-use_valgrind=no
-# Check whether --enable-valgrind was given.
-if test "${enable_valgrind+set}" = set; then :
-  enableval=$enable_valgrind; use_valgrind=$enableval
-else
-  use_valgrind=no
-fi
-
-
-if test x$use_valgrind = xyes ; then :
-   # Extract the first word of "valgrind", so it can be a program name with args.
-set dummy valgrind; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_HAVE_VALGRIND+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$HAVE_VALGRIND"; then
-  ac_cv_prog_HAVE_VALGRIND="$HAVE_VALGRIND" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_HAVE_VALGRIND="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_HAVE_VALGRIND" && ac_cv_prog_HAVE_VALGRIND="no"
-fi
-fi
-HAVE_VALGRIND=$ac_cv_prog_HAVE_VALGRIND
-if test -n "$HAVE_VALGRIND"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_VALGRIND" >&5
-$as_echo "$HAVE_VALGRIND" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        if test x$HAVE_VALGRIND = xyes ; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: Using valgrind with unit tests." >&5
-$as_echo "$as_me: Using valgrind with unit tests." >&6;}
-else
-  as_fn_error $? "Valgrind not found in PATH." "$LINENO" 5
-fi
-fi
-
- if test x$use_valgrind = xyes; then
-  USE_VALGRIND_TRUE=
-  USE_VALGRIND_FALSE='#'
-else
-  USE_VALGRIND_TRUE='#'
-  USE_VALGRIND_FALSE=
-fi
-
-
-
-
-
-
-
-
-
-ac_config_files="$ac_config_files Makefile libdap.pc libdapclient.pc libdapserver.pc main_page.doxygen doxy.conf abi_checker.xml gl/Makefile d4_ce/Makefile d4_function/Makefile tests/Makefile tests/atlocal unit-tests/Makefile unit-tests/cache-testsuite/Makefile"
-
-
-ac_config_files="$ac_config_files dap-config"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
-   if test -n "$am_sleep_pid"; then
-     # Hide warnings about reused PIDs.
-     wait $am_sleep_pid 2>/dev/null
-   fi
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${COMPILER_IS_GCC_TRUE}" && test -z "${COMPILER_IS_GCC_FALSE}"; then
-  as_fn_error $? "conditional \"COMPILER_IS_GCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${COMPILER_IS_GCC_TRUE}" && test -z "${COMPILER_IS_GCC_FALSE}"; then
-  as_fn_error $? "conditional \"COMPILER_IS_GCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-if test -z "${USE_C99_TYPES_TRUE}" && test -z "${USE_C99_TYPES_FALSE}"; then
-  as_fn_error $? "conditional \"USE_C99_TYPES\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
-  as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_BYTESWAP_H_TRUE}" && test -z "${GL_GENERATE_BYTESWAP_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_BYTESWAP_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
-  as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-    gl_libobjs=
-    gl_ltlibobjs=
-    if test -n "$gl_LIBOBJS"; then
-      # Remove the extension.
-      sed_drop_objext='s/\.o$//;s/\.obj$//'
-      for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
-        gl_libobjs="$gl_libobjs $i.$ac_objext"
-        gl_ltlibobjs="$gl_ltlibobjs $i.lo"
-      done
-    fi
-    gl_LIBOBJS=$gl_libobjs
-
-    gl_LTLIBOBJS=$gl_ltlibobjs
-
-
-
-    gltests_libobjs=
-    gltests_ltlibobjs=
-    if test -n "$gltests_LIBOBJS"; then
-      # Remove the extension.
-      sed_drop_objext='s/\.o$//;s/\.obj$//'
-      for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
-        gltests_libobjs="$gltests_libobjs $i.$ac_objext"
-        gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
-      done
-    fi
-    gltests_LIBOBJS=$gltests_libobjs
-
-    gltests_LTLIBOBJS=$gltests_ltlibobjs
-
-
-if test -z "${CPPUNIT_TRUE}" && test -z "${CPPUNIT_FALSE}"; then
-  as_fn_error $? "conditional \"CPPUNIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${CPPUNIT_TRUE}" && test -z "${CPPUNIT_FALSE}"; then
-  as_fn_error $? "conditional \"CPPUNIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${DAP4_DEFINED_TRUE}" && test -z "${DAP4_DEFINED_FALSE}"; then
-  as_fn_error $? "conditional \"DAP4_DEFINED\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${DAP4_DEFINED_TRUE}" && test -z "${DAP4_DEFINED_FALSE}"; then
-  as_fn_error $? "conditional \"DAP4_DEFINED\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${BUILD_DEVELOPER_TRUE}" && test -z "${BUILD_DEVELOPER_FALSE}"; then
-  as_fn_error $? "conditional \"BUILD_DEVELOPER\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${BUILD_DEVELOPER_TRUE}" && test -z "${BUILD_DEVELOPER_FALSE}"; then
-  as_fn_error $? "conditional \"BUILD_DEVELOPER\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_VALGRIND_TRUE}" && test -z "${USE_VALGRIND_FALSE}"; then
-  as_fn_error $? "conditional \"USE_VALGRIND\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by libdap $as_me 3.15.1, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <opendap-tech at opendap.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-libdap config.status 3.15.1
-configured by $0, generated by GNU Autoconf 2.69,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'
-
-
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-    "dods-datatypes-config.h") CONFIG_HEADERS="$CONFIG_HEADERS dods-datatypes-config.h" ;;
-    "xdr-datatypes-config.h") CONFIG_HEADERS="$CONFIG_HEADERS xdr-datatypes-config.h" ;;
-    "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;;
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "libdap.pc") CONFIG_FILES="$CONFIG_FILES libdap.pc" ;;
-    "libdapclient.pc") CONFIG_FILES="$CONFIG_FILES libdapclient.pc" ;;
-    "libdapserver.pc") CONFIG_FILES="$CONFIG_FILES libdapserver.pc" ;;
-    "main_page.doxygen") CONFIG_FILES="$CONFIG_FILES main_page.doxygen" ;;
-    "doxy.conf") CONFIG_FILES="$CONFIG_FILES doxy.conf" ;;
-    "abi_checker.xml") CONFIG_FILES="$CONFIG_FILES abi_checker.xml" ;;
-    "gl/Makefile") CONFIG_FILES="$CONFIG_FILES gl/Makefile" ;;
-    "d4_ce/Makefile") CONFIG_FILES="$CONFIG_FILES d4_ce/Makefile" ;;
-    "d4_function/Makefile") CONFIG_FILES="$CONFIG_FILES d4_function/Makefile" ;;
-    "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
-    "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;;
-    "unit-tests/Makefile") CONFIG_FILES="$CONFIG_FILES unit-tests/Makefile" ;;
-    "unit-tests/cache-testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES unit-tests/cache-testsuite/Makefile" ;;
-    "dap-config") CONFIG_FILES="$CONFIG_FILES dap-config" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp= ac_tmp=
-  trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_tt"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$ac_tmp/stdin"
-  case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-    } >"$ac_tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$ac_tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
-  fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$_am_arg" : 'X\(//\)[^/]' \| \
-	 X"$_am_arg" : 'X\(//\)$' \| \
-	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "tests/atconfig":C) cat >tests/atconfig <<ATEOF
-# Configurable variable values for building test suites.
-# Generated by $0.
-# Copyright (C) 2012 Free Software Foundation, Inc.
-
-# The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
-at_testdir='tests'
-abs_builddir='$ac_abs_builddir'
-at_srcdir='$ac_srcdir'
-abs_srcdir='$ac_abs_srcdir'
-at_top_srcdir='$ac_top_srcdir'
-abs_top_srcdir='$ac_abs_top_srcdir'
-at_top_build_prefix='$ac_top_build_prefix'
-abs_top_builddir='$ac_abs_top_builddir'
-
-# Backward compatibility with Autotest <= 2.59b:
-at_top_builddir=\$at_top_build_prefix
-
-AUTOTEST_PATH='.'
-
-SHELL=\${CONFIG_SHELL-'$SHELL'}
-ATEOF
- ;;
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Older Autoconf quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$mf" : 'X\(//\)[^/]' \| \
-	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$file" : 'X\(//\)[^/]' \| \
-	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-    "libtool":C)
-
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  if test x"$xsi_shell" = xyes; then
-  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\    # positional parameters, so assign one to ordinary parameter first.\
-\    func_stripname_result=${3}\
-\    func_stripname_result=${func_stripname_result#"${1}"}\
-\    func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\    func_split_long_opt_name=${1%%=*}\
-\    func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\    func_split_short_opt_arg=${1#??}\
-\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\    case ${1} in\
-\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\      *)    func_lo2o_result=${1} ;;\
-\    esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
-    func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
-    func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
-    func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
-    eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\    func_quote_for_eval "${2}"\
-\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-
-    cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-    "dap-config":F) chmod +x dap-config ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/configure.ac b/configure.ac
index b8037ab..81ce14f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.63)
 dnl Update version here and below at LIB_CURRENT, ..., if needed.
-AC_INIT(libdap, 3.15.1, opendap-tech at opendap.org)
+AC_INIT(libdap, 3.18.1, opendap-tech at opendap.org)
 AC_DEFINE(DAP_PROTOCOL_VERSION, ["4.0"], [Highest DAP version implemented?])
 AC_SUBST(DAP_PROTOCOL_VERSION)
 
@@ -31,13 +31,6 @@ AC_SUBST(PACKAGE_MAJOR_VERSION)
 AC_SUBST(PACKAGE_MINOR_VERSION)
 AC_SUBST(PACKAGE_SUBMINOR_VERSION)
 
-dnl Removed this; only the Array and Sequence classes ever have
-dnl constraints that need to be evaluated at run time (DAP4) or only
-dnl Sequences (DAP2). jhrg 9/4/13
-
-dnl AC_DEFINE(EVAL, 1, [Should all the classes run ConstraintEvaluator::eval()?])
-dnl AC_SUBST(EVAL)
-
 dnl flags for the compilers and linkers - set these before locating the
 dnl actual tools since some of the AC_PROG macros set these `flag variables'
 dnl to default values otherwise.
@@ -52,9 +45,9 @@ dnl increment AGE, set REVISION to 0.
 dnl Interfaces removed or changed (BAD, breaks upward compatibility):
 dnl ==> Increment CURRENT, set AGE and REVISION to 0.
 
-DAPLIB_CURRENT=20
-DAPLIB_AGE=3
-DAPLIB_REVISION=1
+DAPLIB_CURRENT=23
+DAPLIB_AGE=0
+DAPLIB_REVISION=0
 AC_SUBST(DAPLIB_CURRENT)
 AC_SUBST(DAPLIB_AGE)
 AC_SUBST(DAPLIB_REVISION)
@@ -64,7 +57,7 @@ AC_SUBST(LIBDAP_VERSION)
 
 CLIENTLIB_CURRENT=7
 CLIENTLIB_AGE=1
-CLIENTLIB_REVISION=1
+CLIENTLIB_REVISION=4
 AC_SUBST(CLIENTLIB_CURRENT)
 AC_SUBST(CLIENTLIB_AGE)
 AC_SUBST(CLIENTLIB_REVISION)
@@ -74,7 +67,7 @@ AC_SUBST(CLIENTLIB_VERSION)
 
 SERVERLIB_CURRENT=13
 SERVERLIB_AGE=6
-SERVERLIB_REVISION=1
+SERVERLIB_REVISION=4
 AC_SUBST(SERVERLIB_CURRENT)
 AC_SUBST(SERVERLIB_AGE)
 AC_SUBST(SERVERLIB_REVISION)
@@ -154,6 +147,12 @@ AC_HEADER_TIME
 AC_STRUCT_TM
 AC_C_VOLATILE
 AC_C_BIGENDIAN
+
+# This is used byt eh DMR tests which must choose the correct set of baselines
+# based on word order given that DAP4 uses 'reader make right' and thus the 
+# DAP4 data responses are different for different word order machines. jhrg 9/29/15
+AS_IF([test $ac_cv_c_bigendian = yes], [ac_word_order=big-endian], [ac_word_order=little-endian])
+AC_SUBST([ac_word_order])
         
 DODS_CHECK_SIZES
 
@@ -306,7 +305,13 @@ AC_SUBST([UUID_LIBS])
 
 AM_PATH_CPPUNIT(1.12.0,
 	[AM_CONDITIONAL([CPPUNIT], [true])],
-	[AM_CONDITIONAL([CPPUNIT], [false])])
+	[
+	    PKG_CHECK_MODULES(CPPUNIT, [cppunit >= 1.12.0],
+		[AM_CONDITIONAL([CPPUNIT], [true])],
+		[AM_CONDITIONAL([CPPUNIT], [false])]
+	    )
+	]
+)
 
 DODS_DEBUG_OPTION
 
diff --git a/coverity_model.cpp b/coverity_model.cpp
new file mode 100644
index 0000000..8df0c96
--- /dev/null
+++ b/coverity_model.cpp
@@ -0,0 +1,14 @@
+/*
+ * coverity_model.cpp
+ *
+ * This is a placeholder for 'functions', etc. that serve as
+ * models to Coverity. These models help suppress false positive
+ * responses by the static scanning tool.
+ *
+ *  Created on: Sep 18, 2015
+ *      Author: jimg
+ */
+
+
+
+
diff --git a/crc.h b/crc.h
index 8b32d8b..820b185 100644
--- a/crc.h
+++ b/crc.h
@@ -78,9 +78,23 @@ class Crc32
 public:
     typedef uint32_t checksum;
 
+    /**
+     * Initialize the Crc32 instance to 0.
+     */
     Crc32() { Reset(); }
+
     ~Crc32() throw() {}
+
+    /**
+     * Re-initialize/re-set the Crc32 instance to zero.
+     * @note The constructor uses this method to initialize a new instance.
+     */
     void Reset() { _crc = (uint32_t)~0; }
+
+    /**
+     * Add new data, incrementally computing the CRC 32 checksum. If
+     * length is zero, calling this has no effect on the checksum.
+     */
     void AddData(const uint8_t* pData, const uint32_t length)
     {
         uint8_t* pCur = (uint8_t*)pData;
@@ -89,6 +103,10 @@ public:
             _crc = ( _crc >> 8 ) ^ kCrc32Table[(_crc ^ *pCur) & 0xff];
     }
 
+    /**
+     * Get the current value of the CRC 32 checksum.
+     * @return An unsigned 32-bit checksum value.
+     */
     checksum GetCrc32() const { return ~_crc; }
 
 private:
diff --git a/cvsdate b/cvsdate
new file mode 100644
index 0000000..4716c61
--- /dev/null
+++ b/cvsdate
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+#
+# Read cvs log entries later than a given date and show which files have
+# changed. Should work with other -d type operations (earlier, etc.).
+# 10/22/99 jhrg
+# This program will actually print the log entries later, earlier or on a
+# given date. For example, to see the log entries after 2001/01/01 you would
+# use cvsdate '>2001/01/01' (note that quotes are needed since the
+# greaterthan and slash are special to the shell). Use a lessthan sign (<)
+# for logs from day prior to the date. 9/26/2001 jhrg
+
+if ($#ARGV == 1) {
+    open CVS, "cvs log -N -l -d \"$ARGV[0]\" -r$ARGV[1] |";
+} elsif ($#ARGV == 0) {
+    open CVS, "cvs log -N -l -d \"$ARGV[0]\" |";
+} else {
+    die("Usage: cvsdate <date> [-r<tag>]");
+}
+
+while (<CVS>) {
+    if (m/^$/) {
+	my ($file, $selected) = &check_revisions();
+	if ($selected > 0) {
+	    print "$file: Selected revisions: $selected\n";
+	    while (<CVS>) {
+		print;
+		if (m/^==*$/) {
+		    last;
+		}
+	    }
+	}
+    }
+}
+
+# Read the CVS log output stream starting after the row of equal signs.
+# Return the file name and number of selected revisions. If at EOF, return
+# "EOF" for the file name and 0 for the number of selected revisions.
+sub check_revisions() {
+    my ($d, $file, $selected);
+    while (<CVS>) {
+	if (m/Working file/) {
+	    ($d, $d, $file) = split;
+	}
+	elsif (m/total revisions/) {
+	    ($d, $d, $d, $d, $d, $selected) = split;
+	}
+	elsif (m/description/) {
+	    return ($file, $selected);
+	}
+    }
+    
+    return ("EOF", 0);
+}
diff --git a/d4_ce/D4ConstraintEvaluator.cc b/d4_ce/D4ConstraintEvaluator.cc
index c58f800..3949de3 100644
--- a/d4_ce/D4ConstraintEvaluator.cc
+++ b/d4_ce/D4ConstraintEvaluator.cc
@@ -31,12 +31,18 @@
 #include "D4CEScanner.h"
 #include "D4ConstraintEvaluator.h"
 #include "d4_ce_parser.tab.hh"
+
 #include "DMR.h"
 #include "D4Group.h"
 #include "D4Dimensions.h"
+#include "D4Maps.h"
 #include "BaseType.h"
 #include "Array.h"
 #include "Constructor.h"
+#include "D4Sequence.h"
+
+#include "D4RValue.h"
+#include "D4FilterClause.h"
 
 #include "parser.h"		// for get_ull()
 #include "debug.h"
@@ -59,52 +65,16 @@ bool D4ConstraintEvaluator::parse(const std::string &expr)
 	return parser.parse() == 0;
 }
 
-#if 0
-void
-D4ConstraintEvaluator::set_array_slices(const std::string &id, Array *a)
-{
-    // Test that the indexes and dimensions match in number
-    if (d_indexes.size() != a->dimensions())
-        throw Error("The index constraint for '" + id + "' does not match its rank.");
-
-    Array::Dim_iter d = a->dim_begin();
-    for (vector<index>::iterator i = d_indexes.begin(), e = d_indexes.end(); i != e; ++i) {
-        if ((*i).stride > (unsigned long long)a->dimension_stop(d, false))
-            throw Error("For '" + id + "', the index stride value is greater than the number of elements in the Array");
-        if (!(*i).rest && ((*i).stop) > (unsigned long long)a->dimension_stop(d, false))
-            throw Error("For '" + id + "', the index stop value is greater than the number of elements in the Array");
-
-        D4Dimension *dim = a->dimension_D4dim(d);
-
-        // In a DAP4 CE, specifying '[]' as an array dimension slice has two meanings.
-        // It can mean 'all the elements' of the dimension or 'apply the slicing inherited
-        // from the shared dimension'. The latter might be provide 'all the elements'
-        // but regardless, the Array object must record the CE correctly.
-
-        if (dim && (*i).empty) {
-            a->add_constraint(d, dim);
-        }
-        else {
-            a->add_constraint(d, (*i).start, (*i).stride, (*i).rest ? -1 : (*i).stop);
-        }
-
-        ++d;
-    }
-
-    d_indexes.clear();
-}
-#endif
-
 void
 D4ConstraintEvaluator::throw_not_found(const string &id, const string &ident)
 {
-    throw Error(d_expr + ": The variable " + id + " was not found in the dataset (" + ident + ").");
+    throw Error(no_such_variable, d_expr + ": The variable " + id + " was not found in the dataset (" + ident + ").");
 }
 
 void
 D4ConstraintEvaluator::throw_not_array(const string &id, const string &ident)
 {
-	throw Error(d_expr + ": The variable '" + id + "' is not an Array variable (" + ident + ").");
+	throw Error(no_such_variable, d_expr + ": The variable '" + id + "' is not an Array variable (" + ident + ").");
 }
 
 void
@@ -134,8 +104,8 @@ D4ConstraintEvaluator::search_for_and_mark_arrays(BaseType *btp)
 
 /**
  * When an identifier is used in a CE, is becomes part of the 'current projection,'
- * which means it is part of the set of variable to be sent back to the client. This
- * method sets a flag in the variable (send_p: send predicate) indicating that.
+ * which means it is part of the set of variables to be sent back to the client. This
+ * method sets a flag in the variable (send_p; pronounced 'send predicate') indicating that.
  *
  * @note This will check if the variable is an array and set it's slices accordingly
  * @param btp BaseType pointer to the variable. Must be non-null
@@ -172,18 +142,32 @@ D4ConstraintEvaluator::mark_variable(BaseType *btp)
     return btp;
 }
 
+static bool
+array_uses_shared_dimension(Array *map, D4Dimension *source_dim)
+{
+    for (Array::Dim_iter d = map->dim_begin(), e = map->dim_end(); d != e; ++d) {
+        if (source_dim->name() == (*d).name)
+            return true;
+    }
+
+    return false;
+}
+
 /**
  * Add an array to the current projection with slicing. Calling this method will result
  * in the array being returned with anonymous dimensions.
  *
- * @note If id is an array that has shared dimensions and uses '[]' where a shared dimension
+ * @note If btp is an array that has shared dimensions and uses '[]' where a shared dimension
  * is found and if that shared dimension has been sliced, then the slice is used as the array's
  * slice for that dimension (there must be an easier way to explain that...)
  *
- * @param id
+ * @param btp
  * @return The BaseType* to the Array variable; the send_p and slicing information is
  * set as a side effect.
  */
+
+// Note: If a Map is not part of the current projection, do not include mention of it
+// in the response DMR (CDMR)
 BaseType *
 D4ConstraintEvaluator::mark_array_variable(BaseType *btp)
 {
@@ -192,8 +176,8 @@ D4ConstraintEvaluator::mark_array_variable(BaseType *btp)
 	Array *a = static_cast<Array*>(btp);
 
 	// If an array appears in a CE without the slicing operators ([]) we still have to
-	// call set_user_by_projected_var(true) for all of it's sdims for them to appear in
-	// the CDMR.
+	// call add_constraint(...) for all of it's sdims for them to appear in
+	// the Constrained DMR.
 	if (d_indexes.empty()) {
 	    for (Array::Dim_iter d = a->dim_begin(), de = a->dim_end(); d != de; ++d) {
 	        D4Dimension *dim = a->dimension_D4dim(d);
@@ -205,14 +189,14 @@ D4ConstraintEvaluator::mark_array_variable(BaseType *btp)
     else {
         // Test that the indexes and dimensions match in number
         if (d_indexes.size() != a->dimensions())
-            throw Error("The index constraint for '" + btp->name() + "' does not match its rank.");
+            throw Error(malformed_expr, "The index constraint for '" + btp->name() + "' does not match its rank.");
 
         Array::Dim_iter d = a->dim_begin();
         for (vector<index>::iterator i = d_indexes.begin(), e = d_indexes.end(); i != e; ++i) {
             if ((*i).stride > (unsigned long long) (a->dimension_stop(d, false) - a->dimension_start(d, false)) + 1)
-                throw Error("For '" + btp->name() + "', the index stride value is greater than the number of elements in the Array");
+                throw Error(malformed_expr, "For '" + btp->name() + "', the index stride value is greater than the number of elements in the Array");
             if (!(*i).rest && ((*i).stop) > (unsigned long long) (a->dimension_stop(d, false) - a->dimension_start(d, false)) + 1)
-                throw Error("For '" + btp->name() + "', the index stop value is greater than the number of elements in the Array");
+                throw Error(malformed_expr, "For '" + btp->name() + "', the index stop value is greater than the number of elements in the Array");
 
             D4Dimension *dim = a->dimension_D4dim(d);
 
@@ -222,24 +206,59 @@ D4ConstraintEvaluator::mark_array_variable(BaseType *btp)
             // but regardless, the Array object must record the CE correctly.
 
             if (dim && (*i).empty) {
+                // This case corresponds to a CE that uses the '[]' notation for a
+                // particular dimension - meaning, use the Shared Dimension size for
+                // this dimension's 'slice'.
                 a->add_constraint(d, dim);  // calls set_used_by_projected_var(true) + more
             }
             else {
+                // This case corresponds to a 'local dimension slice' (See sections 8.6.2 and
+                // 8.7 of the spec as of 4/12/16). When a local dimension slice is used, drop
+                // the Map(s) that include that dimension. This enables people to constrain
+                // an Array when some of the Array's dimensions don't use Shared Dimensions
+                // but others do.
+
+                // First apply the constraint to the Array's dimension
                 a->add_constraint(d, (*i).start, (*i).stride, (*i).rest ? -1 : (*i).stop);
+
+                // Then, if the Array has Maps, scan those Maps for any that use dimensions
+                // that match the name of this particular dimension. If any such Maps are found
+                // remove them. This ensure that the Array can be constrained using the  'local
+                // dimension slice' without the constrained DMR containing references to Maps
+                // that don't exist (or are otherwise nonsensical).
+                //
+                // This code came about as a fix for problems discovered during testing of
+                // local dimension slices. See https://opendap.atlassian.net/browse/HYRAX-98
+                // jhrg 4/12/16
+                if (!a->maps()->empty()) {
+                    for(D4Maps::D4MapsIter m = a->maps()->map_begin(), e = a->maps()->map_end(); m != e; ++m) {
+                        if ((*m)->array() == 0)
+                            throw Error(malformed_expr, "An array with Maps was found, but one of the Maps was not defined correctly.");
+
+                        Array *map = const_cast<Array*>((*m)->array()); // Array lacks const iterator support
+                        if (array_uses_shared_dimension(map, dim)) {
+                            D4Map *map_to_be_removed = *m;
+                            a->maps()->remove_map(map_to_be_removed); // Invalidates the iterator
+                            delete map_to_be_removed;   // removed from container; delete
+                            break; // must leave the for loop because 'm' is now invalid
+                        }
+                    }
+                }
             }
 
             ++d;
         }
-
-        d_indexes.clear();
     }
 
+    d_indexes.clear();  // Clear the info so the next slice expression can be parsed.
+
 	return btp;
 }
 
 /**
  * Add an array to the current projection with slicing. Calling this method will result
  * in the array being returned with anonymous dimensions.
+ *
  * @param id
  * @return The BaseType* to the Array variable; the send_p and slicing information is
  * set as a side effect.
@@ -250,9 +269,9 @@ D4ConstraintEvaluator::slice_dimension(const std::string &id, const index &i)
     D4Dimension *dim = dmr()->root()->find_dim(id);
 
     if (i.stride > dim->size())
-        throw Error("For '" + id + "', the index stride value is greater than the size of the dimension");
+        throw Error(malformed_expr, "For '" + id + "', the index stride value is greater than the size of the dimension");
     if (!i.rest && (i.stop > dim->size() - 1))
-        throw Error("For '" + id + "', the index stop value is greater than the size of the dimension");
+        throw Error(malformed_expr, "For '" + id + "', the index stop value is greater than the size of the dimension");
 
     dim->set_constraint(i.start, i.stride, i.rest ? dim->size() - 1: i.stop);
 
@@ -262,32 +281,133 @@ D4ConstraintEvaluator::slice_dimension(const std::string &id, const index &i)
 D4ConstraintEvaluator::index
 D4ConstraintEvaluator::make_index(const std::string &i)
 {
-	unsigned long long v = get_ull(i.c_str());
-	return index(v, 1, v, false, false /*empty*/);
+	unsigned long long v = get_int64(i.c_str());
+	return index(v, 1, v, false, false /*empty*/, "");
 }
 
 D4ConstraintEvaluator::index
 D4ConstraintEvaluator::make_index(const std::string &i, const std::string &s, const std::string &e)
 {
-	return index(get_ull(i.c_str()), get_ull(s.c_str()), get_ull(e.c_str()), false, false /*empty*/);
+	return index(get_int64(i.c_str()), get_int64(s.c_str()), get_int64(e.c_str()), false, false /*empty*/, "");
 }
 
 D4ConstraintEvaluator::index
 D4ConstraintEvaluator::make_index(const std::string &i, unsigned long long s, const std::string &e)
 {
-	return index(get_ull(i.c_str()), s, get_ull(e.c_str()), false, false /*empty*/);
+	return index(get_int64(i.c_str()), s, get_int64(e.c_str()), false, false /*empty*/, "");
 }
 
 D4ConstraintEvaluator::index
 D4ConstraintEvaluator::make_index(const std::string &i, const std::string &s)
 {
-	return index(get_ull(i.c_str()), get_ull(s.c_str()), 0, true, false /*empty*/);
+	return index(get_int64(i.c_str()), get_int64(s.c_str()), 0, true, false /*empty*/, "");
 }
 
 D4ConstraintEvaluator::index
 D4ConstraintEvaluator::make_index(const std::string &i, unsigned long long s)
 {
-	return index(get_ull(i.c_str()), s, 0, true, false /*empty*/);
+    return index(get_uint64(i.c_str()), s, 0, true, false /*empty*/, "");
+}
+
+static string
+expr_msg(const std::string &op, const std::string &arg1, const std::string &arg2)
+{
+    return "(" + arg1 + " " + op + " " + arg2 + ").";
+}
+
+/**
+ * @brief Return the D4FilterClause constant for an operator
+ *
+ * Here are the strings returned by the parser:
+ *   GREATER ">"
+ *   LESS_EQUAL "<="
+ *   GREATER_EQUAL ">="
+ *   EQUAL "=="
+ *   NOT_EQUAL "!="
+ *   REGEX_MATCH "~="
+ *
+ *   LESS_BBOX "<<"
+ *   GREATER_BBOX ">>"
+ *
+ *   MASK "@="
+ *   ND "ND"
+ */
+static D4FilterClause::ops
+get_op_code(const std::string &op)
+{
+    DBGN(cerr << "Entering " << __PRETTY_FUNCTION__ << endl << "op: " << op << endl);
+
+    if (op == "<")
+        return D4FilterClause::less;
+    else if (op == ">")
+        return D4FilterClause::greater;
+    else if (op == "<=")
+        return D4FilterClause::less_equal;
+    else if (op == ">=")
+        return D4FilterClause::greater_equal;
+    else if (op == "==")
+        return D4FilterClause::equal;
+    else if (op == "!=")
+        return D4FilterClause::not_equal;
+    else if (op == "~=")
+        return D4FilterClause::match;
+    else
+        throw Error(malformed_expr, "The opertator '" + op + "' is not supported.");
+}
+
+/**
+ * @brief Add a D4FilterClause
+ *
+ * This method adds a filter clause to the D4Sequence that is on the top of the
+ * parser's stack. If there is not a D4Sequence on the stack, an exception is
+ * thrown. Similarly, if the filter clause parameters are not valid, then an
+ * exception is thrown.
+ *
+ * Filter clause rules: One of the parameters must be a variable in a D4Sequence
+ * and the other must be a constant. The operator must be one of the valid relops.
+ * Note that the D4FilterClause objects use the same numerical codes as the DAP2
+ * parser/evaluator.
+ *
+ * @note The parser will have pushed the Sequence onto the BaseType stack during
+ * the parse, so variables can be looked up using the top_basetype() (which
+ * must be a D4Sequence).
+ *
+ * @param arg1 The first argument; a D4Sequence variable or a constant.
+ * @param arg2 The second argument; a D4Sequence variable or a constant.
+ * @param op The infix relop
+ */
+void
+D4ConstraintEvaluator::add_filter_clause(const std::string &op, const std::string &arg1, const std::string &arg2)
+{
+    DBG(cerr << "Entering: " << __PRETTY_FUNCTION__  << endl);
+
+    // Check that there really is a D4Sequence associated with this filter clause.
+    D4Sequence *s = dynamic_cast<D4Sequence*>(top_basetype());
+    if (!s)
+        throw Error(malformed_expr,
+            "When a filter expression is used, it must be bound to a Sequence variable: " + expr_msg(op, arg1, arg2));
+
+    DBG(cerr << "s->name(): " << s->name() << endl);
+
+    // Check that arg1 and 2 are valid
+    BaseType *a1 = s->var(arg1);
+    BaseType *a2 = s->var(arg2);
+    DBG(cerr << "a1: " << a1 << ", a2: " << a2 << endl);
+
+    if (a1 && a2)
+        throw Error(malformed_expr,
+            "One of the arguments in a filter expression must be a constant: " + expr_msg(op, arg1, arg2));
+    if (!(a1 || a2))
+        throw Error(malformed_expr,
+            "One of the arguments in a filter expression must be a variable in a Sequence: " + expr_msg(op, arg1, arg2));
+
+    // Now we know a1 XOR a2 is true
+    if (a1) {
+        s->clauses().add_clause(new D4FilterClause(get_op_code(op), new D4RValue(a1), D4RValueFactory(arg2)));
+    }
+    else {
+        s->clauses().add_clause(new D4FilterClause(get_op_code(op), D4RValueFactory(arg1), new D4RValue(a2)));
+    }
 }
 
 // This method is called from the parser (see d4_ce_parser.yy, down in the code
@@ -296,7 +416,9 @@ D4ConstraintEvaluator::make_index(const std::string &i, unsigned long long s)
 void
 D4ConstraintEvaluator::error(const libdap::location &l, const std::string &m)
 {
-	std::cerr << l << ": " << m << std::endl;
+	ostringstream oss;
+	oss << l << ": " << m << ends;
+	throw Error(malformed_expr, oss.str());
 }
 
 } /* namespace libdap */
diff --git a/d4_ce/D4ConstraintEvaluator.h b/d4_ce/D4ConstraintEvaluator.h
index bc58e72..285b39f 100644
--- a/d4_ce/D4ConstraintEvaluator.h
+++ b/d4_ce/D4ConstraintEvaluator.h
@@ -37,6 +37,8 @@ class DMR;
 class BaseType;
 class Array;
 class D4Dimension;
+class D4FilterClause;
+class D4FilterClauseList;
 
 /**
  * Driver for the DAP4 Constraint Expression parser.
@@ -44,7 +46,7 @@ class D4Dimension;
 class D4ConstraintEvaluator {
 	struct index {
 		// start and stride are simple numbers; stop is either the stopping index or
-		// if to_end is true, is ignored and the subset runs to the end of the dimension
+		// if rest is true, is ignored and the subset runs to the end of the dimension
 		unsigned long long start, stride, stop;
 		// true if the slice indicates it does not contain a specific 'stop' value but
 		// goes to the end, whatever that value is.
@@ -53,14 +55,21 @@ class D4ConstraintEvaluator {
 		// dimension slice, depending on whether the corresponding shared dimension has
 		// been sliced.
 		bool empty;
+		// When a slice is applied to an Array with Maps, we need to know the name of
+		// each dimension. These names are then used to apply the slice to each of the
+		// Maps (Maps may have fewer dimensions than the Array, but the idea that a
+		// Map is a simple vector doesn't hold for DAP4, so the mapping between a slice's
+		// indexes and the set of Maps can be complex - use the names to make sure
+		// all cases are covered. The value of this field may be empty.
+		std::string dim_name;
 
 		// Added because the parser code needs it. Our code does not use this. jhrg 11/26/13
-		index(): start(0), stride(0), stop(0), rest(false), empty(false) {}
-		index(unsigned long long i, unsigned long long s, unsigned long long e, bool r, bool em)
-			: start(i), stride(s), stop(e), rest(r), empty(em) {}
+		index(): start(0), stride(0), stop(0), rest(false), empty(false), dim_name("") {}
+		index(unsigned long long i, unsigned long long s, unsigned long long e, bool r, bool em, const std::string &n)
+			: start(i), stride(s), stop(e), rest(r), empty(em), dim_name(n) {}
 	};
 
-	index make_index() { return index(0, 1, 0, true /*rest*/, true /*empty*/); }
+	index make_index() { return index(0, 1, 0, true /*rest*/, true /*empty*/, ""); }
 
 	index make_index(const std::string &is);
 
@@ -84,9 +93,7 @@ class D4ConstraintEvaluator {
 	// d_expr should be set by parse! Its value is used by the parser right before
 	// the actual parsing operation starts. jhrg 11/26/13
 	std::string *expression() { return &d_expr; }
-#if 0
-	void set_array_slices(const std::string &id, Array *a);
-#endif
+
 	void search_for_and_mark_arrays(BaseType *btp);
 	BaseType *mark_variable(BaseType *btp);
 	BaseType *mark_array_variable(BaseType *btp);
@@ -103,6 +110,9 @@ class D4ConstraintEvaluator {
 	void throw_not_found(const std::string &id, const std::string &ident);
 	void throw_not_array(const std::string &id, const std::string &ident);
 
+	// Build FilterClauseList for filter clauses for a Sequence
+	void add_filter_clause(const std::string &op, const std::string &arg1, const std::string &arg2);
+
 	friend class D4CEParser;
 
 public:
diff --git a/d4_ce/Makefile.in b/d4_ce/Makefile.in
deleted file mode 100644
index 715926d..0000000
--- a/d4_ce/Makefile.in
+++ /dev/null
@@ -1,1229 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at COMPILER_IS_GCC_TRUE@am__append_1 = -Wall -W -Wcast-align
- at BUILD_DEVELOPER_TRUE@am__append_2 = $(CXXFLAGS_DEBUG)
-subdir = d4_ce
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/conf/depcomp $(pkginclude_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h \
-	$(top_builddir)/dods-datatypes-config.h \
-	$(top_builddir)/xdr-datatypes-config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libd4_ce_parser_la_LIBADD =
-am_libd4_ce_parser_la_OBJECTS = libd4_ce_parser_la-lex.d4_ce.lo \
-	libd4_ce_parser_la-d4_ce_parser.tab.lo \
-	libd4_ce_parser_la-D4ConstraintEvaluator.lo
-libd4_ce_parser_la_OBJECTS = $(am_libd4_ce_parser_la_OBJECTS)
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-libd4_ce_parser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/conf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libd4_ce_parser_la_SOURCES)
-DIST_SOURCES = $(libd4_ce_parser_la_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(pkgincludedir)"
-HEADERS = $(pkginclude_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-AUTOMAKE_OPTIONS = foreign
-
-# Arrange to build with the backward compatibility mode enabled.
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/d4_ce -I$(srcdir) $(XML2_CFLAGS)
-AM_CXXFLAGS = $(am__append_1) $(am__append_2)
-
-# autoconf/automake includes support for yacc and lex so that the input
-# files for those compilers can be listed in a _SOURCES variable and the
-# build will just work. I had a fair amount of hassle getting that going
-# and then realized that cmake might undo all that effort. Also, the
-# changes are not local to this dir only since I'd have to edit the DAP2
-# grammars as well. I've left the edits in a comments although I'm not sure
-# it ever worked correctly. jhrg 10/21/14
-#
-# AM_YFLAGS= -d
-# AM_LFLAGS = -d
-CXXFLAGS_DEBUG = -g3 -O0 -Wall -W -Wcast-align
-TEST_COV_FLAGS = -ftest-coverage -fprofile-arcs
-noinst_LTLIBRARIES = libd4_ce_parser.la
-pkginclude_HEADERS = D4ConstraintEvaluator.h
-
-# This line forces make to build the grammar files first, which is
-# important because some of the cc files include the parser headers.
-BUILT_SOURCES = lex.d4_ce.cc d4_ce_parser.tab.hh d4_ce_parser.tab.cc \
-	stack.hh location.hh position.hh
-
-libd4_ce_parser_la_SOURCES = lex.d4_ce.cc d4_ce_parser.tab.cc	\
-	d4_ce_parser.tab.hh stack.hh location.hh position.hh \
-	D4ConstraintEvaluator.cc  D4ConstraintEvaluator.h D4CEScanner.h   
-
-libd4_ce_parser_la_CXXFLAGS = $(AM_CPPFLAGS)
-EXTRA_DIST = d4_ce_parser.yy d4_ce_scanner.ll
-DISTCLEANFILES = 
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign d4_ce/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign d4_ce/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLTLIBRARIES:
-	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-
-libd4_ce_parser.la: $(libd4_ce_parser_la_OBJECTS) $(libd4_ce_parser_la_DEPENDENCIES) $(EXTRA_libd4_ce_parser_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(libd4_ce_parser_la_LINK)  $(libd4_ce_parser_la_OBJECTS) $(libd4_ce_parser_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libd4_ce_parser_la-D4ConstraintEvaluator.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libd4_ce_parser_la-d4_ce_parser.tab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libd4_ce_parser_la-lex.d4_ce.Plo at am__quote@
-
-.cc.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-libd4_ce_parser_la-lex.d4_ce.lo: lex.d4_ce.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) -MT libd4_ce_parser_la-lex.d4_ce.lo -MD -MP -MF $(DEPDIR)/libd4_ce_parser_la-lex.d4_ce.Tpo -c -o libd4_ce_parser_la-lex.d4_ce.lo `test -f 'lex.d4_ce.cc' || echo '$(srcdir)/'`lex.d4_ce.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libd4_ce_parser_la-lex.d4_ce.Tpo $(DEPDIR)/libd4_ce_parser_la-lex.d4_ce.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='lex.d4_ce.cc' object='libd4_ce_parser_la-lex.d4_ce.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) -c -o libd4_ce_parser_la-lex.d4_ce.lo `test -f 'lex.d4_ce.cc' || echo '$(srcdir)/'`lex.d4_ce.cc
-
-libd4_ce_parser_la-d4_ce_parser.tab.lo: d4_ce_parser.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) -MT libd4_ce_parser_la-d4_ce_parser.tab.lo -MD -MP -MF $(DEPDIR)/libd4_ce_parser_la-d4_ce_parser.tab.Tpo -c -o libd4_ce_parser_la-d4_ce_parser.tab.lo `test -f 'd4_ce_parser.tab.cc' || echo '$(srcdir)/'`d4_ce_parser.tab.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libd4_ce_parser_la-d4_ce_parser.tab.Tpo $(DEPDIR)/libd4_ce_parser_la-d4_ce_parser.tab.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='d4_ce_parser.tab.cc' object='libd4_ce_parser_la-d4_ce_parser.tab.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) -c -o libd4_ce_parser_la-d4_ce_parser.tab.lo `test -f 'd4_ce_parser.tab.cc' || echo '$(srcdir)/'`d4_ce_parser.tab.cc
-
-libd4_ce_parser_la-D4ConstraintEvaluator.lo: D4ConstraintEvaluator.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) -MT libd4_ce_parser_la-D4ConstraintEvaluator.lo -MD -MP -MF $(DEPDIR)/libd4_ce_parser_la-D4ConstraintEvaluator.Tpo -c -o libd4_ce_parser_la-D4ConstraintEvaluator.lo `test -f 'D4ConstraintEvaluator.cc' || echo '$(srcdir)/'`D4ConstraintEvaluator.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libd4_ce_parser_la-D4ConstraintEvaluator.Tpo $(DEPDIR)/libd4_ce_parser_la-D4ConstraintEvaluator.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4ConstraintEvaluator.cc' object='libd4_ce_parser_la-D4ConstraintEvaluator.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libd4_ce_parser_la_CXXFLAGS) $(CXXFLAGS) -c -o libd4_ce_parser_la-D4ConstraintEvaluator.lo `test -f 'D4ConstraintEvaluator.cc' || echo '$(srcdir)/'`D4ConstraintEvaluator.cc
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-pkgincludeHEADERS: $(pkginclude_HEADERS)
-	@$(NORMAL_INSTALL)
-	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
-	done
-
-uninstall-pkgincludeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(pkgincludedir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-local \
-	clean-noinstLTLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pkgincludeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pkgincludeHEADERS
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-noinstLTLIBRARIES \
-	cscopelist-am ctags ctags-am dist-hook distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkgincludeHEADERS \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am \
-	uninstall-pkgincludeHEADERS
-
-
-# We need this to make sure that parallel jobs don't fail for 
-# lack of stack.hh, ... because those are built by bison in one
-# shot.
-.NOTPARALLEL:
-
-clean-local:
-	-rm d4_ce_parser.tab.cc	d4_ce_parser.tab.hh lex.d4_ce.cc stack.hh \
-		location.hh position.hh
-
-%.tab.cc %.tab.hh: %.yy
-	$(YACC) $(YFLAGS) $<
-
-#d4_ce_parser.tab.cc d4_ce_parser.tab.hh stack.hh location.hh position.hh: d4_ce_parser.yy
-#	$(YACC) $(YFLAGS) $<
-
-# For now there are two min versions of flex's FlexLexer.h; one that
-# defines the LexerInput() method returning int and one returning size_t.
-# Including the gnerated lex.*.cc code causes a compilation error when
-# the version on the packaging machine differs from the version on the
-# building machine. For now I just remove the generated file. However, 
-# if a fix can be found, then we can remove the flex requirement from
-# a simple (tar.gz) source build. jhrg 7.9.15
-dist-hook:
-	rm $(distdir)/lex.d4_ce.cc
-
-lex.d4_ce.cc: d4_ce_scanner.ll d4_ce_parser.tab.cc d4_ce_parser.tab.hh
-	$(LEX) $(LFLAGS) $<
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/d4_ce/d4_ce_parser.tab.cc b/d4_ce/d4_ce_parser.tab.cc
deleted file mode 100644
index 375dccc..0000000
--- a/d4_ce/d4_ce_parser.tab.cc
+++ /dev/null
@@ -1,1836 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Skeleton implementation for Bison LALR(1) parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-
-// First part of user declarations.
-
-#line 37 "d4_ce_parser.tab.cc" // lalr1.cc:399
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-#include "d4_ce_parser.tab.hh"
-
-// User implementation prologue.
-
-#line 51 "d4_ce_parser.tab.cc" // lalr1.cc:407
-// Unqualified %code blocks.
-#line 74 "d4_ce_parser.yy" // lalr1.cc:408
-
-   #include <iostream>
-   #include <cstdlib>
-   #include <fstream>
-   
-   #include "BaseType.h"
-   #include "DMR.h"
-   #include "D4Group.h"
-
-   /* include for all driver functions */
-   #include "D4ConstraintEvaluator.h"
-
-   /* this is silly, but I can't figure out a way around */
-   static int yylex(libdap::D4CEParser::semantic_type *yylval,
-                    libdap::location *loc,
-                    libdap::D4CEScanner  &scanner,
-                    libdap::D4ConstraintEvaluator   &driver);
-
-
-#line 73 "d4_ce_parser.tab.cc" // lalr1.cc:408
-
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE.
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(msgid) msgid
-# endif
-#endif
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-# ifndef YYLLOC_DEFAULT
-#  define YYLLOC_DEFAULT(Current, Rhs, N)                               \
-    do                                                                  \
-      if (N)                                                            \
-        {                                                               \
-          (Current).begin  = YYRHSLOC (Rhs, 1).begin;                   \
-          (Current).end    = YYRHSLOC (Rhs, N).end;                     \
-        }                                                               \
-      else                                                              \
-        {                                                               \
-          (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;      \
-        }                                                               \
-    while (/*CONSTCOND*/ false)
-# endif
-
-
-// Suppress unused-variable warnings by "using" E.
-#define YYUSE(E) ((void) (E))
-
-// Enable debugging if requested.
-#if YYDEBUG
-
-// A pseudo ostream that takes yydebug_ into account.
-# define YYCDEBUG if (yydebug_) (*yycdebug_)
-
-# define YY_SYMBOL_PRINT(Title, Symbol)         \
-  do {                                          \
-    if (yydebug_)                               \
-    {                                           \
-      *yycdebug_ << Title << ' ';               \
-      yy_print_ (*yycdebug_, Symbol);           \
-      *yycdebug_ << std::endl;                  \
-    }                                           \
-  } while (false)
-
-# define YY_REDUCE_PRINT(Rule)          \
-  do {                                  \
-    if (yydebug_)                       \
-      yy_reduce_print_ (Rule);          \
-  } while (false)
-
-# define YY_STACK_PRINT()               \
-  do {                                  \
-    if (yydebug_)                       \
-      yystack_print_ ();                \
-  } while (false)
-
-#else // !YYDEBUG
-
-# define YYCDEBUG if (false) std::cerr
-# define YY_SYMBOL_PRINT(Title, Symbol)  YYUSE(Symbol)
-# define YY_REDUCE_PRINT(Rule)           static_cast<void>(0)
-# define YY_STACK_PRINT()                static_cast<void>(0)
-
-#endif // !YYDEBUG
-
-#define yyerrok         (yyerrstatus_ = 0)
-#define yyclearin       (yyempty = true)
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-#define YYRECOVERING()  (!!yyerrstatus_)
-
-#line 35 "d4_ce_parser.yy" // lalr1.cc:474
-namespace libdap {
-#line 159 "d4_ce_parser.tab.cc" // lalr1.cc:474
-
-  /* Return YYSTR after stripping away unnecessary quotes and
-     backslashes, so that it's suitable for yyerror.  The heuristic is
-     that double-quoting is unnecessary unless the string contains an
-     apostrophe, a comma, or backslash (other than backslash-backslash).
-     YYSTR is taken from yytname.  */
-  std::string
-  D4CEParser::yytnamerr_ (const char *yystr)
-  {
-    if (*yystr == '"')
-      {
-        std::string yyr = "";
-        char const *yyp = yystr;
-
-        for (;;)
-          switch (*++yyp)
-            {
-            case '\'':
-            case ',':
-              goto do_not_strip_quotes;
-
-            case '\\':
-              if (*++yyp != '\\')
-                goto do_not_strip_quotes;
-              // Fall through.
-            default:
-              yyr += *yyp;
-              break;
-
-            case '"':
-              return yyr;
-            }
-      do_not_strip_quotes: ;
-      }
-
-    return yystr;
-  }
-
-
-  /// Build a parser object.
-  D4CEParser::D4CEParser (D4CEScanner  &scanner_yyarg, D4ConstraintEvaluator  &driver_yyarg)
-    :
-#if YYDEBUG
-      yydebug_ (false),
-      yycdebug_ (&std::cerr),
-#endif
-      scanner (scanner_yyarg),
-      driver (driver_yyarg)
-  {}
-
-  D4CEParser::~D4CEParser ()
-  {}
-
-
-  /*---------------.
-  | Symbol types.  |
-  `---------------*/
-
-  inline
-  D4CEParser::syntax_error::syntax_error (const location_type& l, const std::string& m)
-    : std::runtime_error (m)
-    , location (l)
-  {}
-
-  // basic_symbol.
-  template <typename Base>
-  inline
-  D4CEParser::basic_symbol<Base>::basic_symbol ()
-    : value ()
-  {}
-
-  template <typename Base>
-  inline
-  D4CEParser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
-    : Base (other)
-    , value ()
-    , location (other.location)
-  {
-      switch (other.type_get ())
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        value.copy< bool > (other.value);
-        break;
-
-      case 38: // index
-        value.copy< libdap::D4ConstraintEvaluator::index > (other.value);
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        value.copy< std::string > (other.value);
-        break;
-
-      default:
-        break;
-    }
-
-  }
-
-
-  template <typename Base>
-  inline
-  D4CEParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l)
-    : Base (t)
-    , value ()
-    , location (l)
-  {
-    (void) v;
-      switch (this->type_get ())
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        value.copy< bool > (v);
-        break;
-
-      case 38: // index
-        value.copy< libdap::D4ConstraintEvaluator::index > (v);
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        value.copy< std::string > (v);
-        break;
-
-      default:
-        break;
-    }
-}
-
-
-  // Implementation of basic_symbol constructor for each type.
-
-  template <typename Base>
-  D4CEParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l)
-    : Base (t)
-    , value ()
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4CEParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4CEParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const libdap::D4ConstraintEvaluator::index v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4CEParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-
-  template <typename Base>
-  inline
-  D4CEParser::basic_symbol<Base>::~basic_symbol ()
-  {
-    // User destructor.
-    symbol_number_type yytype = this->type_get ();
-    switch (yytype)
-    {
-   default:
-      break;
-    }
-
-    // Type destructor.
-    switch (yytype)
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        value.template destroy< bool > ();
-        break;
-
-      case 38: // index
-        value.template destroy< libdap::D4ConstraintEvaluator::index > ();
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        value.template destroy< std::string > ();
-        break;
-
-      default:
-        break;
-    }
-
-  }
-
-  template <typename Base>
-  inline
-  void
-  D4CEParser::basic_symbol<Base>::move (basic_symbol& s)
-  {
-    super_type::move(s);
-      switch (this->type_get ())
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        value.move< bool > (s.value);
-        break;
-
-      case 38: // index
-        value.move< libdap::D4ConstraintEvaluator::index > (s.value);
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        value.move< std::string > (s.value);
-        break;
-
-      default:
-        break;
-    }
-
-    location = s.location;
-  }
-
-  // by_type.
-  inline
-  D4CEParser::by_type::by_type ()
-     : type (empty)
-  {}
-
-  inline
-  D4CEParser::by_type::by_type (const by_type& other)
-    : type (other.type)
-  {}
-
-  inline
-  D4CEParser::by_type::by_type (token_type t)
-    : type (yytranslate_ (t))
-  {}
-
-  inline
-  void
-  D4CEParser::by_type::move (by_type& that)
-  {
-    type = that.type;
-    that.type = empty;
-  }
-
-  inline
-  int
-  D4CEParser::by_type::type_get () const
-  {
-    return type;
-  }
-  // Implementation of make_symbol for each symbol type.
-  D4CEParser::symbol_type
-  D4CEParser::make_END (const location_type& l)
-  {
-    return symbol_type (token::END, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_WORD (const std::string& v, const location_type& l)
-  {
-    return symbol_type (token::WORD, v, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_STRING (const std::string& v, const location_type& l)
-  {
-    return symbol_type (token::STRING, v, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_SEMICOLON (const location_type& l)
-  {
-    return symbol_type (token::SEMICOLON, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_PIPE (const location_type& l)
-  {
-    return symbol_type (token::PIPE, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_LBRACKET (const location_type& l)
-  {
-    return symbol_type (token::LBRACKET, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_RBRACKET (const location_type& l)
-  {
-    return symbol_type (token::RBRACKET, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_COLON (const location_type& l)
-  {
-    return symbol_type (token::COLON, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_LBRACE (const location_type& l)
-  {
-    return symbol_type (token::LBRACE, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_RBRACE (const location_type& l)
-  {
-    return symbol_type (token::RBRACE, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_COMMA (const location_type& l)
-  {
-    return symbol_type (token::COMMA, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_ND (const location_type& l)
-  {
-    return symbol_type (token::ND, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_ASSIGN (const location_type& l)
-  {
-    return symbol_type (token::ASSIGN, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_LESS (const location_type& l)
-  {
-    return symbol_type (token::LESS, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_GREATER (const location_type& l)
-  {
-    return symbol_type (token::GREATER, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_LESS_EQUAL (const location_type& l)
-  {
-    return symbol_type (token::LESS_EQUAL, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_GREATER_EQUAL (const location_type& l)
-  {
-    return symbol_type (token::GREATER_EQUAL, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_EQUAL (const location_type& l)
-  {
-    return symbol_type (token::EQUAL, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_NOT_EQUAL (const location_type& l)
-  {
-    return symbol_type (token::NOT_EQUAL, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_REGEX_MATCH (const location_type& l)
-  {
-    return symbol_type (token::REGEX_MATCH, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_LESS_BBOX (const location_type& l)
-  {
-    return symbol_type (token::LESS_BBOX, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_GREATER_BBOX (const location_type& l)
-  {
-    return symbol_type (token::GREATER_BBOX, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_MASK (const location_type& l)
-  {
-    return symbol_type (token::MASK, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_GROUP_SEP (const location_type& l)
-  {
-    return symbol_type (token::GROUP_SEP, l);
-  }
-
-  D4CEParser::symbol_type
-  D4CEParser::make_PATH_SEP (const location_type& l)
-  {
-    return symbol_type (token::PATH_SEP, l);
-  }
-
-
-
-  // by_state.
-  inline
-  D4CEParser::by_state::by_state ()
-    : state (empty)
-  {}
-
-  inline
-  D4CEParser::by_state::by_state (const by_state& other)
-    : state (other.state)
-  {}
-
-  inline
-  void
-  D4CEParser::by_state::move (by_state& that)
-  {
-    state = that.state;
-    that.state = empty;
-  }
-
-  inline
-  D4CEParser::by_state::by_state (state_type s)
-    : state (s)
-  {}
-
-  inline
-  D4CEParser::symbol_number_type
-  D4CEParser::by_state::type_get () const
-  {
-    return state == empty ? 0 : yystos_[state];
-  }
-
-  inline
-  D4CEParser::stack_symbol_type::stack_symbol_type ()
-  {}
-
-
-  inline
-  D4CEParser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
-    : super_type (s, that.location)
-  {
-      switch (that.type_get ())
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        value.move< bool > (that.value);
-        break;
-
-      case 38: // index
-        value.move< libdap::D4ConstraintEvaluator::index > (that.value);
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        value.move< std::string > (that.value);
-        break;
-
-      default:
-        break;
-    }
-
-    // that is emptied.
-    that.type = empty;
-  }
-
-  inline
-  D4CEParser::stack_symbol_type&
-  D4CEParser::stack_symbol_type::operator= (const stack_symbol_type& that)
-  {
-    state = that.state;
-      switch (that.type_get ())
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        value.copy< bool > (that.value);
-        break;
-
-      case 38: // index
-        value.copy< libdap::D4ConstraintEvaluator::index > (that.value);
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        value.copy< std::string > (that.value);
-        break;
-
-      default:
-        break;
-    }
-
-    location = that.location;
-    return *this;
-  }
-
-
-  template <typename Base>
-  inline
-  void
-  D4CEParser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
-  {
-    if (yymsg)
-      YY_SYMBOL_PRINT (yymsg, yysym);
-  }
-
-#if YYDEBUG
-  template <typename Base>
-  void
-  D4CEParser::yy_print_ (std::ostream& yyo,
-                                     const basic_symbol<Base>& yysym) const
-  {
-    std::ostream& yyoutput = yyo;
-    YYUSE (yyoutput);
-    symbol_number_type yytype = yysym.type_get ();
-    yyo << (yytype < yyntokens_ ? "token" : "nterm")
-        << ' ' << yytname_[yytype] << " ("
-        << yysym.location << ": ";
-    YYUSE (yytype);
-    yyo << ')';
-  }
-#endif
-
-  inline
-  void
-  D4CEParser::yypush_ (const char* m, state_type s, symbol_type& sym)
-  {
-    stack_symbol_type t (s, sym);
-    yypush_ (m, t);
-  }
-
-  inline
-  void
-  D4CEParser::yypush_ (const char* m, stack_symbol_type& s)
-  {
-    if (m)
-      YY_SYMBOL_PRINT (m, s);
-    yystack_.push (s);
-  }
-
-  inline
-  void
-  D4CEParser::yypop_ (unsigned int n)
-  {
-    yystack_.pop (n);
-  }
-
-#if YYDEBUG
-  std::ostream&
-  D4CEParser::debug_stream () const
-  {
-    return *yycdebug_;
-  }
-
-  void
-  D4CEParser::set_debug_stream (std::ostream& o)
-  {
-    yycdebug_ = &o;
-  }
-
-
-  D4CEParser::debug_level_type
-  D4CEParser::debug_level () const
-  {
-    return yydebug_;
-  }
-
-  void
-  D4CEParser::set_debug_level (debug_level_type l)
-  {
-    yydebug_ = l;
-  }
-#endif // YYDEBUG
-
-  inline D4CEParser::state_type
-  D4CEParser::yy_lr_goto_state_ (state_type yystate, int yylhs)
-  {
-    int yyr = yypgoto_[yylhs - yyntokens_] + yystate;
-    if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
-      return yytable_[yyr];
-    else
-      return yydefgoto_[yylhs - yyntokens_];
-  }
-
-  inline bool
-  D4CEParser::yy_pact_value_is_default_ (int yyvalue)
-  {
-    return yyvalue == yypact_ninf_;
-  }
-
-  inline bool
-  D4CEParser::yy_table_value_is_error_ (int yyvalue)
-  {
-    return yyvalue == yytable_ninf_;
-  }
-
-  int
-  D4CEParser::parse ()
-  {
-    /// Whether yyla contains a lookahead.
-    bool yyempty = true;
-
-    // State.
-    int yyn;
-    int yylen = 0;
-
-    // Error handling.
-    int yynerrs_ = 0;
-    int yyerrstatus_ = 0;
-
-    /// The lookahead symbol.
-    symbol_type yyla;
-
-    /// The locations where the error started and ended.
-    stack_symbol_type yyerror_range[3];
-
-    /// $$ and @$.
-    stack_symbol_type yylhs;
-
-    /// The return value of parse ().
-    int yyresult;
-
-    // FIXME: This shoud be completely indented.  It is not yet to
-    // avoid gratuitous conflicts when merging into the master branch.
-    try
-      {
-    YYCDEBUG << "Starting parse" << std::endl;
-
-
-    // User initialization code.
-    #line 66 "d4_ce_parser.yy" // lalr1.cc:727
-{
-    // Initialize the initial location. This is printed when the parser builds
-    // its own error messages - when the parse fails as opposed to when the 
-    // CE names a missing variables, ...
-
-    yyla.location.initialize (driver.expression());
-}
-
-#line 871 "d4_ce_parser.tab.cc" // lalr1.cc:727
-
-    /* Initialize the stack.  The initial state will be set in
-       yynewstate, since the latter expects the semantical and the
-       location values to have been already stored, initialize these
-       stacks with a primary value.  */
-    yystack_.clear ();
-    yypush_ (YY_NULLPTR, 0, yyla);
-
-    // A new symbol was pushed on the stack.
-  yynewstate:
-    YYCDEBUG << "Entering state " << yystack_[0].state << std::endl;
-
-    // Accept?
-    if (yystack_[0].state == yyfinal_)
-      goto yyacceptlab;
-
-    goto yybackup;
-
-    // Backup.
-  yybackup:
-
-    // Try to take a decision without lookahead.
-    yyn = yypact_[yystack_[0].state];
-    if (yy_pact_value_is_default_ (yyn))
-      goto yydefault;
-
-    // Read a lookahead token.
-    if (yyempty)
-      {
-        YYCDEBUG << "Reading a token: ";
-        try
-          {
-            yyla.type = yytranslate_ (yylex (&yyla.value, &yyla.location, scanner, driver));
-          }
-        catch (const syntax_error& yyexc)
-          {
-            error (yyexc);
-            goto yyerrlab1;
-          }
-        yyempty = false;
-      }
-    YY_SYMBOL_PRINT ("Next token is", yyla);
-
-    /* If the proper action on seeing token YYLA.TYPE is to reduce or
-       to detect an error, take that action.  */
-    yyn += yyla.type_get ();
-    if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
-      goto yydefault;
-
-    // Reduce or error.
-    yyn = yytable_[yyn];
-    if (yyn <= 0)
-      {
-        if (yy_table_value_is_error_ (yyn))
-          goto yyerrlab;
-        yyn = -yyn;
-        goto yyreduce;
-      }
-
-    // Discard the token being shifted.
-    yyempty = true;
-
-    // Count tokens shifted since error; after three, turn off error status.
-    if (yyerrstatus_)
-      --yyerrstatus_;
-
-    // Shift the lookahead token.
-    yypush_ ("Shifting", yyn, yyla);
-    goto yynewstate;
-
-  /*-----------------------------------------------------------.
-  | yydefault -- do the default action for the current state.  |
-  `-----------------------------------------------------------*/
-  yydefault:
-    yyn = yydefact_[yystack_[0].state];
-    if (yyn == 0)
-      goto yyerrlab;
-    goto yyreduce;
-
-  /*-----------------------------.
-  | yyreduce -- Do a reduction.  |
-  `-----------------------------*/
-  yyreduce:
-    yylen = yyr2_[yyn];
-    yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]);
-    /* Variants are always initialized to an empty instance of the
-       correct type. The default $$=$1 action is NOT applied when using
-       variants.  */
-      switch (yyr1_[yyn])
-    {
-      case 29: // dimensions
-      case 30: // dimension
-      case 31: // clauses
-      case 32: // clause
-      case 33: // subset
-      case 36: // indexes
-      case 39: // fields
-      case 40: // filter
-      case 41: // predicate
-        yylhs.value.build< bool > ();
-        break;
-
-      case 38: // index
-        yylhs.value.build< libdap::D4ConstraintEvaluator::index > ();
-        break;
-
-      case 3: // "word"
-      case 4: // "string"
-      case 43: // id
-      case 44: // group
-      case 45: // path
-      case 46: // name
-        yylhs.value.build< std::string > ();
-        break;
-
-      default:
-        break;
-    }
-
-
-    // Compute the default @$.
-    {
-      slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
-      YYLLOC_DEFAULT (yylhs.location, slice, yylen);
-    }
-
-    // Perform the reduction.
-    YY_REDUCE_PRINT (yyn);
-    try
-      {
-        switch (yyn)
-          {
-  case 2:
-#line 141 "d4_ce_parser.yy" // lalr1.cc:847
-    { driver.set_result(yystack_[0].value.as< bool > ()); }
-#line 1007 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 3:
-#line 142 "d4_ce_parser.yy" // lalr1.cc:847
-    { driver.set_result(yystack_[2].value.as< bool > () && yystack_[0].value.as< bool > ()); }
-#line 1013 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 4:
-#line 145 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[0].value.as< bool > (); }
-#line 1019 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 5:
-#line 146 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[2].value.as< bool > () && yystack_[0].value.as< bool > (); }
-#line 1025 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 6:
-#line 150 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< bool > () = driver.slice_dimension(yystack_[2].value.as< std::string > (), yystack_[0].value.as< libdap::D4ConstraintEvaluator::index > ());
-}
-#line 1033 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 7:
-#line 155 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[0].value.as< bool > (); }
-#line 1039 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 8:
-#line 156 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[2].value.as< bool > () && yystack_[0].value.as< bool > (); }
-#line 1045 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 9:
-#line 159 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[0].value.as< bool > (); }
-#line 1051 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 10:
-#line 160 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[2].value.as< bool > () && yystack_[0].value.as< bool > (); }
-#line 1057 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 11:
-#line 165 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    BaseType *btp = 0;
-    if (driver.top_basetype()) {
-        btp = driver.top_basetype()->var(yystack_[0].value.as< std::string > ());
-    }
-    else {
-        btp = driver.dmr()->root()->find_var(yystack_[0].value.as< std::string > ());
-    }
-    
-    if (!btp)
-        driver.throw_not_found(yystack_[0].value.as< std::string > (), "id");
-
-#if 0    
-    if (btp->type() == dods_array_c)
-        yylhs.value.as< bool > () = driver.mark_variable(btp) && driver.mark_array_variable(btp);   // handle array w/o slice ops
-    else
-#endif
-
-    yylhs.value.as< bool > () = driver.mark_variable(btp);
-}
-#line 1082 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 12:
-#line 187 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    BaseType *btp = 0;
-    if (driver.top_basetype()) {
-        btp = driver.top_basetype()->var(yystack_[1].value.as< std::string > ());
-    }
-    else {
-        btp = driver.dmr()->root()->find_var(yystack_[1].value.as< std::string > ());
-    }
-    
-    if (!btp)
-        driver.throw_not_found(yystack_[1].value.as< std::string > (), "id indexes");
-        
-    if (btp->type() != dods_array_c)
-        driver.throw_not_array(yystack_[1].value.as< std::string > (), "id indexes");
-        
-    yylhs.value.as< bool > () = driver.mark_variable(btp); //  && driver.mark_array_variable(btp);
-}
-#line 1104 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 13:
-#line 206 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    BaseType *btp = 0;
-    if (driver.top_basetype()) {
-        btp = driver.top_basetype()->var(yystack_[0].value.as< std::string > ());
-    }
-    else {
-        btp = driver.dmr()->root()->find_var(yystack_[0].value.as< std::string > ());
-    }
-
-    if (!btp)
-        driver.throw_not_found(yystack_[0].value.as< std::string > (), "id fields");
-    
-    if (btp->type() == dods_array_c) {
-        if (btp->var() && !btp->var()->is_constructor_type())
-            throw Error("The variable " + yystack_[0].value.as< std::string > () + " must be a Structure or Sequence to be used with {}.");
-            
-        // This call also tests the btp to make sure it's an array
-        driver.mark_array_variable(btp);
-    }
-    else {
-        // Don't mark the variable here because only some fields are to be sent and those
-        // will be marked when the fields are parsed
-        if (!btp->is_constructor_type())
-            throw Error("The variable " + yystack_[0].value.as< std::string > () + " must be a Structure or Sequence to be used with {}.");
-    }
-    
-    // push the basetype (a ctor or array of ctor) on the stack so that it is
-    // accessible while the fields are being parsed
-    driver.push_basetype(btp);
-}
-#line 1139 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 14:
-#line 237 "d4_ce_parser.yy" // lalr1.cc:847
-    { 
-    driver.pop_basetype(); 
-    yylhs.value.as< bool > () = true; 
-}
-#line 1148 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 15:
-#line 243 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    BaseType *btp = 0;
-    if (driver.top_basetype()) {
-        btp = driver.top_basetype()->var(yystack_[1].value.as< std::string > ());
-    }
-    else {
-        btp = driver.dmr()->root()->find_var(yystack_[1].value.as< std::string > ());
-    }
-
-    if (!btp)
-        driver.throw_not_found(yystack_[1].value.as< std::string > (), "id indexes fields");
-    
-    if (btp->type() != dods_array_c)
-        driver.throw_not_array(yystack_[1].value.as< std::string > (), "id indexes fields");
-
-    // This call also tests the btp to make sure it's an array
-    driver.mark_array_variable(btp);
-    
-    if (!btp->var()->is_constructor_type())
-        throw Error("The variable " + yystack_[1].value.as< std::string > () + " must be a Structure or Sequence to be used with {}.");
-      
-    driver.push_basetype(btp->var());       
-}
-#line 1176 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 16:
-#line 267 "d4_ce_parser.yy" // lalr1.cc:847
-    { 
-    driver.pop_basetype();
-    yylhs.value.as< bool > () = true; 
-}
-#line 1185 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 17:
-#line 279 "d4_ce_parser.yy" // lalr1.cc:847
-    { 
-    driver.push_index(yystack_[0].value.as< libdap::D4ConstraintEvaluator::index > ()); 
-    yylhs.value.as< bool > () = true; 
-}
-#line 1194 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 18:
-#line 283 "d4_ce_parser.yy" // lalr1.cc:847
-    { driver.push_index(yystack_[0].value.as< libdap::D4ConstraintEvaluator::index > ()); }
-#line 1200 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 19:
-#line 283 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[0].value.as< bool > (); }
-#line 1206 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 20:
-#line 286 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< libdap::D4ConstraintEvaluator::index > () = driver.make_index(); }
-#line 1212 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 21:
-#line 287 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< libdap::D4ConstraintEvaluator::index > () = driver.make_index(yystack_[1].value.as< std::string > ()); }
-#line 1218 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 22:
-#line 288 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< libdap::D4ConstraintEvaluator::index > () = driver.make_index(yystack_[3].value.as< std::string > (), 1, yystack_[1].value.as< std::string > ()); }
-#line 1224 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 23:
-#line 289 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< libdap::D4ConstraintEvaluator::index > () = driver.make_index(yystack_[5].value.as< std::string > (), yystack_[3].value.as< std::string > (), yystack_[1].value.as< std::string > ()); }
-#line 1230 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 24:
-#line 290 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< libdap::D4ConstraintEvaluator::index > () = driver.make_index(yystack_[2].value.as< std::string > (), 1); }
-#line 1236 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 25:
-#line 291 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< libdap::D4ConstraintEvaluator::index > () = driver.make_index(yystack_[4].value.as< std::string > (), yystack_[2].value.as< std::string > ()); }
-#line 1242 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 26:
-#line 294 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = yystack_[1].value.as< bool > (); }
-#line 1248 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 29:
-#line 311 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = true; }
-#line 1254 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 30:
-#line 312 "d4_ce_parser.yy" // lalr1.cc:847
-    { yylhs.value.as< bool > () = true; }
-#line 1260 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 42:
-#line 334 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > ();
-}
-#line 1268 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 43:
-#line 338 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ().append("/");
-    yylhs.value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-}
-#line 1277 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 44:
-#line 343 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::string > ().append("/");
-    yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-    yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
-}
-#line 1287 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 45:
-#line 351 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ().append("/");
-    yylhs.value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-}
-#line 1296 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 46:
-#line 356 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::string > ().append(".");
-    yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-    yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
-}
-#line 1306 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 47:
-#line 364 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > ();
-}
-#line 1314 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 48:
-#line 368 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::string > ().append(".");
-    yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-    yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
-}
-#line 1324 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 49:
-#line 379 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ()=yystack_[0].value.as< std::string > ();
-}
-#line 1332 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 50:
-#line 383 "d4_ce_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ()=yystack_[0].value.as< std::string > ();
-}
-#line 1340 "d4_ce_parser.tab.cc" // lalr1.cc:847
-    break;
-
-
-#line 1344 "d4_ce_parser.tab.cc" // lalr1.cc:847
-          default:
-            break;
-          }
-      }
-    catch (const syntax_error& yyexc)
-      {
-        error (yyexc);
-        YYERROR;
-      }
-    YY_SYMBOL_PRINT ("-> $$ =", yylhs);
-    yypop_ (yylen);
-    yylen = 0;
-    YY_STACK_PRINT ();
-
-    // Shift the result of the reduction.
-    yypush_ (YY_NULLPTR, yylhs);
-    goto yynewstate;
-
-  /*--------------------------------------.
-  | yyerrlab -- here on detecting error.  |
-  `--------------------------------------*/
-  yyerrlab:
-    // If not already recovering from an error, report this error.
-    if (!yyerrstatus_)
-      {
-        ++yynerrs_;
-        error (yyla.location, yysyntax_error_ (yystack_[0].state,
-                                           yyempty ? yyempty_ : yyla.type_get ()));
-      }
-
-
-    yyerror_range[1].location = yyla.location;
-    if (yyerrstatus_ == 3)
-      {
-        /* If just tried and failed to reuse lookahead token after an
-           error, discard it.  */
-
-        // Return failure if at end of input.
-        if (yyla.type_get () == yyeof_)
-          YYABORT;
-        else if (!yyempty)
-          {
-            yy_destroy_ ("Error: discarding", yyla);
-            yyempty = true;
-          }
-      }
-
-    // Else will try to reuse lookahead token after shifting the error token.
-    goto yyerrlab1;
-
-
-  /*---------------------------------------------------.
-  | yyerrorlab -- error raised explicitly by YYERROR.  |
-  `---------------------------------------------------*/
-  yyerrorlab:
-
-    /* Pacify compilers like GCC when the user code never invokes
-       YYERROR and the label yyerrorlab therefore never appears in user
-       code.  */
-    if (false)
-      goto yyerrorlab;
-    yyerror_range[1].location = yystack_[yylen - 1].location;
-    /* $$ was initialized before running the user action.  */
-    YY_SYMBOL_PRINT ("Error: discarding", yylhs);
-    yylhs.~stack_symbol_type();
-    /* Do not reclaim the symbols of the rule whose action triggered
-       this YYERROR.  */
-    yypop_ (yylen);
-    yylen = 0;
-    goto yyerrlab1;
-
-  /*-------------------------------------------------------------.
-  | yyerrlab1 -- common code for both syntax error and YYERROR.  |
-  `-------------------------------------------------------------*/
-  yyerrlab1:
-    yyerrstatus_ = 3;   // Each real token shifted decrements this.
-    {
-      stack_symbol_type error_token;
-      for (;;)
-        {
-          yyn = yypact_[yystack_[0].state];
-          if (!yy_pact_value_is_default_ (yyn))
-            {
-              yyn += yyterror_;
-              if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
-                {
-                  yyn = yytable_[yyn];
-                  if (0 < yyn)
-                    break;
-                }
-            }
-
-          // Pop the current state because it cannot handle the error token.
-          if (yystack_.size () == 1)
-            YYABORT;
-
-          yyerror_range[1].location = yystack_[0].location;
-          yy_destroy_ ("Error: popping", yystack_[0]);
-          yypop_ ();
-          YY_STACK_PRINT ();
-        }
-
-      yyerror_range[2].location = yyla.location;
-      YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);
-
-      // Shift the error token.
-      error_token.state = yyn;
-      yypush_ ("Shifting", error_token);
-    }
-    goto yynewstate;
-
-    // Accept.
-  yyacceptlab:
-    yyresult = 0;
-    goto yyreturn;
-
-    // Abort.
-  yyabortlab:
-    yyresult = 1;
-    goto yyreturn;
-
-  yyreturn:
-    if (!yyempty)
-      yy_destroy_ ("Cleanup: discarding lookahead", yyla);
-
-    /* Do not reclaim the symbols of the rule whose action triggered
-       this YYABORT or YYACCEPT.  */
-    yypop_ (yylen);
-    while (1 < yystack_.size ())
-      {
-        yy_destroy_ ("Cleanup: popping", yystack_[0]);
-        yypop_ ();
-      }
-
-    return yyresult;
-  }
-    catch (...)
-      {
-        YYCDEBUG << "Exception caught: cleaning lookahead and stack"
-                 << std::endl;
-        // Do not try to display the values of the reclaimed symbols,
-        // as their printer might throw an exception.
-        if (!yyempty)
-          yy_destroy_ (YY_NULLPTR, yyla);
-
-        while (1 < yystack_.size ())
-          {
-            yy_destroy_ (YY_NULLPTR, yystack_[0]);
-            yypop_ ();
-          }
-        throw;
-      }
-  }
-
-  void
-  D4CEParser::error (const syntax_error& yyexc)
-  {
-    error (yyexc.location, yyexc.what());
-  }
-
-  // Generate an error message.
-  std::string
-  D4CEParser::yysyntax_error_ (state_type yystate, symbol_number_type yytoken) const
-  {
-    std::string yyres;
-    // Number of reported tokens (one for the "unexpected", one per
-    // "expected").
-    size_t yycount = 0;
-    // Its maximum.
-    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-    // Arguments of yyformat.
-    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-
-    /* There are many possibilities here to consider:
-       - If this state is a consistent state with a default action, then
-         the only way this function was invoked is if the default action
-         is an error action.  In that case, don't check for expected
-         tokens because there are none.
-       - The only way there can be no lookahead present (in yytoken) is
-         if this state is a consistent state with a default action.
-         Thus, detecting the absence of a lookahead is sufficient to
-         determine that there is no unexpected or expected token to
-         report.  In that case, just report a simple "syntax error".
-       - Don't assume there isn't a lookahead just because this state is
-         a consistent state with a default action.  There might have
-         been a previous inconsistent state, consistent state with a
-         non-default action, or user semantic action that manipulated
-         yyla.  (However, yyla is currently not documented for users.)
-       - Of course, the expected token list depends on states to have
-         correct lookahead information, and it depends on the parser not
-         to perform extra reductions after fetching a lookahead from the
-         scanner and before detecting a syntax error.  Thus, state
-         merging (from LALR or IELR) and default reductions corrupt the
-         expected token list.  However, the list is correct for
-         canonical LR with one exception: it will still contain any
-         token that will not be accepted due to an error action in a
-         later state.
-    */
-    if (yytoken != yyempty_)
-      {
-        yyarg[yycount++] = yytname_[yytoken];
-        int yyn = yypact_[yystate];
-        if (!yy_pact_value_is_default_ (yyn))
-          {
-            /* Start YYX at -YYN if negative to avoid negative indexes in
-               YYCHECK.  In other words, skip the first -YYN actions for
-               this state because they are default actions.  */
-            int yyxbegin = yyn < 0 ? -yyn : 0;
-            // Stay within bounds of both yycheck and yytname.
-            int yychecklim = yylast_ - yyn + 1;
-            int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
-            for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
-              if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
-                  && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
-                {
-                  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                    {
-                      yycount = 1;
-                      break;
-                    }
-                  else
-                    yyarg[yycount++] = yytname_[yyx];
-                }
-          }
-      }
-
-    char const* yyformat = YY_NULLPTR;
-    switch (yycount)
-      {
-#define YYCASE_(N, S)                         \
-        case N:                               \
-          yyformat = S;                       \
-        break
-        YYCASE_(0, YY_("syntax error"));
-        YYCASE_(1, YY_("syntax error, unexpected %s"));
-        YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-        YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-        YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-        YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-#undef YYCASE_
-      }
-
-    // Argument number.
-    size_t yyi = 0;
-    for (char const* yyp = yyformat; *yyp; ++yyp)
-      if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
-        {
-          yyres += yytnamerr_ (yyarg[yyi++]);
-          ++yyp;
-        }
-      else
-        yyres += *yyp;
-    return yyres;
-  }
-
-
-  const signed char D4CEParser::yypact_ninf_ = -19;
-
-  const signed char D4CEParser::yytable_ninf_ = -47;
-
-  const signed char
-  D4CEParser::yypact_[] =
-  {
-       2,   -19,   -19,    17,    22,    28,   -19,    43,   -19,    -2,
-      21,    18,    16,   -19,    16,    27,   -19,     2,     2,     2,
-      29,    46,    44,    45,    49,    17,    17,   -19,    43,   -19,
-      34,    47,   -19,    -6,    38,   -19,   -19,     2,   -19,    44,
-      46,    16,    32,   -19,     2,   -19,   -19,   -19,   -19,   -19,
-     -19,   -19,   -19,   -19,   -19,   -19,     2,   -19,    31,    25,
-     -19,   -19,   -19,    -6,    42,   -19,   -19,     2,   -19,    37,
-     -19,    50,   -19,   -19
-  };
-
-  const unsigned char
-  D4CEParser::yydefact_[] =
-  {
-       0,    49,    50,     0,     0,     0,     4,     2,     7,     9,
-      11,     0,    42,    47,    43,    47,     1,     0,     0,     0,
-       0,     0,     0,    12,    17,     0,     0,     5,     3,     8,
-      11,    10,    27,     0,     0,    20,     6,     0,    14,     0,
-       0,    44,    47,    48,     0,    41,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,     0,    21,     0,     0,
-      16,    19,    28,    29,     0,    24,    26,     0,    22,     0,
-      30,     0,    25,    23
-  };
-
-  const signed char
-  D4CEParser::yypgoto_[] =
-  {
-     -19,   -19,   -19,    48,   -14,    51,   -19,   -19,   -19,    20,
-     -19,    40,    23,   -19,    19,     1,   -18,   -19,     4,    -1
-  };
-
-  const signed char
-  D4CEParser::yydefgoto_[] =
-  {
-      -1,     4,     5,     6,     7,     8,     9,    22,    39,    23,
-      40,    24,    38,    31,    32,    56,    10,    11,    12,    13
-  };
-
-  const signed char
-  D4CEParser::yytable_[] =
-  {
-      30,    33,    15,    28,    19,     1,     2,    14,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    30,
-       1,     2,    16,    59,    42,    43,    33,     3,    20,    41,
-      18,   -13,    34,    17,    64,    21,    66,    35,    63,    65,
-      71,    20,    26,    25,   -13,    72,    57,    58,    18,    70,
-      68,    69,   -45,    20,    37,   -15,   -18,   -46,    73,    44,
-      61,    36,    60,    62,    67,    27,     0,     0,     0,    29
-  };
-
-  const signed char
-  D4CEParser::yycheck_[] =
-  {
-      18,    19,     3,    17,     6,     3,     4,     3,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    37,
-       3,     4,     0,    37,    25,    26,    44,    25,     7,    25,
-       5,    10,     3,     5,     3,    14,    11,     8,    56,     8,
-       3,     7,    26,    25,    10,     8,     8,     9,     5,    67,
-       8,     9,    25,     7,    10,    10,     7,    25,     8,    12,
-      40,    21,    39,    44,    63,    17,    -1,    -1,    -1,    18
-  };
-
-  const unsigned char
-  D4CEParser::yystos_[] =
-  {
-       0,     3,     4,    25,    28,    29,    30,    31,    32,    33,
-      43,    44,    45,    46,    45,    46,     0,     5,     5,     6,
-       7,    14,    34,    36,    38,    25,    26,    30,    31,    32,
-      43,    40,    41,    43,     3,     8,    38,    10,    39,    35,
-      37,    45,    46,    46,    12,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    42,     8,     9,    31,
-      39,    36,    41,    43,     3,     8,    11,    42,     8,     9,
-      43,     3,     8,     8
-  };
-
-  const unsigned char
-  D4CEParser::yyr1_[] =
-  {
-       0,    27,    28,    28,    29,    29,    30,    31,    31,    32,
-      32,    33,    33,    34,    33,    35,    33,    36,    37,    36,
-      38,    38,    38,    38,    38,    38,    39,    40,    40,    41,
-      41,    42,    42,    42,    42,    42,    42,    42,    42,    42,
-      42,    42,    43,    43,    43,    44,    44,    45,    45,    46,
-      46
-  };
-
-  const unsigned char
-  D4CEParser::yyr2_[] =
-  {
-       0,     2,     1,     3,     1,     3,     3,     1,     3,     1,
-       3,     1,     2,     0,     3,     0,     4,     1,     0,     3,
-       2,     3,     5,     7,     4,     6,     3,     1,     3,     3,
-       5,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     3,     2,     3,     1,     3,     1,
-       1
-  };
-
-
-
-  // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-  // First, the terminals, then, starting at \a yyntokens_, nonterminals.
-  const char*
-  const D4CEParser::yytname_[] =
-  {
-  "\"end of file\"", "error", "$undefined", "\"word\"", "\"string\"",
-  "\";\"", "\"|\"", "\"[\"", "\"]\"", "\":\"", "\"{\"", "\"}\"", "\",\"",
-  "\"ND\"", "\"=\"", "\"<\"", "\">\"", "\"<=\"", "\">=\"", "\"==\"",
-  "\"!=\"", "\"~=\"", "\"<<\"", "\">>\"", "\"@=\"", "\"/\"", "\".\"",
-  "$accept", "expression", "dimensions", "dimension", "clauses", "clause",
-  "subset", "$@1", "$@2", "indexes", "$@3", "index", "fields", "filter",
-  "predicate", "op", "id", "group", "path", "name", YY_NULLPTR
-  };
-
-#if YYDEBUG
-  const unsigned short int
-  D4CEParser::yyrline_[] =
-  {
-       0,   141,   141,   142,   145,   146,   149,   155,   156,   159,
-     160,   164,   186,   206,   205,   243,   242,   278,   283,   283,
-     286,   287,   288,   289,   290,   291,   294,   297,   298,   311,
-     312,   317,   318,   319,   320,   321,   322,   323,   325,   326,
-     328,   330,   333,   337,   342,   350,   355,   363,   367,   378,
-     382
-  };
-
-  // Print the state stack on the debug stream.
-  void
-  D4CEParser::yystack_print_ ()
-  {
-    *yycdebug_ << "Stack now";
-    for (stack_type::const_iterator
-           i = yystack_.begin (),
-           i_end = yystack_.end ();
-         i != i_end; ++i)
-      *yycdebug_ << ' ' << i->state;
-    *yycdebug_ << std::endl;
-  }
-
-  // Report on the debug stream that the rule \a yyrule is going to be reduced.
-  void
-  D4CEParser::yy_reduce_print_ (int yyrule)
-  {
-    unsigned int yylno = yyrline_[yyrule];
-    int yynrhs = yyr2_[yyrule];
-    // Print the symbols being reduced, and their result.
-    *yycdebug_ << "Reducing stack by rule " << yyrule - 1
-               << " (line " << yylno << "):" << std::endl;
-    // The symbols being reduced.
-    for (int yyi = 0; yyi < yynrhs; yyi++)
-      YY_SYMBOL_PRINT ("   $" << yyi + 1 << " =",
-                       yystack_[(yynrhs) - (yyi + 1)]);
-  }
-#endif // YYDEBUG
-
-  // Symbol number corresponding to token number t.
-  inline
-  D4CEParser::token_number_type
-  D4CEParser::yytranslate_ (int t)
-  {
-    static
-    const token_number_type
-    translate_table[] =
-    {
-     0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26
-    };
-    const unsigned int user_token_number_max_ = 281;
-    const token_number_type undef_token_ = 2;
-
-    if (static_cast<int>(t) <= yyeof_)
-      return yyeof_;
-    else if (static_cast<unsigned int> (t) <= user_token_number_max_)
-      return translate_table[t];
-    else
-      return undef_token_;
-  }
-
-#line 35 "d4_ce_parser.yy" // lalr1.cc:1157
-} // libdap
-#line 1813 "d4_ce_parser.tab.cc" // lalr1.cc:1157
-#line 388 "d4_ce_parser.yy" // lalr1.cc:1158
-
-
-// Forward the error to the driver for handling. The location parameter
-// provides the line number and character position of the error.
-void
-libdap::D4CEParser::error(const location_type &l, const std::string &m)
-{
-    driver.error(l, m);
-}
-
-/* include for access to scanner.yylex */
-#include "D4CEScanner.h"
-
-static int yylex(libdap::D4CEParser::semantic_type *yylval,
-                 libdap::location *loc,
-                 libdap::D4CEScanner &scanner,
-                 libdap::D4ConstraintEvaluator &driver)
-{
-    if (driver.trace_scanning())
-        scanner.set_debug(true);
-    
-    return( scanner.yylex(yylval, loc) );
-}
diff --git a/d4_ce/d4_ce_parser.tab.hh b/d4_ce/d4_ce_parser.tab.hh
deleted file mode 100644
index 508cf69..0000000
--- a/d4_ce/d4_ce_parser.tab.hh
+++ /dev/null
@@ -1,783 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Skeleton interface for Bison LALR(1) parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file d4_ce_parser.tab.hh
- ** Define the libdap::parser class.
- */
-
-// C++ LALR(1) parser skeleton written by Akim Demaille.
-
-#ifndef YY_YY_D4_CE_PARSER_TAB_HH_INCLUDED
-# define YY_YY_D4_CE_PARSER_TAB_HH_INCLUDED
-// //                    "%code requires" blocks.
-#line 48 "d4_ce_parser.yy" // lalr1.cc:372
-
-#include "D4ConstraintEvaluator.h"
-namespace libdap {
-    class D4CEScanner;
-}
-
-
-#line 52 "d4_ce_parser.tab.hh" // lalr1.cc:372
-
-# include <cassert>
-# include <vector>
-# include <iostream>
-# include <stdexcept>
-# include <string>
-# include "stack.hh"
-# include "location.hh"
-#include <typeinfo>
-#ifndef YYASSERT
-# include <cassert>
-# define YYASSERT assert
-#endif
-
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
-#line 35 "d4_ce_parser.yy" // lalr1.cc:372
-namespace libdap {
-#line 128 "d4_ce_parser.tab.hh" // lalr1.cc:372
-
-
-
-  /// A char[S] buffer to store and retrieve objects.
-  ///
-  /// Sort of a variant, but does not keep track of the nature
-  /// of the stored data, since that knowledge is available
-  /// via the current state.
-  template <size_t S>
-  struct variant
-  {
-    /// Type of *this.
-    typedef variant<S> self_type;
-
-    /// Empty construction.
-    variant ()
-      : yytname_ (YY_NULLPTR)
-    {}
-
-    /// Construct and fill.
-    template <typename T>
-    variant (const T& t)
-      : yytname_ (typeid (T).name ())
-    {
-      YYASSERT (sizeof (T) <= S);
-      new (yyas_<T> ()) T (t);
-    }
-
-    /// Destruction, allowed only if empty.
-    ~variant ()
-    {
-      YYASSERT (!yytname_);
-    }
-
-    /// Instantiate an empty \a T in here.
-    template <typename T>
-    T&
-    build ()
-    {
-      YYASSERT (!yytname_);
-      YYASSERT (sizeof (T) <= S);
-      yytname_ = typeid (T).name ();
-      return *new (yyas_<T> ()) T;
-    }
-
-    /// Instantiate a \a T in here from \a t.
-    template <typename T>
-    T&
-    build (const T& t)
-    {
-      YYASSERT (!yytname_);
-      YYASSERT (sizeof (T) <= S);
-      yytname_ = typeid (T).name ();
-      return *new (yyas_<T> ()) T (t);
-    }
-
-    /// Accessor to a built \a T.
-    template <typename T>
-    T&
-    as ()
-    {
-      YYASSERT (yytname_ == typeid (T).name ());
-      YYASSERT (sizeof (T) <= S);
-      return *yyas_<T> ();
-    }
-
-    /// Const accessor to a built \a T (for %printer).
-    template <typename T>
-    const T&
-    as () const
-    {
-      YYASSERT (yytname_ == typeid (T).name ());
-      YYASSERT (sizeof (T) <= S);
-      return *yyas_<T> ();
-    }
-
-    /// Swap the content with \a other, of same type.
-    ///
-    /// Both variants must be built beforehand, because swapping the actual
-    /// data requires reading it (with as()), and this is not possible on
-    /// unconstructed variants: it would require some dynamic testing, which
-    /// should not be the variant's responsability.
-    /// Swapping between built and (possibly) non-built is done with
-    /// variant::move ().
-    template <typename T>
-    void
-    swap (self_type& other)
-    {
-      YYASSERT (yytname_);
-      YYASSERT (yytname_ == other.yytname_);
-      std::swap (as<T> (), other.as<T> ());
-    }
-
-    /// Move the content of \a other to this.
-    ///
-    /// Destroys \a other.
-    template <typename T>
-    void
-    move (self_type& other)
-    {
-      build<T> ();
-      swap<T> (other);
-      other.destroy<T> ();
-    }
-
-    /// Copy the content of \a other to this.
-    template <typename T>
-    void
-    copy (const self_type& other)
-    {
-      build<T> (other.as<T> ());
-    }
-
-    /// Destroy the stored \a T.
-    template <typename T>
-    void
-    destroy ()
-    {
-      as<T> ().~T ();
-      yytname_ = YY_NULLPTR;
-    }
-
-  private:
-    /// Prohibit blind copies.
-    self_type& operator=(const self_type&);
-    variant (const self_type&);
-
-    /// Accessor to raw memory as \a T.
-    template <typename T>
-    T*
-    yyas_ ()
-    {
-      void *yyp = yybuffer_.yyraw;
-      return static_cast<T*> (yyp);
-     }
-
-    /// Const accessor to raw memory as \a T.
-    template <typename T>
-    const T*
-    yyas_ () const
-    {
-      const void *yyp = yybuffer_.yyraw;
-      return static_cast<const T*> (yyp);
-     }
-
-    union
-    {
-      /// Strongest alignment constraints.
-      long double yyalign_me;
-      /// A buffer large enough to store any of the semantic values.
-      char yyraw[S];
-    } yybuffer_;
-
-    /// Whether the content is built: if defined, the name of the stored type.
-    const char *yytname_;
-  };
-
-
-  /// A Bison parser.
-  class D4CEParser
-  {
-  public:
-#ifndef YYSTYPE
-    /// An auxiliary type to compute the largest semantic type.
-    union union_type
-    {
-      // dimensions
-      // dimension
-      // clauses
-      // clause
-      // subset
-      // indexes
-      // fields
-      // filter
-      // predicate
-      char dummy1[sizeof(bool)];
-
-      // index
-      char dummy2[sizeof(libdap::D4ConstraintEvaluator::index)];
-
-      // "word"
-      // "string"
-      // id
-      // group
-      // path
-      // name
-      char dummy3[sizeof(std::string)];
-};
-
-    /// Symbol semantic values.
-    typedef variant<sizeof(union_type)> semantic_type;
-#else
-    typedef YYSTYPE semantic_type;
-#endif
-    /// Symbol locations.
-    typedef location location_type;
-
-    /// Syntax errors thrown from user actions.
-    struct syntax_error : std::runtime_error
-    {
-      syntax_error (const location_type& l, const std::string& m);
-      location_type location;
-    };
-
-    /// Tokens.
-    struct token
-    {
-      enum yytokentype
-      {
-        END = 0,
-        WORD = 258,
-        STRING = 259,
-        SEMICOLON = 260,
-        PIPE = 261,
-        LBRACKET = 262,
-        RBRACKET = 263,
-        COLON = 264,
-        LBRACE = 265,
-        RBRACE = 266,
-        COMMA = 267,
-        ND = 268,
-        ASSIGN = 269,
-        LESS = 270,
-        GREATER = 271,
-        LESS_EQUAL = 272,
-        GREATER_EQUAL = 273,
-        EQUAL = 274,
-        NOT_EQUAL = 275,
-        REGEX_MATCH = 276,
-        LESS_BBOX = 277,
-        GREATER_BBOX = 278,
-        MASK = 279,
-        GROUP_SEP = 280,
-        PATH_SEP = 281
-      };
-    };
-
-    /// (External) token type, as returned by yylex.
-    typedef token::yytokentype token_type;
-
-    /// Internal symbol number.
-    typedef int symbol_number_type;
-
-    /// Internal symbol number for tokens (subsumed by symbol_number_type).
-    typedef unsigned char token_number_type;
-
-    /// A complete symbol.
-    ///
-    /// Expects its Base type to provide access to the symbol type
-    /// via type_get().
-    ///
-    /// Provide access to semantic value and location.
-    template <typename Base>
-    struct basic_symbol : Base
-    {
-      /// Alias to Base.
-      typedef Base super_type;
-
-      /// Default constructor.
-      basic_symbol ();
-
-      /// Copy constructor.
-      basic_symbol (const basic_symbol& other);
-
-      /// Constructor for valueless symbols, and symbols from each type.
-
-  basic_symbol (typename Base::kind_type t, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const bool v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const libdap::D4ConstraintEvaluator::index v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l);
-
-
-      /// Constructor for symbols with semantic value.
-      basic_symbol (typename Base::kind_type t,
-                    const semantic_type& v,
-                    const location_type& l);
-
-      ~basic_symbol ();
-
-      /// Destructive move, \a s is emptied into this.
-      void move (basic_symbol& s);
-
-      /// The semantic value.
-      semantic_type value;
-
-      /// The location.
-      location_type location;
-
-    private:
-      /// Assignment operator.
-      basic_symbol& operator= (const basic_symbol& other);
-    };
-
-    /// Type access provider for token (enum) based symbols.
-    struct by_type
-    {
-      /// Default constructor.
-      by_type ();
-
-      /// Copy constructor.
-      by_type (const by_type& other);
-
-      /// The symbol type as needed by the constructor.
-      typedef token_type kind_type;
-
-      /// Constructor from (external) token numbers.
-      by_type (kind_type t);
-
-      /// Steal the symbol type from \a that.
-      void move (by_type& that);
-
-      /// The (internal) type number (corresponding to \a type).
-      /// -1 when this symbol is empty.
-      symbol_number_type type_get () const;
-
-      /// The token.
-      token_type token () const;
-
-      enum { empty = 0 };
-
-      /// The symbol type.
-      /// -1 when this symbol is empty.
-      token_number_type type;
-    };
-
-    /// "External" symbols: returned by the scanner.
-    typedef basic_symbol<by_type> symbol_type;
-
-    // Symbol constructors declarations.
-    static inline
-    symbol_type
-    make_END (const location_type& l);
-
-    static inline
-    symbol_type
-    make_WORD (const std::string& v, const location_type& l);
-
-    static inline
-    symbol_type
-    make_STRING (const std::string& v, const location_type& l);
-
-    static inline
-    symbol_type
-    make_SEMICOLON (const location_type& l);
-
-    static inline
-    symbol_type
-    make_PIPE (const location_type& l);
-
-    static inline
-    symbol_type
-    make_LBRACKET (const location_type& l);
-
-    static inline
-    symbol_type
-    make_RBRACKET (const location_type& l);
-
-    static inline
-    symbol_type
-    make_COLON (const location_type& l);
-
-    static inline
-    symbol_type
-    make_LBRACE (const location_type& l);
-
-    static inline
-    symbol_type
-    make_RBRACE (const location_type& l);
-
-    static inline
-    symbol_type
-    make_COMMA (const location_type& l);
-
-    static inline
-    symbol_type
-    make_ND (const location_type& l);
-
-    static inline
-    symbol_type
-    make_ASSIGN (const location_type& l);
-
-    static inline
-    symbol_type
-    make_LESS (const location_type& l);
-
-    static inline
-    symbol_type
-    make_GREATER (const location_type& l);
-
-    static inline
-    symbol_type
-    make_LESS_EQUAL (const location_type& l);
-
-    static inline
-    symbol_type
-    make_GREATER_EQUAL (const location_type& l);
-
-    static inline
-    symbol_type
-    make_EQUAL (const location_type& l);
-
-    static inline
-    symbol_type
-    make_NOT_EQUAL (const location_type& l);
-
-    static inline
-    symbol_type
-    make_REGEX_MATCH (const location_type& l);
-
-    static inline
-    symbol_type
-    make_LESS_BBOX (const location_type& l);
-
-    static inline
-    symbol_type
-    make_GREATER_BBOX (const location_type& l);
-
-    static inline
-    symbol_type
-    make_MASK (const location_type& l);
-
-    static inline
-    symbol_type
-    make_GROUP_SEP (const location_type& l);
-
-    static inline
-    symbol_type
-    make_PATH_SEP (const location_type& l);
-
-
-    /// Build a parser object.
-    D4CEParser (D4CEScanner  &scanner_yyarg, D4ConstraintEvaluator  &driver_yyarg);
-    virtual ~D4CEParser ();
-
-    /// Parse.
-    /// \returns  0 iff parsing succeeded.
-    virtual int parse ();
-
-#if YYDEBUG
-    /// The current debugging stream.
-    std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
-    /// Set the current debugging stream.
-    void set_debug_stream (std::ostream &);
-
-    /// Type for debugging levels.
-    typedef int debug_level_type;
-    /// The current debugging level.
-    debug_level_type debug_level () const YY_ATTRIBUTE_PURE;
-    /// Set the current debugging level.
-    void set_debug_level (debug_level_type l);
-#endif
-
-    /// Report a syntax error.
-    /// \param loc    where the syntax error is found.
-    /// \param msg    a description of the syntax error.
-    virtual void error (const location_type& loc, const std::string& msg);
-
-    /// Report a syntax error.
-    void error (const syntax_error& err);
-
-  private:
-    /// This class is not copyable.
-    D4CEParser (const D4CEParser&);
-    D4CEParser& operator= (const D4CEParser&);
-
-    /// State numbers.
-    typedef int state_type;
-
-    /// Generate an error message.
-    /// \param yystate   the state where the error occurred.
-    /// \param yytoken   the lookahead token type, or yyempty_.
-    virtual std::string yysyntax_error_ (state_type yystate,
-                                         symbol_number_type yytoken) const;
-
-    /// Compute post-reduction state.
-    /// \param yystate   the current state
-    /// \param yylhs     the nonterminal to push on the stack
-    state_type yy_lr_goto_state_ (state_type yystate, int yylhs);
-
-    /// Whether the given \c yypact_ value indicates a defaulted state.
-    /// \param yyvalue   the value to check
-    static bool yy_pact_value_is_default_ (int yyvalue);
-
-    /// Whether the given \c yytable_ value indicates a syntax error.
-    /// \param yyvalue   the value to check
-    static bool yy_table_value_is_error_ (int yyvalue);
-
-    static const signed char yypact_ninf_;
-    static const signed char yytable_ninf_;
-
-    /// Convert a scanner token number \a t to a symbol number.
-    static token_number_type yytranslate_ (int t);
-
-    // Tables.
-  // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-  // STATE-NUM.
-  static const signed char yypact_[];
-
-  // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-  // Performed when YYTABLE does not specify something else to do.  Zero
-  // means the default is an error.
-  static const unsigned char yydefact_[];
-
-  // YYPGOTO[NTERM-NUM].
-  static const signed char yypgoto_[];
-
-  // YYDEFGOTO[NTERM-NUM].
-  static const signed char yydefgoto_[];
-
-  // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-  // positive, shift that token.  If negative, reduce the rule whose
-  // number is the opposite.  If YYTABLE_NINF, syntax error.
-  static const signed char yytable_[];
-
-  static const signed char yycheck_[];
-
-  // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-  // symbol of state STATE-NUM.
-  static const unsigned char yystos_[];
-
-  // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
-  static const unsigned char yyr1_[];
-
-  // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
-  static const unsigned char yyr2_[];
-
-
-    /// Convert the symbol name \a n to a form suitable for a diagnostic.
-    static std::string yytnamerr_ (const char *n);
-
-
-    /// For a symbol, its name in clear.
-    static const char* const yytname_[];
-#if YYDEBUG
-  // YYRLINE[YYN] -- Source line where rule number YYN was defined.
-  static const unsigned short int yyrline_[];
-    /// Report on the debug stream that the rule \a r is going to be reduced.
-    virtual void yy_reduce_print_ (int r);
-    /// Print the state stack on the debug stream.
-    virtual void yystack_print_ ();
-
-    // Debugging.
-    int yydebug_;
-    std::ostream* yycdebug_;
-
-    /// \brief Display a symbol type, value and location.
-    /// \param yyo    The output stream.
-    /// \param yysym  The symbol.
-    template <typename Base>
-    void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
-#endif
-
-    /// \brief Reclaim the memory associated to a symbol.
-    /// \param yymsg     Why this token is reclaimed.
-    ///                  If null, print nothing.
-    /// \param yysym     The symbol.
-    template <typename Base>
-    void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
-
-  private:
-    /// Type access provider for state based symbols.
-    struct by_state
-    {
-      /// Default constructor.
-      by_state ();
-
-      /// The symbol type as needed by the constructor.
-      typedef state_type kind_type;
-
-      /// Constructor.
-      by_state (kind_type s);
-
-      /// Copy constructor.
-      by_state (const by_state& other);
-
-      /// Steal the symbol type from \a that.
-      void move (by_state& that);
-
-      /// The (internal) type number (corresponding to \a state).
-      /// "empty" when empty.
-      symbol_number_type type_get () const;
-
-      enum { empty = 0 };
-
-      /// The state.
-      state_type state;
-    };
-
-    /// "Internal" symbol: element of the stack.
-    struct stack_symbol_type : basic_symbol<by_state>
-    {
-      /// Superclass.
-      typedef basic_symbol<by_state> super_type;
-      /// Construct an empty symbol.
-      stack_symbol_type ();
-      /// Steal the contents from \a sym to build this.
-      stack_symbol_type (state_type s, symbol_type& sym);
-      /// Assignment, needed by push_back.
-      stack_symbol_type& operator= (const stack_symbol_type& that);
-    };
-
-    /// Stack type.
-    typedef stack<stack_symbol_type> stack_type;
-
-    /// The stack.
-    stack_type yystack_;
-
-    /// Push a new state on the stack.
-    /// \param m    a debug message to display
-    ///             if null, no trace is output.
-    /// \param s    the symbol
-    /// \warning the contents of \a s.value is stolen.
-    void yypush_ (const char* m, stack_symbol_type& s);
-
-    /// Push a new look ahead token on the state on the stack.
-    /// \param m    a debug message to display
-    ///             if null, no trace is output.
-    /// \param s    the state
-    /// \param sym  the symbol (for its value and location).
-    /// \warning the contents of \a s.value is stolen.
-    void yypush_ (const char* m, state_type s, symbol_type& sym);
-
-    /// Pop \a n symbols the three stacks.
-    void yypop_ (unsigned int n = 1);
-
-    // Constants.
-    enum
-    {
-      yyeof_ = 0,
-      yylast_ = 69,     ///< Last index in yytable_.
-      yynnts_ = 20,  ///< Number of nonterminal symbols.
-      yyempty_ = -2,
-      yyfinal_ = 16, ///< Termination state number.
-      yyterror_ = 1,
-      yyerrcode_ = 256,
-      yyntokens_ = 27  ///< Number of tokens.
-    };
-
-
-    // User arguments.
-    D4CEScanner  &scanner;
-    D4ConstraintEvaluator  &driver;
-  };
-
-
-#line 35 "d4_ce_parser.yy" // lalr1.cc:372
-} // libdap
-#line 779 "d4_ce_parser.tab.hh" // lalr1.cc:372
-
-
-
-
-#endif // !YY_YY_D4_CE_PARSER_TAB_HH_INCLUDED
diff --git a/d4_ce/d4_ce_parser.yy b/d4_ce/d4_ce_parser.yy
index 6aa437e..eed0324 100644
--- a/d4_ce/d4_ce_parser.yy
+++ b/d4_ce/d4_ce_parser.yy
@@ -54,7 +54,8 @@ namespace libdap {
 }
 
 // Pass both the scanner and parser objects to both the automatically generated
-// parser and scanner.
+// parser and scanner. Note that in the actions bound to the rules, 'driver' 
+// means use the 'D4ConstraintEvaluator' instance.
 %lex-param   { D4CEScanner  &scanner  }
 %parse-param { D4CEScanner  &scanner  }
 
@@ -83,7 +84,7 @@ namespace libdap {
    /* include for all driver functions */
    #include "D4ConstraintEvaluator.h"
 
-   /* this is silly, but I can't figure out a way around */
+   /* this is silly, but I can't figure out a way around it */
    static int yylex(libdap::D4CEParser::semantic_type *yylval,
                     libdap::location *loc,
                     libdap::D4CEScanner  &scanner,
@@ -95,13 +96,18 @@ namespace libdap {
 %token <std::string> WORD "word"
 %token <std::string> STRING "string"
 
-%type <bool> predicate filter fields indexes subset clause clauses dimension dimensions
-%type <std::string> id path group name
+// %type is used to set the return type of non-terminals; %token sets the
+// return type for terminals.
+%type <bool> filter predicate fields indexes subset clause clauses dimension dimensions
+%type <std::string> id path group name op
+
 %type <libdap::D4ConstraintEvaluator::index> index
+// %type <libdap::D4FilterClause> predicate
 
-%token 
+%token
     END  0  "end of file"
-    
+  
+%token 
     SEMICOLON ";"
     PIPE "|"
 
@@ -112,11 +118,6 @@ namespace libdap {
     LBRACE "{"
     RBRACE "}"
 
-    COMMA ","
-
-    ND "ND"
-    ASSIGN "="
-
     LESS "<"
     GREATER ">"
     LESS_EQUAL "<="
@@ -129,11 +130,15 @@ namespace libdap {
     GREATER_BBOX ">>"
 
     MASK "@="
+    ND "ND"
+
+    COMMA ","
+
+    ASSIGN "="
 
     GROUP_SEP "/"
     PATH_SEP "."
-;
-
+    
 %%
 
 %start expression;
@@ -155,12 +160,25 @@ dimension : id "=" index
 clauses : clause { $$ = $1; }
 | clauses ";" clause { $$ = $1 && $3; }
 ;
-                    
-clause : subset { $$ = $1; }
-| subset "|" filter { $$ = $1 && $3; }
+    
+// Change: I moved the pop_basetype() call out of the 'fields'
+// actions in 'subset' so that I could push the basetype for
+// all of the cases. That way I'm sure to have a top_baseype()
+// when processing the 'filter' part of the grammar. I need the
+// the top basetype so that I know which Sequence to use.
+// jhrg 4/23/16
+               
+clause : subset { $$ = $1; driver.pop_basetype(); }
+
+// For the DAP4 at this time (3/18/15) filters apply only to D4Sequences 
+
+| subset "|" filter { driver.pop_basetype(); $$ = $1 && $3; }
 ;
 
 // mark_variable returns a BaseType* or throws Error
+// Note that this is a fairly long production rule with a number
+// of different right hand sides spanning about 110 lines.
+// jhrg 4/8/16
 subset : id 
 {
     BaseType *btp = 0;
@@ -174,13 +192,11 @@ subset : id
     if (!btp)
         driver.throw_not_found($1, "id");
 
-#if 0    
-    if (btp->type() == dods_array_c)
-        $$ = driver.mark_variable(btp) && driver.mark_array_variable(btp);   // handle array w/o slice ops
-    else
-#endif
-
     $$ = driver.mark_variable(btp);
+    
+    // push the basetype so that it is
+    // accessible if/while filters are parsed
+    driver.push_basetype(btp);
 }
 
 | id indexes 
@@ -199,9 +215,14 @@ subset : id
     if (btp->type() != dods_array_c)
         driver.throw_not_array($1, "id indexes");
         
-    $$ = driver.mark_variable(btp); //  && driver.mark_array_variable(btp);
+    $$ = driver.mark_variable(btp);
+    
+    // push the basetype so that it is
+    // accessible if/while filters are parsed
+    driver.push_basetype(btp);
 }
 
+// Note this case is '| id fields'
 | id 
 {
     BaseType *btp = 0;
@@ -217,7 +238,7 @@ subset : id
     
     if (btp->type() == dods_array_c) {
         if (btp->var() && !btp->var()->is_constructor_type())
-            throw Error("The variable " + $1 + " must be a Structure or Sequence to be used with {}.");
+            throw Error(no_such_variable, "The variable " + $1 + " must be a Structure or Sequence to be used with {}.");
             
         // This call also tests the btp to make sure it's an array
         driver.mark_array_variable(btp);
@@ -226,19 +247,21 @@ subset : id
         // Don't mark the variable here because only some fields are to be sent and those
         // will be marked when the fields are parsed
         if (!btp->is_constructor_type())
-            throw Error("The variable " + $1 + " must be a Structure or Sequence to be used with {}.");
+            throw Error(no_such_variable, "The variable " + $1 + " must be a Structure or Sequence to be used with {}.");
     }
     
-    // push the basetype (a ctor or array of ctor) on the stack so that it is
-    // accessible while the fields are being parsed
+    // push the basetype so that it is
+    // accessible when fields and if/while filters are parsed
     driver.push_basetype(btp);
 } 
 fields 
 { 
-    driver.pop_basetype(); 
+    //driver.pop_basetype(); 
     $$ = true; 
 }
 
+// Note this case is '| id indexes fields'
+
 | id indexes
 {
     BaseType *btp = 0;
@@ -259,18 +282,17 @@ fields
     driver.mark_array_variable(btp);
     
     if (!btp->var()->is_constructor_type())
-        throw Error("The variable " + $1 + " must be a Structure or Sequence to be used with {}.");
+        throw Error(no_such_variable, "The variable " + $1 + " must be a Structure or Sequence to be used with {}.");
       
     driver.push_basetype(btp->var());       
 } 
 fields 
 { 
-    driver.pop_basetype();
+    //driver.pop_basetype();
     $$ = true; 
 }
 
-
-// The following has be removed from the syntax
+// The following has been removed from the syntax
 // | fields indexes { $$ = true; }
 ;
 
@@ -294,8 +316,11 @@ index   : "[" "]" { $$ = driver.make_index(); }
 fields : "{" clauses "}" { $$ = $2; }
 ;
 
-filter : predicate 
-| filter "," predicate
+// A filter should return a FilterClauseList; a predicate should return a single
+// FilterClause.
+
+filter : predicate { $$ = true; }
+| filter "," predicate { $$ = $1 && $3; }
 ;
 
 // Here we use a grammar that is overly general: id op id is not really
@@ -303,31 +328,39 @@ filter : predicate
 // the intent of the evaluator design introduces a number of reduce/reduce
 // conflicts because any sensible definition of 'constant' will be the
 // same as the definition of 'name'. This happens because we must make 'name'
-// far more general than ideal (it must include tokens that start with digits
-// odd characters that clash with the operators, et cetera). Note that the
-// actions here must test for id == "ND" and op == "=", along with a host
-// of other checks.
+// far more general than ideal (it must include tokens that start with digits,
+// odd characters that clash with the operators, et cetera).
 
-predicate : id op id { $$ = true; }
-          | id op id op id { $$ = true; }
-;
-
-//           | "ND" "=" id { $$ = true; }
-
-op : "<"
-   | ">"
-   | "<="
-   | ">="
-   | "=="
-   | "!="
-   | "~="
+predicate : id op id
+{ driver.add_filter_clause($2, $1, $3); $$ = true; }
+          
+| id op id op id 
+{ 
+    driver.add_filter_clause($2, $1, $3); 
+    driver.add_filter_clause($4, $3, $5); 
+    $$ = true; 
 
-   | "<<"
-   | ">>"
+}
+| "ND" "=" id { throw Error(malformed_expr, "The 'ND' operator is not currently supported."); }
+;
 
-   | "@="
-   
-   | "="
+// See http://docs.opendap.org/index.php/DAP4:_Constraint_Expressions,_v2
+// for a discussion of filters that's quite a bit longer than the current
+// draft spec. << and >> are the 'less than bbox' and '> bbox' operations
+// that I'm not so sure about now; @= is the same as *= and is the mapping
+// operation. jhrg 3/18/15 
+op : "<" {$$ = "<";}
+   | ">" {$$ = ">";}
+   | "<=" {$$ = "<=";}
+   | ">=" {$$ = ">=";}
+   | "==" {$$ = "==";}
+   | "!=" {$$ = "!=";}
+   | "~=" {$$ = "~=";}
+
+   | "<<" {$$ = "<<";}
+   | ">>" {$$ = ">>";}
+
+   | "@=" {$$ = "@=";}
 ;
 
 id : path
diff --git a/d4_ce/d4_ce_scanner.ll b/d4_ce/d4_ce_scanner.ll
index 04c9aaf..43da99d 100644
--- a/d4_ce/d4_ce_scanner.ll
+++ b/d4_ce/d4_ce_scanner.ll
@@ -29,6 +29,7 @@
 //#include "config.h"
 
 #include <string>
+#include "Error.h"
 
 #include "D4CEScanner.h"
 
@@ -43,6 +44,10 @@ typedef libdap::D4CEParser::token token;
 /* define yyterminate as this instead of NULL */
 #define yyterminate() return(token::END)
 
+#define YY_FATAL_ERROR(msg) {\
+    throw(libdap::Error(malformed_expr, std::string("Error scanning constraint expression text: ") + std::string(msg))); \
+}
+
 %}
 
 %option c++
@@ -76,8 +81,15 @@ typedef libdap::D4CEParser::token token;
 %x quote
 
 /* This pattern just ensures that a word does not start with '#' which
-   is the DAP2 comment character. */
-WORD    [-+a-zA-Z0-9_%*\\~@!][-+a-zA-Z0-9_%*\\#~@!]* 
+   is the DAP2 comment character. 
+
+   Having the characters !, ~, and @ in the second set of the chars allowed
+   in a WORD token meant that 'var!=' parsed as WORD == 'var!' and '=' ane not
+   'var' and '!='. I see that in DAP2 I did not include these in the definition
+   of a WORD.
+   jhrg 4/29/16 */
+   
+WORD    [-+a-zA-Z0-9_%*\\!~@][-+a-zA-Z0-9_%*\\#]* 
 
 %{
 // Code run each time a pattern is matched
diff --git a/d4_ce/location.hh b/d4_ce/location.hh
deleted file mode 100644
index b07689e..0000000
--- a/d4_ce/location.hh
+++ /dev/null
@@ -1,187 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Locations for Bison parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file location.hh
- ** Define the libdap::location class.
- */
-
-#ifndef YY_YY_LOCATION_HH_INCLUDED
-# define YY_YY_LOCATION_HH_INCLUDED
-
-# include "position.hh"
-
-#line 35 "d4_ce_parser.yy" // location.cc:291
-namespace libdap {
-#line 46 "location.hh" // location.cc:291
-  /// Abstract a location.
-  class location
-  {
-  public:
-
-    /// Construct a location from \a b to \a e.
-    location (const position& b, const position& e)
-      : begin (b)
-      , end (e)
-    {
-    }
-
-    /// Construct a 0-width location in \a p.
-    explicit location (const position& p = position ())
-      : begin (p)
-      , end (p)
-    {
-    }
-
-    /// Construct a 0-width location in \a f, \a l, \a c.
-    explicit location (std::string* f,
-                       unsigned int l = 1u,
-                       unsigned int c = 1u)
-      : begin (f, l, c)
-      , end (f, l, c)
-    {
-    }
-
-
-    /// Initialization.
-    void initialize (std::string* f = YY_NULLPTR,
-                     unsigned int l = 1u,
-                     unsigned int c = 1u)
-    {
-      begin.initialize (f, l, c);
-      end = begin;
-    }
-
-    /** \name Line and Column related manipulators
-     ** \{ */
-  public:
-    /// Reset initial location to final location.
-    void step ()
-    {
-      begin = end;
-    }
-
-    /// Extend the current location to the COUNT next columns.
-    void columns (int count = 1)
-    {
-      end += count;
-    }
-
-    /// Extend the current location to the COUNT next lines.
-    void lines (int count = 1)
-    {
-      end.lines (count);
-    }
-    /** \} */
-
-
-  public:
-    /// Beginning of the located region.
-    position begin;
-    /// End of the located region.
-    position end;
-  };
-
-  /// Join two location objects to create a location.
-  inline location operator+ (location res, const location& end)
-  {
-    res.end = end.end;
-    return res;
-  }
-
-  /// Change end position in place.
-  inline location& operator+= (location& res, int width)
-  {
-    res.columns (width);
-    return res;
-  }
-
-  /// Change end position.
-  inline location operator+ (location res, int width)
-  {
-    return res += width;
-  }
-
-  /// Change end position in place.
-  inline location& operator-= (location& res, int width)
-  {
-    return res += -width;
-  }
-
-  /// Change end position.
-  inline location operator- (const location& begin, int width)
-  {
-    return begin + -width;
-  }
-
-  /// Compare two location objects.
-  inline bool
-  operator== (const location& loc1, const location& loc2)
-  {
-    return loc1.begin == loc2.begin && loc1.end == loc2.end;
-  }
-
-  /// Compare two location objects.
-  inline bool
-  operator!= (const location& loc1, const location& loc2)
-  {
-    return !(loc1 == loc2);
-  }
-
-  /** \brief Intercept output stream redirection.
-   ** \param ostr the destination output stream
-   ** \param loc a reference to the location to redirect
-   **
-   ** Avoid duplicate information.
-   */
-  template <typename YYChar>
-  inline std::basic_ostream<YYChar>&
-  operator<< (std::basic_ostream<YYChar>& ostr, const location& loc)
-  {
-    unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0;
-    ostr << loc.begin// << "(" << loc.end << ") "
-;
-    if (loc.end.filename
-        && (!loc.begin.filename
-            || *loc.begin.filename != *loc.end.filename))
-      ostr << '-' << loc.end.filename << ':' << loc.end.line << '.' << end_col;
-    else if (loc.begin.line < loc.end.line)
-      ostr << '-' << loc.end.line << '.' << end_col;
-    else if (loc.begin.column < end_col)
-      ostr << '-' << end_col;
-    return ostr;
-  }
-
-#line 35 "d4_ce_parser.yy" // location.cc:291
-} // libdap
-#line 187 "location.hh" // location.cc:291
-#endif // !YY_YY_LOCATION_HH_INCLUDED
diff --git a/d4_ce/position.hh b/d4_ce/position.hh
deleted file mode 100644
index 4fe82ae..0000000
--- a/d4_ce/position.hh
+++ /dev/null
@@ -1,180 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Positions for Bison parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file position.hh
- ** Define the libdap::position class.
- */
-
-#ifndef YY_YY_POSITION_HH_INCLUDED
-# define YY_YY_POSITION_HH_INCLUDED
-
-# include <algorithm> // std::max
-# include <iostream>
-# include <string>
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-#line 35 "d4_ce_parser.yy" // location.cc:291
-namespace libdap {
-#line 56 "position.hh" // location.cc:291
-  /// Abstract a position.
-  class position
-  {
-  public:
-    /// Construct a position.
-    explicit position (std::string* f = YY_NULLPTR,
-                       unsigned int l = 1u,
-                       unsigned int c = 1u)
-      : filename (f)
-      , line (l)
-      , column (c)
-    {
-    }
-
-
-    /// Initialization.
-    void initialize (std::string* fn = YY_NULLPTR,
-                     unsigned int l = 1u,
-                     unsigned int c = 1u)
-    {
-      filename = fn;
-      line = l;
-      column = c;
-    }
-
-    /** \name Line and Column related manipulators
-     ** \{ */
-    /// (line related) Advance to the COUNT next lines.
-    void lines (int count = 1)
-    {
-      if (count)
-        {
-          column = 1u;
-          line = add_ (line, count, 1);
-        }
-    }
-
-    /// (column related) Advance to the COUNT next columns.
-    void columns (int count = 1)
-    {
-      column = add_ (column, count, 1);
-    }
-    /** \} */
-
-    /// File name to which this position refers.
-    std::string* filename;
-    /// Current line number.
-    unsigned int line;
-    /// Current column number.
-    unsigned int column;
-
-  private:
-    /// Compute max(min, lhs+rhs) (provided min <= lhs).
-    static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min)
-    {
-      return (0 < rhs || -static_cast<unsigned int>(rhs) < lhs
-              ? rhs + lhs
-              : min);
-    }
-  };
-
-  /// Add and assign a position.
-  inline position&
-  operator+= (position& res, int width)
-  {
-    res.columns (width);
-    return res;
-  }
-
-  /// Add two position objects.
-  inline position
-  operator+ (position res, int width)
-  {
-    return res += width;
-  }
-
-  /// Add and assign a position.
-  inline position&
-  operator-= (position& res, int width)
-  {
-    return res += -width;
-  }
-
-  /// Add two position objects.
-  inline position
-  operator- (position res, int width)
-  {
-    return res -= width;
-  }
-
-  /// Compare two position objects.
-  inline bool
-  operator== (const position& pos1, const position& pos2)
-  {
-    return (pos1.line == pos2.line
-            && pos1.column == pos2.column
-            && (pos1.filename == pos2.filename
-                || (pos1.filename && pos2.filename
-                    && *pos1.filename == *pos2.filename)));
-  }
-
-  /// Compare two position objects.
-  inline bool
-  operator!= (const position& pos1, const position& pos2)
-  {
-    return !(pos1 == pos2);
-  }
-
-  /** \brief Intercept output stream redirection.
-   ** \param ostr the destination output stream
-   ** \param pos a reference to the position to redirect
-   */
-  template <typename YYChar>
-  inline std::basic_ostream<YYChar>&
-  operator<< (std::basic_ostream<YYChar>& ostr, const position& pos)
-  {
-    if (pos.filename)
-      ostr << *pos.filename << ':';
-    return ostr << pos.line << '.' << pos.column;
-  }
-
-#line 35 "d4_ce_parser.yy" // location.cc:291
-} // libdap
-#line 180 "position.hh" // location.cc:291
-#endif // !YY_YY_POSITION_HH_INCLUDED
diff --git a/d4_ce/stack.hh b/d4_ce/stack.hh
deleted file mode 100644
index 9831fcf..0000000
--- a/d4_ce/stack.hh
+++ /dev/null
@@ -1,158 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Stack handling for Bison parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file stack.hh
- ** Define the libdap::stack class.
- */
-
-#ifndef YY_YY_STACK_HH_INCLUDED
-# define YY_YY_STACK_HH_INCLUDED
-
-# include <vector>
-
-#line 35 "d4_ce_parser.yy" // stack.hh:133
-namespace libdap {
-#line 46 "stack.hh" // stack.hh:133
-  template <class T, class S = std::vector<T> >
-  class stack
-  {
-  public:
-    // Hide our reversed order.
-    typedef typename S::reverse_iterator iterator;
-    typedef typename S::const_reverse_iterator const_iterator;
-
-    stack ()
-      : seq_ ()
-    {
-    }
-
-    stack (unsigned int n)
-      : seq_ (n)
-    {
-    }
-
-    inline
-    T&
-    operator[] (unsigned int i)
-    {
-      return seq_[seq_.size () - 1 - i];
-    }
-
-    inline
-    const T&
-    operator[] (unsigned int i) const
-    {
-      return seq_[seq_.size () - 1 - i];
-    }
-
-    /// Steal the contents of \a t.
-    ///
-    /// Close to move-semantics.
-    inline
-    void
-    push (T& t)
-    {
-      seq_.push_back (T());
-      operator[](0).move (t);
-    }
-
-    inline
-    void
-    pop (unsigned int n = 1)
-    {
-      for (; n; --n)
-        seq_.pop_back ();
-    }
-
-    void
-    clear ()
-    {
-      seq_.clear ();
-    }
-
-    inline
-    typename S::size_type
-    size () const
-    {
-      return seq_.size ();
-    }
-
-    inline
-    const_iterator
-    begin () const
-    {
-      return seq_.rbegin ();
-    }
-
-    inline
-    const_iterator
-    end () const
-    {
-      return seq_.rend ();
-    }
-
-  private:
-    stack (const stack&);
-    stack& operator= (const stack&);
-    /// The wrapped container.
-    S seq_;
-  };
-
-  /// Present a slice of the top of a stack.
-  template <class T, class S = stack<T> >
-  class slice
-  {
-  public:
-    slice (const S& stack, unsigned int range)
-      : stack_ (stack)
-      , range_ (range)
-    {
-    }
-
-    inline
-    const T&
-    operator [] (unsigned int i) const
-    {
-      return stack_[range_ - i];
-    }
-
-  private:
-    const S& stack_;
-    unsigned int range_;
-  };
-
-#line 35 "d4_ce_parser.yy" // stack.hh:133
-} // libdap
-#line 157 "stack.hh" // stack.hh:133
-
-#endif // !YY_YY_STACK_HH_INCLUDED
diff --git a/d4_function/D4FunctionEvaluator.cc b/d4_function/D4FunctionEvaluator.cc
index 8bb45aa..010e6f0 100644
--- a/d4_function/D4FunctionEvaluator.cc
+++ b/d4_function/D4FunctionEvaluator.cc
@@ -115,7 +115,7 @@ void D4FunctionEvaluator::eval(DMR *function_result)
     if (ce_parser_debug) parser.set_trace_parsing(true);
     bool parse_ok = parser.parse(function);
     if (!parse_ok)
-    Error("Function Expression failed to parse.");
+    Error(malformed_expr, "Function Expression failed to parse.");
     else {
         if (ce_parser_debug) cerr << "Function Parse OK" << endl;
         D4RValueList *result = parser.result();
@@ -263,7 +263,9 @@ template std::vector<dods_float64> *D4FunctionEvaluator::init_arg_list(dods_floa
 // is inside D4FunctionEvaluator::parse(...)
 void D4FunctionEvaluator::error(const libdap::location &l, const std::string &m)
 {
-    std::cerr << l << ": " << m << std::endl;
+    ostringstream oss;
+    oss << l << ": " << m << ends;
+    throw Error(malformed_expr, oss.str());
 }
 
 } /* namespace libdap */
diff --git a/d4_function/Makefile.in b/d4_function/Makefile.in
deleted file mode 100644
index 7ad9b8f..0000000
--- a/d4_function/Makefile.in
+++ /dev/null
@@ -1,1198 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at COMPILER_IS_GCC_TRUE@am__append_1 = -Wall -W -Wcast-align
- at BUILD_DEVELOPER_TRUE@am__append_2 = $(CXXFLAGS_DEBUG)
-subdir = d4_function
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/conf/depcomp $(pkginclude_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h \
-	$(top_builddir)/dods-datatypes-config.h \
-	$(top_builddir)/xdr-datatypes-config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-libd4_function_parser_la_LIBADD =
-am_libd4_function_parser_la_OBJECTS = D4FunctionEvaluator.lo \
-	d4_function_parser.tab.lo lex.d4_function.lo
-libd4_function_parser_la_OBJECTS =  \
-	$(am_libd4_function_parser_la_OBJECTS)
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/conf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libd4_function_parser_la_SOURCES)
-DIST_SOURCES = $(libd4_function_parser_la_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(pkgincludedir)"
-HEADERS = $(pkginclude_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-AUTOMAKE_OPTIONS = foreign
-
-# Arrange to build with the backward compatibility mode enabled.
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/d4_ce -I$(srcdir) $(XML2_CFLAGS)
-AM_CXXFLAGS = $(am__append_1) $(am__append_2)
-
-# autoconf/automake includes support for yacc and lex so that the input
-# files for those compilers can be listed in a _SOURCES variable and the
-# build will just work. I had a fair amount of hassle getting that going
-# and then realized that cmake might undo all that effort. Also, the
-# changes are not local to this dir only since I'd have to edit the DAP2
-# grammars as well. I've left the edits in a comments although I'm not sure
-# it ever worked correctly. jhrg 10/21/14
-#
-# AM_YFLAGS= -d
-# AM_LFLAGS = -d
-CXXFLAGS_DEBUG = -g3 -O0 -Wall -W -Wcast-align
-TEST_COV_FLAGS = -ftest-coverage -fprofile-arcs
-noinst_LTLIBRARIES = libd4_function_parser.la
-pkginclude_HEADERS = D4FunctionEvaluator.h
-
-# This line forces make to build the grammar files first, which is
-# important because some of the cc files include the parser headers.
-BUILT_SOURCES = lex.d4_function.cc d4_function_parser.tab.cc d4_function_parser.tab.hh \
-	stack.hh location.hh position.hh
-
-libd4_function_parser_la_SOURCES = D4FunctionEvaluator.cc	\
-	D4FunctionEvaluator.h D4FunctionScanner.h	\
-	d4_function_parser.tab.cc d4_function_parser.tab.hh lex.d4_function.cc \
-	stack.hh location.hh position.hh
-
-libd4_ce_parser_la_CXXFLAGS = $(AM_CPPFLAGS)
-EXTRA_DIST = d4_function_parser.yy d4_function_scanner.ll
-DISTCLEANFILES = 
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign d4_function/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign d4_function/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLTLIBRARIES:
-	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-
-libd4_function_parser.la: $(libd4_function_parser_la_OBJECTS) $(libd4_function_parser_la_DEPENDENCIES) $(EXTRA_libd4_function_parser_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(CXXLINK)  $(libd4_function_parser_la_OBJECTS) $(libd4_function_parser_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4FunctionEvaluator.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/d4_function_parser.tab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lex.d4_function.Plo at am__quote@
-
-.cc.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-pkgincludeHEADERS: $(pkginclude_HEADERS)
-	@$(NORMAL_INSTALL)
-	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
-	done
-
-uninstall-pkgincludeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(pkgincludedir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-local \
-	clean-noinstLTLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pkgincludeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pkgincludeHEADERS
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-noinstLTLIBRARIES \
-	cscopelist-am ctags ctags-am dist-hook distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkgincludeHEADERS \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am \
-	uninstall-pkgincludeHEADERS
-
-
-.NOTPARALLEL:
-
-clean-local:
-	-rm d4_function_parser.tab.cc d4_function_parser.tab.hh lex.d4_function.cc \
-	    stack.hh position.hh location.hh
-
-%.tab.cc %.tab.hh: %.yy
-	$(YACC) $(YFLAGS) $<
-
-stack.hh location.hh position.hh: d4_function_parser.tab.cc d4_function_parser.tab.hh
-
-#d4_function_parser.tab.cc d4_function_parser.tab.hh stack.hh location.hh position.hh: d4_function_parser.yy
-#	$(YACC) $(YFLAGS) $<
-
-# See the comment in ../d4_ce
-dist-hook:
-	rm $(distdir)/lex.d4_function.cc
-
-lex.d4_function.cc: d4_function_scanner.ll d4_function_parser.tab.cc d4_function_parser.tab.hh
-	$(LEX) $(LFLAGS) $<
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/d4_function/d4_function_parser.tab.cc b/d4_function/d4_function_parser.tab.cc
deleted file mode 100644
index f84ab5a..0000000
--- a/d4_function/d4_function_parser.tab.cc
+++ /dev/null
@@ -1,2446 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Skeleton implementation for Bison LALR(1) parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-
-// First part of user declarations.
-
-#line 37 "d4_function_parser.tab.cc" // lalr1.cc:399
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-#include "d4_function_parser.tab.hh"
-
-// User implementation prologue.
-
-#line 51 "d4_function_parser.tab.cc" // lalr1.cc:407
-// Unqualified %code blocks.
-#line 77 "d4_function_parser.yy" // lalr1.cc:408
-
-    #include "BaseType.h"
-    #include "DMR.h"
-    #include "D4RValue.h"
-    #include "ServerFunctionsList.h"
-   
-    #include "parser-util.h"
-
-    /* include for all driver functions */
-    #include "D4FunctionEvaluator.h"
-
-    using namespace libdap ;
-    
-    /* this is silly, but I can't figure out a way around it */
-    static int yylex(libdap::D4FunctionParser::semantic_type *yylval,
-                     libdap::location *loc,
-                     libdap::D4FunctionScanner  &scanner,
-                     libdap::D4FunctionEvaluator   &evaluator);
-
-#line 73 "d4_function_parser.tab.cc" // lalr1.cc:408
-
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE.
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(msgid) msgid
-# endif
-#endif
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-# ifndef YYLLOC_DEFAULT
-#  define YYLLOC_DEFAULT(Current, Rhs, N)                               \
-    do                                                                  \
-      if (N)                                                            \
-        {                                                               \
-          (Current).begin  = YYRHSLOC (Rhs, 1).begin;                   \
-          (Current).end    = YYRHSLOC (Rhs, N).end;                     \
-        }                                                               \
-      else                                                              \
-        {                                                               \
-          (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;      \
-        }                                                               \
-    while (/*CONSTCOND*/ false)
-# endif
-
-
-// Suppress unused-variable warnings by "using" E.
-#define YYUSE(E) ((void) (E))
-
-// Enable debugging if requested.
-#if YYDEBUG
-
-// A pseudo ostream that takes yydebug_ into account.
-# define YYCDEBUG if (yydebug_) (*yycdebug_)
-
-# define YY_SYMBOL_PRINT(Title, Symbol)         \
-  do {                                          \
-    if (yydebug_)                               \
-    {                                           \
-      *yycdebug_ << Title << ' ';               \
-      yy_print_ (*yycdebug_, Symbol);           \
-      *yycdebug_ << std::endl;                  \
-    }                                           \
-  } while (false)
-
-# define YY_REDUCE_PRINT(Rule)          \
-  do {                                  \
-    if (yydebug_)                       \
-      yy_reduce_print_ (Rule);          \
-  } while (false)
-
-# define YY_STACK_PRINT()               \
-  do {                                  \
-    if (yydebug_)                       \
-      yystack_print_ ();                \
-  } while (false)
-
-#else // !YYDEBUG
-
-# define YYCDEBUG if (false) std::cerr
-# define YY_SYMBOL_PRINT(Title, Symbol)  YYUSE(Symbol)
-# define YY_REDUCE_PRINT(Rule)           static_cast<void>(0)
-# define YY_STACK_PRINT()                static_cast<void>(0)
-
-#endif // !YYDEBUG
-
-#define yyerrok         (yyerrstatus_ = 0)
-#define yyclearin       (yyempty = true)
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-#define YYRECOVERING()  (!!yyerrstatus_)
-
-#line 34 "d4_function_parser.yy" // lalr1.cc:474
-namespace libdap {
-#line 159 "d4_function_parser.tab.cc" // lalr1.cc:474
-
-  /* Return YYSTR after stripping away unnecessary quotes and
-     backslashes, so that it's suitable for yyerror.  The heuristic is
-     that double-quoting is unnecessary unless the string contains an
-     apostrophe, a comma, or backslash (other than backslash-backslash).
-     YYSTR is taken from yytname.  */
-  std::string
-  D4FunctionParser::yytnamerr_ (const char *yystr)
-  {
-    if (*yystr == '"')
-      {
-        std::string yyr = "";
-        char const *yyp = yystr;
-
-        for (;;)
-          switch (*++yyp)
-            {
-            case '\'':
-            case ',':
-              goto do_not_strip_quotes;
-
-            case '\\':
-              if (*++yyp != '\\')
-                goto do_not_strip_quotes;
-              // Fall through.
-            default:
-              yyr += *yyp;
-              break;
-
-            case '"':
-              return yyr;
-            }
-      do_not_strip_quotes: ;
-      }
-
-    return yystr;
-  }
-
-
-  /// Build a parser object.
-  D4FunctionParser::D4FunctionParser (D4FunctionScanner  &scanner_yyarg, D4FunctionEvaluator  &evaluator_yyarg)
-    :
-#if YYDEBUG
-      yydebug_ (false),
-      yycdebug_ (&std::cerr),
-#endif
-      scanner (scanner_yyarg),
-      evaluator (evaluator_yyarg)
-  {}
-
-  D4FunctionParser::~D4FunctionParser ()
-  {}
-
-
-  /*---------------.
-  | Symbol types.  |
-  `---------------*/
-
-  inline
-  D4FunctionParser::syntax_error::syntax_error (const location_type& l, const std::string& m)
-    : std::runtime_error (m)
-    , location (l)
-  {}
-
-  // basic_symbol.
-  template <typename Base>
-  inline
-  D4FunctionParser::basic_symbol<Base>::basic_symbol ()
-    : value ()
-  {}
-
-  template <typename Base>
-  inline
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
-    : Base (other)
-    , value ()
-    , location (other.location)
-  {
-      switch (other.type_get ())
-    {
-      case 7: // "function name"
-      case 44: // fname
-        value.copy< D4Function > (other.value);
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        value.copy< D4RValue* > (other.value);
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        value.copy< D4RValueList* > (other.value);
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        value.copy< std::string > (other.value);
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        value.copy< std::vector<dods_byte>* > (other.value);
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        value.copy< std::vector<dods_float32>* > (other.value);
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        value.copy< std::vector<dods_float64>* > (other.value);
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        value.copy< std::vector<dods_int16>* > (other.value);
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        value.copy< std::vector<dods_int32>* > (other.value);
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        value.copy< std::vector<dods_int64>* > (other.value);
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        value.copy< std::vector<dods_int8>* > (other.value);
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        value.copy< std::vector<dods_uint16>* > (other.value);
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        value.copy< std::vector<dods_uint32>* > (other.value);
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        value.copy< std::vector<dods_uint64>* > (other.value);
-        break;
-
-      default:
-        break;
-    }
-
-  }
-
-
-  template <typename Base>
-  inline
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l)
-    : Base (t)
-    , value ()
-    , location (l)
-  {
-    (void) v;
-      switch (this->type_get ())
-    {
-      case 7: // "function name"
-      case 44: // fname
-        value.copy< D4Function > (v);
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        value.copy< D4RValue* > (v);
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        value.copy< D4RValueList* > (v);
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        value.copy< std::string > (v);
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        value.copy< std::vector<dods_byte>* > (v);
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        value.copy< std::vector<dods_float32>* > (v);
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        value.copy< std::vector<dods_float64>* > (v);
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        value.copy< std::vector<dods_int16>* > (v);
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        value.copy< std::vector<dods_int32>* > (v);
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        value.copy< std::vector<dods_int64>* > (v);
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        value.copy< std::vector<dods_int8>* > (v);
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        value.copy< std::vector<dods_uint16>* > (v);
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        value.copy< std::vector<dods_uint32>* > (v);
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        value.copy< std::vector<dods_uint64>* > (v);
-        break;
-
-      default:
-        break;
-    }
-}
-
-
-  // Implementation of basic_symbol constructor for each type.
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l)
-    : Base (t)
-    , value ()
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const D4Function v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const D4RValue* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const D4RValueList* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_byte>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_float32>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_float64>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int16>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int32>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int64>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int8>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_uint16>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_uint32>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-  template <typename Base>
-  D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_uint64>* v, const location_type& l)
-    : Base (t)
-    , value (v)
-    , location (l)
-  {}
-
-
-  template <typename Base>
-  inline
-  D4FunctionParser::basic_symbol<Base>::~basic_symbol ()
-  {
-    // User destructor.
-    symbol_number_type yytype = this->type_get ();
-    switch (yytype)
-    {
-   default:
-      break;
-    }
-
-    // Type destructor.
-    switch (yytype)
-    {
-      case 7: // "function name"
-      case 44: // fname
-        value.template destroy< D4Function > ();
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        value.template destroy< D4RValue* > ();
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        value.template destroy< D4RValueList* > ();
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        value.template destroy< std::string > ();
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        value.template destroy< std::vector<dods_byte>* > ();
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        value.template destroy< std::vector<dods_float32>* > ();
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        value.template destroy< std::vector<dods_float64>* > ();
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        value.template destroy< std::vector<dods_int16>* > ();
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        value.template destroy< std::vector<dods_int32>* > ();
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        value.template destroy< std::vector<dods_int64>* > ();
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        value.template destroy< std::vector<dods_int8>* > ();
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        value.template destroy< std::vector<dods_uint16>* > ();
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        value.template destroy< std::vector<dods_uint32>* > ();
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        value.template destroy< std::vector<dods_uint64>* > ();
-        break;
-
-      default:
-        break;
-    }
-
-  }
-
-  template <typename Base>
-  inline
-  void
-  D4FunctionParser::basic_symbol<Base>::move (basic_symbol& s)
-  {
-    super_type::move(s);
-      switch (this->type_get ())
-    {
-      case 7: // "function name"
-      case 44: // fname
-        value.move< D4Function > (s.value);
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        value.move< D4RValue* > (s.value);
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        value.move< D4RValueList* > (s.value);
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        value.move< std::string > (s.value);
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        value.move< std::vector<dods_byte>* > (s.value);
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        value.move< std::vector<dods_float32>* > (s.value);
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        value.move< std::vector<dods_float64>* > (s.value);
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        value.move< std::vector<dods_int16>* > (s.value);
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        value.move< std::vector<dods_int32>* > (s.value);
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        value.move< std::vector<dods_int64>* > (s.value);
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        value.move< std::vector<dods_int8>* > (s.value);
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        value.move< std::vector<dods_uint16>* > (s.value);
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        value.move< std::vector<dods_uint32>* > (s.value);
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        value.move< std::vector<dods_uint64>* > (s.value);
-        break;
-
-      default:
-        break;
-    }
-
-    location = s.location;
-  }
-
-  // by_type.
-  inline
-  D4FunctionParser::by_type::by_type ()
-     : type (empty)
-  {}
-
-  inline
-  D4FunctionParser::by_type::by_type (const by_type& other)
-    : type (other.type)
-  {}
-
-  inline
-  D4FunctionParser::by_type::by_type (token_type t)
-    : type (yytranslate_ (t))
-  {}
-
-  inline
-  void
-  D4FunctionParser::by_type::move (by_type& that)
-  {
-    type = that.type;
-    that.type = empty;
-  }
-
-  inline
-  int
-  D4FunctionParser::by_type::type_get () const
-  {
-    return type;
-  }
-  // Implementation of make_symbol for each symbol type.
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_END (const location_type& l)
-  {
-    return symbol_type (token::END, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_WORD (const std::string& v, const location_type& l)
-  {
-    return symbol_type (token::WORD, v, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_STRING (const std::string& v, const location_type& l)
-  {
-    return symbol_type (token::STRING, v, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_SEMICOLON (const location_type& l)
-  {
-    return symbol_type (token::SEMICOLON, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_COLON (const location_type& l)
-  {
-    return symbol_type (token::COLON, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_LPAREN (const location_type& l)
-  {
-    return symbol_type (token::LPAREN, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_RPAREN (const location_type& l)
-  {
-    return symbol_type (token::RPAREN, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_COMMA (const location_type& l)
-  {
-    return symbol_type (token::COMMA, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_GROUP_SEP (const location_type& l)
-  {
-    return symbol_type (token::GROUP_SEP, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_PATH_SEP (const location_type& l)
-  {
-    return symbol_type (token::PATH_SEP, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_BYTE (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_BYTE, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_UINT8 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_UINT8, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_INT8 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_INT8, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_UINT16 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_UINT16, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_INT16 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_INT16, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_UINT32 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_UINT32, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_INT32 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_INT32, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_UINT64 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_UINT64, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_INT64 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_INT64, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_FLOAT32 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_FLOAT32, l);
-  }
-
-  D4FunctionParser::symbol_type
-  D4FunctionParser::make_DOLLAR_FLOAT64 (const location_type& l)
-  {
-    return symbol_type (token::DOLLAR_FLOAT64, l);
-  }
-
-
-
-  // by_state.
-  inline
-  D4FunctionParser::by_state::by_state ()
-    : state (empty)
-  {}
-
-  inline
-  D4FunctionParser::by_state::by_state (const by_state& other)
-    : state (other.state)
-  {}
-
-  inline
-  void
-  D4FunctionParser::by_state::move (by_state& that)
-  {
-    state = that.state;
-    that.state = empty;
-  }
-
-  inline
-  D4FunctionParser::by_state::by_state (state_type s)
-    : state (s)
-  {}
-
-  inline
-  D4FunctionParser::symbol_number_type
-  D4FunctionParser::by_state::type_get () const
-  {
-    return state == empty ? 0 : yystos_[state];
-  }
-
-  inline
-  D4FunctionParser::stack_symbol_type::stack_symbol_type ()
-  {}
-
-
-  inline
-  D4FunctionParser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
-    : super_type (s, that.location)
-  {
-      switch (that.type_get ())
-    {
-      case 7: // "function name"
-      case 44: // fname
-        value.move< D4Function > (that.value);
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        value.move< D4RValue* > (that.value);
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        value.move< D4RValueList* > (that.value);
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        value.move< std::string > (that.value);
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        value.move< std::vector<dods_byte>* > (that.value);
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        value.move< std::vector<dods_float32>* > (that.value);
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        value.move< std::vector<dods_float64>* > (that.value);
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        value.move< std::vector<dods_int16>* > (that.value);
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        value.move< std::vector<dods_int32>* > (that.value);
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        value.move< std::vector<dods_int64>* > (that.value);
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        value.move< std::vector<dods_int8>* > (that.value);
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        value.move< std::vector<dods_uint16>* > (that.value);
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        value.move< std::vector<dods_uint32>* > (that.value);
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        value.move< std::vector<dods_uint64>* > (that.value);
-        break;
-
-      default:
-        break;
-    }
-
-    // that is emptied.
-    that.type = empty;
-  }
-
-  inline
-  D4FunctionParser::stack_symbol_type&
-  D4FunctionParser::stack_symbol_type::operator= (const stack_symbol_type& that)
-  {
-    state = that.state;
-      switch (that.type_get ())
-    {
-      case 7: // "function name"
-      case 44: // fname
-        value.copy< D4Function > (that.value);
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        value.copy< D4RValue* > (that.value);
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        value.copy< D4RValueList* > (that.value);
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        value.copy< std::string > (that.value);
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        value.copy< std::vector<dods_byte>* > (that.value);
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        value.copy< std::vector<dods_float32>* > (that.value);
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        value.copy< std::vector<dods_float64>* > (that.value);
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        value.copy< std::vector<dods_int16>* > (that.value);
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        value.copy< std::vector<dods_int32>* > (that.value);
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        value.copy< std::vector<dods_int64>* > (that.value);
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        value.copy< std::vector<dods_int8>* > (that.value);
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        value.copy< std::vector<dods_uint16>* > (that.value);
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        value.copy< std::vector<dods_uint32>* > (that.value);
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        value.copy< std::vector<dods_uint64>* > (that.value);
-        break;
-
-      default:
-        break;
-    }
-
-    location = that.location;
-    return *this;
-  }
-
-
-  template <typename Base>
-  inline
-  void
-  D4FunctionParser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
-  {
-    if (yymsg)
-      YY_SYMBOL_PRINT (yymsg, yysym);
-  }
-
-#if YYDEBUG
-  template <typename Base>
-  void
-  D4FunctionParser::yy_print_ (std::ostream& yyo,
-                                     const basic_symbol<Base>& yysym) const
-  {
-    std::ostream& yyoutput = yyo;
-    YYUSE (yyoutput);
-    symbol_number_type yytype = yysym.type_get ();
-    yyo << (yytype < yyntokens_ ? "token" : "nterm")
-        << ' ' << yytname_[yytype] << " ("
-        << yysym.location << ": ";
-    YYUSE (yytype);
-    yyo << ')';
-  }
-#endif
-
-  inline
-  void
-  D4FunctionParser::yypush_ (const char* m, state_type s, symbol_type& sym)
-  {
-    stack_symbol_type t (s, sym);
-    yypush_ (m, t);
-  }
-
-  inline
-  void
-  D4FunctionParser::yypush_ (const char* m, stack_symbol_type& s)
-  {
-    if (m)
-      YY_SYMBOL_PRINT (m, s);
-    yystack_.push (s);
-  }
-
-  inline
-  void
-  D4FunctionParser::yypop_ (unsigned int n)
-  {
-    yystack_.pop (n);
-  }
-
-#if YYDEBUG
-  std::ostream&
-  D4FunctionParser::debug_stream () const
-  {
-    return *yycdebug_;
-  }
-
-  void
-  D4FunctionParser::set_debug_stream (std::ostream& o)
-  {
-    yycdebug_ = &o;
-  }
-
-
-  D4FunctionParser::debug_level_type
-  D4FunctionParser::debug_level () const
-  {
-    return yydebug_;
-  }
-
-  void
-  D4FunctionParser::set_debug_level (debug_level_type l)
-  {
-    yydebug_ = l;
-  }
-#endif // YYDEBUG
-
-  inline D4FunctionParser::state_type
-  D4FunctionParser::yy_lr_goto_state_ (state_type yystate, int yylhs)
-  {
-    int yyr = yypgoto_[yylhs - yyntokens_] + yystate;
-    if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
-      return yytable_[yyr];
-    else
-      return yydefgoto_[yylhs - yyntokens_];
-  }
-
-  inline bool
-  D4FunctionParser::yy_pact_value_is_default_ (int yyvalue)
-  {
-    return yyvalue == yypact_ninf_;
-  }
-
-  inline bool
-  D4FunctionParser::yy_table_value_is_error_ (int yyvalue)
-  {
-    return yyvalue == yytable_ninf_;
-  }
-
-  int
-  D4FunctionParser::parse ()
-  {
-    /// Whether yyla contains a lookahead.
-    bool yyempty = true;
-
-    // State.
-    int yyn;
-    int yylen = 0;
-
-    // Error handling.
-    int yynerrs_ = 0;
-    int yyerrstatus_ = 0;
-
-    /// The lookahead symbol.
-    symbol_type yyla;
-
-    /// The locations where the error started and ended.
-    stack_symbol_type yyerror_range[3];
-
-    /// $$ and @$.
-    stack_symbol_type yylhs;
-
-    /// The return value of parse ().
-    int yyresult;
-
-    // FIXME: This shoud be completely indented.  It is not yet to
-    // avoid gratuitous conflicts when merging into the master branch.
-    try
-      {
-    YYCDEBUG << "Starting parse" << std::endl;
-
-
-    // User initialization code.
-    #line 69 "d4_function_parser.yy" // lalr1.cc:727
-{
-    // Initialize the initial location. This is printed when the parser builds
-    // its own error messages - when the parse fails as opposed to when the 
-    // function(s) name(s) a missing variable, ...
-
-    yyla.location.initialize (evaluator.expression());
-}
-
-#line 1266 "d4_function_parser.tab.cc" // lalr1.cc:727
-
-    /* Initialize the stack.  The initial state will be set in
-       yynewstate, since the latter expects the semantical and the
-       location values to have been already stored, initialize these
-       stacks with a primary value.  */
-    yystack_.clear ();
-    yypush_ (YY_NULLPTR, 0, yyla);
-
-    // A new symbol was pushed on the stack.
-  yynewstate:
-    YYCDEBUG << "Entering state " << yystack_[0].state << std::endl;
-
-    // Accept?
-    if (yystack_[0].state == yyfinal_)
-      goto yyacceptlab;
-
-    goto yybackup;
-
-    // Backup.
-  yybackup:
-
-    // Try to take a decision without lookahead.
-    yyn = yypact_[yystack_[0].state];
-    if (yy_pact_value_is_default_ (yyn))
-      goto yydefault;
-
-    // Read a lookahead token.
-    if (yyempty)
-      {
-        YYCDEBUG << "Reading a token: ";
-        try
-          {
-            yyla.type = yytranslate_ (yylex (&yyla.value, &yyla.location, scanner, evaluator));
-          }
-        catch (const syntax_error& yyexc)
-          {
-            error (yyexc);
-            goto yyerrlab1;
-          }
-        yyempty = false;
-      }
-    YY_SYMBOL_PRINT ("Next token is", yyla);
-
-    /* If the proper action on seeing token YYLA.TYPE is to reduce or
-       to detect an error, take that action.  */
-    yyn += yyla.type_get ();
-    if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
-      goto yydefault;
-
-    // Reduce or error.
-    yyn = yytable_[yyn];
-    if (yyn <= 0)
-      {
-        if (yy_table_value_is_error_ (yyn))
-          goto yyerrlab;
-        yyn = -yyn;
-        goto yyreduce;
-      }
-
-    // Discard the token being shifted.
-    yyempty = true;
-
-    // Count tokens shifted since error; after three, turn off error status.
-    if (yyerrstatus_)
-      --yyerrstatus_;
-
-    // Shift the lookahead token.
-    yypush_ ("Shifting", yyn, yyla);
-    goto yynewstate;
-
-  /*-----------------------------------------------------------.
-  | yydefault -- do the default action for the current state.  |
-  `-----------------------------------------------------------*/
-  yydefault:
-    yyn = yydefact_[yystack_[0].state];
-    if (yyn == 0)
-      goto yyerrlab;
-    goto yyreduce;
-
-  /*-----------------------------.
-  | yyreduce -- Do a reduction.  |
-  `-----------------------------*/
-  yyreduce:
-    yylen = yyr2_[yyn];
-    yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]);
-    /* Variants are always initialized to an empty instance of the
-       correct type. The default $$=$1 action is NOT applied when using
-       variants.  */
-      switch (yyr1_[yyn])
-    {
-      case 7: // "function name"
-      case 44: // fname
-        yylhs.value.build< D4Function > ();
-        break;
-
-      case 5: // "argument"
-      case 6: // "function"
-      case 8: // "variable or constant"
-      case 9: // "array constant"
-      case 43: // function
-      case 46: // arg
-      case 47: // variable_or_constant
-      case 48: // array_constant
-        yylhs.value.build< D4RValue* > ();
-        break;
-
-      case 3: // "functions"
-      case 4: // "arguments"
-      case 42: // functions
-      case 45: // args
-        yylhs.value.build< D4RValueList* > ();
-        break;
-
-      case 20: // "word"
-      case 21: // "string"
-      case 60: // id
-      case 61: // group
-      case 62: // path
-      case 63: // name
-        yylhs.value.build< std::string > ();
-        break;
-
-      case 10: // "fast byte arg list"
-      case 50: // fast_byte_arg_list
-        yylhs.value.build< std::vector<dods_byte>* > ();
-        break;
-
-      case 18: // "fast float32 arg list"
-      case 58: // fast_float32_arg_list
-        yylhs.value.build< std::vector<dods_float32>* > ();
-        break;
-
-      case 19: // "fast float64 arg list"
-      case 59: // fast_float64_arg_list
-        yylhs.value.build< std::vector<dods_float64>* > ();
-        break;
-
-      case 13: // "fast int16 arg list"
-      case 53: // fast_int16_arg_list
-        yylhs.value.build< std::vector<dods_int16>* > ();
-        break;
-
-      case 15: // "fast int32 arg list"
-      case 55: // fast_int32_arg_list
-        yylhs.value.build< std::vector<dods_int32>* > ();
-        break;
-
-      case 17: // "fast int64 arg list"
-      case 57: // fast_int64_arg_list
-        yylhs.value.build< std::vector<dods_int64>* > ();
-        break;
-
-      case 11: // "fast int8 arg list"
-      case 51: // fast_int8_arg_list
-        yylhs.value.build< std::vector<dods_int8>* > ();
-        break;
-
-      case 12: // "fast uint16 arg list"
-      case 52: // fast_uint16_arg_list
-        yylhs.value.build< std::vector<dods_uint16>* > ();
-        break;
-
-      case 14: // "fast uint32 arg list"
-      case 54: // fast_uint32_arg_list
-        yylhs.value.build< std::vector<dods_uint32>* > ();
-        break;
-
-      case 16: // "fast uint64 arg list"
-      case 56: // fast_uint64_arg_list
-        yylhs.value.build< std::vector<dods_uint64>* > ();
-        break;
-
-      default:
-        break;
-    }
-
-
-    // Compute the default @$.
-    {
-      slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
-      YYLLOC_DEFAULT (yylhs.location, slice, yylen);
-    }
-
-    // Perform the reduction.
-    YY_REDUCE_PRINT (yyn);
-    try
-      {
-        switch (yyn)
-          {
-  case 2:
-#line 156 "d4_function_parser.yy" // lalr1.cc:847
-    { 
-    evaluator.set_result(yystack_[0].value.as< D4RValueList* > ()); 
-}
-#line 1461 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 3:
-#line 162 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValueList* > () = new D4RValueList(yystack_[0].value.as< D4RValue* > ()); 
-}
-#line 1469 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 4:
-#line 166 "d4_function_parser.yy" // lalr1.cc:847
-    { 
-    yystack_[2].value.as< D4RValueList* > ()->add_rvalue(yystack_[0].value.as< D4RValue* > ());
-    yylhs.value.as< D4RValueList* > () = yystack_[2].value.as< D4RValueList* > (); 
-}
-#line 1478 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 5:
-#line 173 "d4_function_parser.yy" // lalr1.cc:847
-    { 
-    yylhs.value.as< D4RValue* > () = new D4RValue(yystack_[3].value.as< D4Function > (), yystack_[1].value.as< D4RValueList* > ()); // Build a D4RValue from a D4Function pointer and a D4RValueList 
-}
-#line 1486 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 6:
-#line 179 "d4_function_parser.yy" // lalr1.cc:847
-    { 
-    D4Function f;
-    if (!evaluator.sf_list()->find_function(yystack_[0].value.as< std::string > (), &f)) {
-        // ...cloud use @1.{first,last}_column in these error messages.
-        throw Error("'" + yystack_[0].value.as< std::string > () + "' is not a registered DAP4 server function.");
-    }
-
-    yylhs.value.as< D4Function > () = f;
-}
-#line 1500 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 7:
-#line 191 "d4_function_parser.yy" // lalr1.cc:847
-    { 
-    yylhs.value.as< D4RValueList* > () = new D4RValueList(yystack_[0].value.as< D4RValue* > ()); // build a D4RValueList from the D4RValue
-}
-#line 1508 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 8:
-#line 195 "d4_function_parser.yy" // lalr1.cc:847
-    { 
-    yystack_[2].value.as< D4RValueList* > ()->add_rvalue(yystack_[0].value.as< D4RValue* > ());
-    yylhs.value.as< D4RValueList* > () = yystack_[2].value.as< D4RValueList* > (); // Append the D4RValue ($3) to the D4RValueList ($1), then return
-}
-#line 1517 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 9:
-#line 202 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = yystack_[0].value.as< D4RValue* > ();
-}
-#line 1525 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 10:
-#line 206 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = yystack_[0].value.as< D4RValue* > ();
-}
-#line 1533 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 11:
-#line 210 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = yystack_[0].value.as< D4RValue* > ();
-}
-#line 1541 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 12:
-#line 216 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    D4RValue *rvalue = evaluator.build_rvalue(yystack_[0].value.as< std::string > ());
-    if (!rvalue) {
-        throw Error("'" + yystack_[0].value.as< std::string > () + "' is not a variable, number or string.");
-    }
-    
-    yylhs.value.as< D4RValue* > () = rvalue;
-}
-#line 1554 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 13:
-#line 228 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_byte>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_byte>* > ();
-}
-#line 1563 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 14:
-#line 234 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_byte>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_byte>* > ();
-}
-#line 1572 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 15:
-#line 240 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int8>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_int8>* > ();
-}
-#line 1581 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 16:
-#line 246 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_uint16>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_uint16>* > ();
-}
-#line 1590 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 17:
-#line 252 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int16>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_int16>* > ();
-}
-#line 1599 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 18:
-#line 258 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_uint32>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_uint32>* > ();
-}
-#line 1608 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 19:
-#line 264 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int32>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_int32>* > ();
-}
-#line 1617 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 20:
-#line 270 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_uint64>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_uint64>* > ();
-}
-#line 1626 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 21:
-#line 276 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int64>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_int64>* > ();
-}
-#line 1635 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 22:
-#line 282 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_float32>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_float32>* > ();
-}
-#line 1644 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 23:
-#line 288 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_float64>* > ()));
-    delete yystack_[1].value.as< std::vector<dods_float64>* > ();
-}
-#line 1653 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 24:
-#line 300 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    evaluator.set_arg_length_hint(get_ull(yystack_[0].value.as< std::string > ().c_str()));
-}
-#line 1661 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 25:
-#line 306 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_byte>* > () = evaluator.init_arg_list(dods_byte(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1669 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 26:
-#line 310 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_byte>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_byte>* > () = yystack_[2].value.as< std::vector<dods_byte>* > ();
-}
-#line 1678 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 27:
-#line 317 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_int8>* > () = evaluator.init_arg_list(dods_int8(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1686 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 28:
-#line 321 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_int8>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_int8>* > () = yystack_[2].value.as< std::vector<dods_int8>* > ();
-}
-#line 1695 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 29:
-#line 328 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_uint16>* > () = evaluator.init_arg_list(dods_uint16(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1703 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 30:
-#line 332 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_uint16>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_uint16>* > () = yystack_[2].value.as< std::vector<dods_uint16>* > ();
-}
-#line 1712 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 31:
-#line 339 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_int16>* > () = evaluator.init_arg_list(dods_int16(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1720 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 32:
-#line 343 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_int16>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_int16>* > () = yystack_[2].value.as< std::vector<dods_int16>* > ();
-}
-#line 1729 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 33:
-#line 350 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_uint32>* > () = evaluator.init_arg_list(dods_uint32(strtoul(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1737 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 34:
-#line 354 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_uint32>* > ()->push_back(strtoul(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_uint32>* > () = yystack_[2].value.as< std::vector<dods_uint32>* > ();
-}
-#line 1746 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 35:
-#line 360 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_int32>* > () = evaluator.init_arg_list(dods_int32(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1754 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 36:
-#line 364 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_int32>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_int32>* > () = yystack_[2].value.as< std::vector<dods_int32>* > ();
-}
-#line 1763 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 37:
-#line 371 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_uint64>* > () = evaluator.init_arg_list(dods_uint64(strtoull(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1771 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 38:
-#line 375 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_uint64>* > ()->push_back(strtoull(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_uint64>* > () = yystack_[2].value.as< std::vector<dods_uint64>* > ();
-}
-#line 1780 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 39:
-#line 382 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_int64>* > () = evaluator.init_arg_list(dods_int64(strtoll(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
-}
-#line 1788 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 40:
-#line 386 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_int64>* > ()->push_back(strtoll(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
-    yylhs.value.as< std::vector<dods_int64>* > () = yystack_[2].value.as< std::vector<dods_int64>* > ();
-}
-#line 1797 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 41:
-#line 396 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_float32>* > () = evaluator.init_arg_list(dods_float32(strtof(yystack_[0].value.as< std::string > ().c_str(), 0)));
-}
-#line 1805 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 42:
-#line 400 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_float32>* > ()->push_back(strtof(yystack_[0].value.as< std::string > ().c_str(), 0));
-    yylhs.value.as< std::vector<dods_float32>* > () = yystack_[2].value.as< std::vector<dods_float32>* > ();
-}
-#line 1814 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 43:
-#line 407 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::vector<dods_float64>* > () = evaluator.init_arg_list(dods_float64(strtod(yystack_[0].value.as< std::string > ().c_str(), 0)));
-}
-#line 1822 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 44:
-#line 411 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::vector<dods_float64>* > ()->push_back(strtod(yystack_[0].value.as< std::string > ().c_str(), 0));
-    yylhs.value.as< std::vector<dods_float64>* > () = yystack_[2].value.as< std::vector<dods_float64>* > ();
-}
-#line 1831 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 45:
-#line 418 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > ();
-}
-#line 1839 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 46:
-#line 422 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ().append("/");
-    yylhs.value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-}
-#line 1848 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 47:
-#line 427 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::string > ().append("/");
-    yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-    yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
-}
-#line 1858 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 48:
-#line 435 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ().append("/");
-    yylhs.value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-}
-#line 1867 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 49:
-#line 440 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::string > ().append(".");
-    yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-    yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
-}
-#line 1877 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 50:
-#line 448 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > ();
-}
-#line 1885 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 51:
-#line 452 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yystack_[2].value.as< std::string > ().append(".");
-    yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
-    yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
-}
-#line 1895 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 52:
-#line 463 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ()=yystack_[0].value.as< std::string > ();
-}
-#line 1903 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-  case 53:
-#line 467 "d4_function_parser.yy" // lalr1.cc:847
-    {
-    yylhs.value.as< std::string > ()=yystack_[0].value.as< std::string > ();
-}
-#line 1911 "d4_function_parser.tab.cc" // lalr1.cc:847
-    break;
-
-
-#line 1915 "d4_function_parser.tab.cc" // lalr1.cc:847
-          default:
-            break;
-          }
-      }
-    catch (const syntax_error& yyexc)
-      {
-        error (yyexc);
-        YYERROR;
-      }
-    YY_SYMBOL_PRINT ("-> $$ =", yylhs);
-    yypop_ (yylen);
-    yylen = 0;
-    YY_STACK_PRINT ();
-
-    // Shift the result of the reduction.
-    yypush_ (YY_NULLPTR, yylhs);
-    goto yynewstate;
-
-  /*--------------------------------------.
-  | yyerrlab -- here on detecting error.  |
-  `--------------------------------------*/
-  yyerrlab:
-    // If not already recovering from an error, report this error.
-    if (!yyerrstatus_)
-      {
-        ++yynerrs_;
-        error (yyla.location, yysyntax_error_ (yystack_[0].state,
-                                           yyempty ? yyempty_ : yyla.type_get ()));
-      }
-
-
-    yyerror_range[1].location = yyla.location;
-    if (yyerrstatus_ == 3)
-      {
-        /* If just tried and failed to reuse lookahead token after an
-           error, discard it.  */
-
-        // Return failure if at end of input.
-        if (yyla.type_get () == yyeof_)
-          YYABORT;
-        else if (!yyempty)
-          {
-            yy_destroy_ ("Error: discarding", yyla);
-            yyempty = true;
-          }
-      }
-
-    // Else will try to reuse lookahead token after shifting the error token.
-    goto yyerrlab1;
-
-
-  /*---------------------------------------------------.
-  | yyerrorlab -- error raised explicitly by YYERROR.  |
-  `---------------------------------------------------*/
-  yyerrorlab:
-
-    /* Pacify compilers like GCC when the user code never invokes
-       YYERROR and the label yyerrorlab therefore never appears in user
-       code.  */
-    if (false)
-      goto yyerrorlab;
-    yyerror_range[1].location = yystack_[yylen - 1].location;
-    /* $$ was initialized before running the user action.  */
-    YY_SYMBOL_PRINT ("Error: discarding", yylhs);
-    yylhs.~stack_symbol_type();
-    /* Do not reclaim the symbols of the rule whose action triggered
-       this YYERROR.  */
-    yypop_ (yylen);
-    yylen = 0;
-    goto yyerrlab1;
-
-  /*-------------------------------------------------------------.
-  | yyerrlab1 -- common code for both syntax error and YYERROR.  |
-  `-------------------------------------------------------------*/
-  yyerrlab1:
-    yyerrstatus_ = 3;   // Each real token shifted decrements this.
-    {
-      stack_symbol_type error_token;
-      for (;;)
-        {
-          yyn = yypact_[yystack_[0].state];
-          if (!yy_pact_value_is_default_ (yyn))
-            {
-              yyn += yyterror_;
-              if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
-                {
-                  yyn = yytable_[yyn];
-                  if (0 < yyn)
-                    break;
-                }
-            }
-
-          // Pop the current state because it cannot handle the error token.
-          if (yystack_.size () == 1)
-            YYABORT;
-
-          yyerror_range[1].location = yystack_[0].location;
-          yy_destroy_ ("Error: popping", yystack_[0]);
-          yypop_ ();
-          YY_STACK_PRINT ();
-        }
-
-      yyerror_range[2].location = yyla.location;
-      YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);
-
-      // Shift the error token.
-      error_token.state = yyn;
-      yypush_ ("Shifting", error_token);
-    }
-    goto yynewstate;
-
-    // Accept.
-  yyacceptlab:
-    yyresult = 0;
-    goto yyreturn;
-
-    // Abort.
-  yyabortlab:
-    yyresult = 1;
-    goto yyreturn;
-
-  yyreturn:
-    if (!yyempty)
-      yy_destroy_ ("Cleanup: discarding lookahead", yyla);
-
-    /* Do not reclaim the symbols of the rule whose action triggered
-       this YYABORT or YYACCEPT.  */
-    yypop_ (yylen);
-    while (1 < yystack_.size ())
-      {
-        yy_destroy_ ("Cleanup: popping", yystack_[0]);
-        yypop_ ();
-      }
-
-    return yyresult;
-  }
-    catch (...)
-      {
-        YYCDEBUG << "Exception caught: cleaning lookahead and stack"
-                 << std::endl;
-        // Do not try to display the values of the reclaimed symbols,
-        // as their printer might throw an exception.
-        if (!yyempty)
-          yy_destroy_ (YY_NULLPTR, yyla);
-
-        while (1 < yystack_.size ())
-          {
-            yy_destroy_ (YY_NULLPTR, yystack_[0]);
-            yypop_ ();
-          }
-        throw;
-      }
-  }
-
-  void
-  D4FunctionParser::error (const syntax_error& yyexc)
-  {
-    error (yyexc.location, yyexc.what());
-  }
-
-  // Generate an error message.
-  std::string
-  D4FunctionParser::yysyntax_error_ (state_type yystate, symbol_number_type yytoken) const
-  {
-    std::string yyres;
-    // Number of reported tokens (one for the "unexpected", one per
-    // "expected").
-    size_t yycount = 0;
-    // Its maximum.
-    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-    // Arguments of yyformat.
-    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-
-    /* There are many possibilities here to consider:
-       - If this state is a consistent state with a default action, then
-         the only way this function was invoked is if the default action
-         is an error action.  In that case, don't check for expected
-         tokens because there are none.
-       - The only way there can be no lookahead present (in yytoken) is
-         if this state is a consistent state with a default action.
-         Thus, detecting the absence of a lookahead is sufficient to
-         determine that there is no unexpected or expected token to
-         report.  In that case, just report a simple "syntax error".
-       - Don't assume there isn't a lookahead just because this state is
-         a consistent state with a default action.  There might have
-         been a previous inconsistent state, consistent state with a
-         non-default action, or user semantic action that manipulated
-         yyla.  (However, yyla is currently not documented for users.)
-       - Of course, the expected token list depends on states to have
-         correct lookahead information, and it depends on the parser not
-         to perform extra reductions after fetching a lookahead from the
-         scanner and before detecting a syntax error.  Thus, state
-         merging (from LALR or IELR) and default reductions corrupt the
-         expected token list.  However, the list is correct for
-         canonical LR with one exception: it will still contain any
-         token that will not be accepted due to an error action in a
-         later state.
-    */
-    if (yytoken != yyempty_)
-      {
-        yyarg[yycount++] = yytname_[yytoken];
-        int yyn = yypact_[yystate];
-        if (!yy_pact_value_is_default_ (yyn))
-          {
-            /* Start YYX at -YYN if negative to avoid negative indexes in
-               YYCHECK.  In other words, skip the first -YYN actions for
-               this state because they are default actions.  */
-            int yyxbegin = yyn < 0 ? -yyn : 0;
-            // Stay within bounds of both yycheck and yytname.
-            int yychecklim = yylast_ - yyn + 1;
-            int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
-            for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
-              if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
-                  && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
-                {
-                  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                    {
-                      yycount = 1;
-                      break;
-                    }
-                  else
-                    yyarg[yycount++] = yytname_[yyx];
-                }
-          }
-      }
-
-    char const* yyformat = YY_NULLPTR;
-    switch (yycount)
-      {
-#define YYCASE_(N, S)                         \
-        case N:                               \
-          yyformat = S;                       \
-        break
-        YYCASE_(0, YY_("syntax error"));
-        YYCASE_(1, YY_("syntax error, unexpected %s"));
-        YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-        YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-        YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-        YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-#undef YYCASE_
-      }
-
-    // Argument number.
-    size_t yyi = 0;
-    for (char const* yyp = yyformat; *yyp; ++yyp)
-      if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
-        {
-          yyres += yytnamerr_ (yyarg[yyi++]);
-          ++yyp;
-        }
-      else
-        yyres += *yyp;
-    return yyres;
-  }
-
-
-  const signed char D4FunctionParser::yypact_ninf_ = -20;
-
-  const signed char D4FunctionParser::yytable_ninf_ = -50;
-
-  const signed char
-  D4FunctionParser::yypact_[] =
-  {
-     -10,   -20,     8,    10,   -20,    12,   -20,   -10,   -18,   -20,
-      37,   -20,   -16,    38,    39,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,   -20,   -19,   -20,   -20,   -20,   -20,
-      51,    52,   -20,   -20,    52,    54,    55,    55,    55,    55,
-      55,    55,    55,    55,    55,    55,    55,   -20,   -18,   -16,
-     -16,   -20,    53,    56,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,   -20,    52,    68,   -20,    57,    57,    71,
-      72,    73,    74,    76,    77,    78,   -16,   -16,   -20,     9,
-      16,   -20,    18,   -20,    20,   -20,    22,   -20,    24,   -20,
-      26,   -20,    28,   -20,    30,    32,    52,    34,    52,   -20,
-      79,   -20,   -20,    80,   -20,    81,   -20,    82,   -20,    83,
-     -20,    84,   -20,    86,   -20,    88,   -20,   -16,   -20,   -16,
-     -20,   -20,   -20,   -20,   -20,   -20,   -20,   -20,    52,    52
-  };
-
-  const unsigned char
-  D4FunctionParser::yydefact_[] =
-  {
-       0,     6,     0,     2,     3,     0,     1,     0,     0,     4,
-      52,    53,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     9,     0,     7,    10,    11,    12,
-       0,    45,    50,    52,    46,    50,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     5,     0,     0,
-       0,    24,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     8,    47,    50,    51,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
-       0,    27,     0,    29,     0,    31,     0,    33,     0,    35,
-       0,    37,     0,    39,     0,     0,    41,     0,    43,    13,
-       0,    14,    15,     0,    16,     0,    17,     0,    18,     0,
-      19,     0,    20,     0,    21,     0,    22,     0,    23,     0,
-      26,    28,    30,    32,    34,    36,    38,    40,    42,    44
-  };
-
-  const signed char
-  D4FunctionParser::yypgoto_[] =
-  {
-     -20,   -20,   -20,    33,   -20,   -20,    69,   -20,   -20,   -15,
-      41,   -20,   -20,   -20,   -20,   -20,   -20,   -20,   -20,   -20,
-     -20,   -20,   -12,   -11
-  };
-
-  const signed char
-  D4FunctionParser::yydefgoto_[] =
-  {
-      -1,     2,     3,    24,     5,    25,    26,    27,    28,    52,
-      79,    82,    84,    86,    88,    90,    92,    94,    95,    97,
-      29,    30,    31,    32
-  };
-
-  const short int
-  D4FunctionParser::yytable_[] =
-  {
-      34,    35,    10,    11,    33,    11,    47,    48,     6,    12,
-       1,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,     7,     4,    99,   100,     8,    64,    65,    66,
-       9,   101,   100,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,    -6,    36,    37,    96,    98,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    51,    67,    78,    49,    68,
-      50,   -48,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    81,    83,    85,    87,   -49,    89,    91,    93,   120,
-     121,   122,   123,   124,   125,   128,   126,   129,   127,    80,
-       0,     0,     0,     0,     0,     0,     0,    63
-  };
-
-  const signed char
-  D4FunctionParser::yycheck_[] =
-  {
-      12,    12,    20,    21,    20,    21,    25,    26,     0,    27,
-      20,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    22,     0,    25,    26,    24,    49,    49,    50,
-       7,    25,    26,    25,    26,    25,    26,    25,    26,    25,
-      26,    25,    26,    25,    26,    25,    26,    25,    26,    25,
-      26,    24,    24,    24,    76,    77,    24,    24,    24,    24,
-      24,    24,    24,    24,    24,    20,    23,    20,    27,    23,
-      28,    27,    23,    23,    23,    23,    23,    23,    23,    23,
-      23,    20,    20,    20,    20,    27,    20,    20,    20,    20,
-      20,    20,    20,    20,    20,   117,    20,   119,    20,    68,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    48
-  };
-
-  const unsigned char
-  D4FunctionParser::yystos_[] =
-  {
-       0,    20,    41,    42,    43,    44,     0,    22,    24,    43,
-      20,    21,    27,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    43,    45,    46,    47,    48,    60,
-      61,    62,    63,    20,    62,    63,    24,    24,    24,    24,
-      24,    24,    24,    24,    24,    24,    24,    25,    26,    27,
-      28,    20,    49,    49,    49,    49,    49,    49,    49,    49,
-      49,    49,    49,    46,    62,    63,    63,    23,    23,    23,
-      23,    23,    23,    23,    23,    23,    23,    23,    20,    50,
-      50,    20,    51,    20,    52,    20,    53,    20,    54,    20,
-      55,    20,    56,    20,    57,    58,    62,    59,    62,    25,
-      26,    25,    25,    26,    25,    26,    25,    26,    25,    26,
-      25,    26,    25,    26,    25,    26,    25,    26,    25,    26,
-      20,    20,    20,    20,    20,    20,    20,    20,    62,    62
-  };
-
-  const unsigned char
-  D4FunctionParser::yyr1_[] =
-  {
-       0,    40,    41,    42,    42,    43,    44,    45,    45,    46,
-      46,    46,    47,    48,    48,    48,    48,    48,    48,    48,
-      48,    48,    48,    48,    49,    50,    50,    51,    51,    52,
-      52,    53,    53,    54,    54,    55,    55,    56,    56,    57,
-      57,    58,    58,    59,    59,    60,    60,    60,    61,    61,
-      62,    62,    63,    63
-  };
-
-  const unsigned char
-  D4FunctionParser::yyr2_[] =
-  {
-       0,     2,     1,     1,     3,     4,     1,     1,     3,     1,
-       1,     1,     1,     6,     6,     6,     6,     6,     6,     6,
-       6,     6,     6,     6,     1,     1,     3,     1,     3,     1,
-       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
-       3,     1,     3,     1,     3,     1,     2,     3,     2,     3,
-       1,     3,     1,     1
-  };
-
-
-
-  // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-  // First, the terminals, then, starting at \a yyntokens_, nonterminals.
-  const char*
-  const D4FunctionParser::yytname_[] =
-  {
-  "\"end of file\"", "error", "$undefined", "\"functions\"",
-  "\"arguments\"", "\"argument\"", "\"function\"", "\"function name\"",
-  "\"variable or constant\"", "\"array constant\"",
-  "\"fast byte arg list\"", "\"fast int8 arg list\"",
-  "\"fast uint16 arg list\"", "\"fast int16 arg list\"",
-  "\"fast uint32 arg list\"", "\"fast int32 arg list\"",
-  "\"fast uint64 arg list\"", "\"fast int64 arg list\"",
-  "\"fast float32 arg list\"", "\"fast float64 arg list\"", "\"word\"",
-  "\"string\"", "\";\"", "\":\"", "\"(\"", "\")\"", "\",\"", "\"/\"",
-  "\".\"", "\"$Byte\"", "\"$UInt8\"", "\"$Int8\"", "\"$UInt16\"",
-  "\"$Int16\"", "\"$UInt32\"", "\"$Int32\"", "\"$UInt64\"", "\"$Int64\"",
-  "\"$Float32\"", "\"$Float64\"", "$accept", "program", "functions",
-  "function", "fname", "args", "arg", "variable_or_constant",
-  "array_constant", "arg_length_hint", "fast_byte_arg_list",
-  "fast_int8_arg_list", "fast_uint16_arg_list", "fast_int16_arg_list",
-  "fast_uint32_arg_list", "fast_int32_arg_list", "fast_uint64_arg_list",
-  "fast_int64_arg_list", "fast_float32_arg_list", "fast_float64_arg_list",
-  "id", "group", "path", "name", YY_NULLPTR
-  };
-
-#if YYDEBUG
-  const unsigned short int
-  D4FunctionParser::yyrline_[] =
-  {
-       0,   155,   155,   161,   165,   172,   178,   190,   194,   201,
-     205,   209,   215,   227,   233,   239,   245,   251,   257,   263,
-     269,   275,   281,   287,   299,   305,   309,   316,   320,   327,
-     331,   338,   342,   349,   353,   359,   363,   370,   374,   381,
-     385,   395,   399,   406,   410,   417,   421,   426,   434,   439,
-     447,   451,   462,   466
-  };
-
-  // Print the state stack on the debug stream.
-  void
-  D4FunctionParser::yystack_print_ ()
-  {
-    *yycdebug_ << "Stack now";
-    for (stack_type::const_iterator
-           i = yystack_.begin (),
-           i_end = yystack_.end ();
-         i != i_end; ++i)
-      *yycdebug_ << ' ' << i->state;
-    *yycdebug_ << std::endl;
-  }
-
-  // Report on the debug stream that the rule \a yyrule is going to be reduced.
-  void
-  D4FunctionParser::yy_reduce_print_ (int yyrule)
-  {
-    unsigned int yylno = yyrline_[yyrule];
-    int yynrhs = yyr2_[yyrule];
-    // Print the symbols being reduced, and their result.
-    *yycdebug_ << "Reducing stack by rule " << yyrule - 1
-               << " (line " << yylno << "):" << std::endl;
-    // The symbols being reduced.
-    for (int yyi = 0; yyi < yynrhs; yyi++)
-      YY_SYMBOL_PRINT ("   $" << yyi + 1 << " =",
-                       yystack_[(yynrhs) - (yyi + 1)]);
-  }
-#endif // YYDEBUG
-
-  // Symbol number corresponding to token number t.
-  inline
-  D4FunctionParser::token_number_type
-  D4FunctionParser::yytranslate_ (int t)
-  {
-    static
-    const token_number_type
-    translate_table[] =
-    {
-     0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39
-    };
-    const unsigned int user_token_number_max_ = 294;
-    const token_number_type undef_token_ = 2;
-
-    if (static_cast<int>(t) <= yyeof_)
-      return yyeof_;
-    else if (static_cast<unsigned int> (t) <= user_token_number_max_)
-      return translate_table[t];
-    else
-      return undef_token_;
-  }
-
-#line 34 "d4_function_parser.yy" // lalr1.cc:1157
-} // libdap
-#line 2423 "d4_function_parser.tab.cc" // lalr1.cc:1157
-#line 472 "d4_function_parser.yy" // lalr1.cc:1158
-
-
-// Forward the error to the driver for handling. The location parameter
-// provides the line number and character position of the error.
-void
-libdap::D4FunctionParser::error(const location_type &l, const std::string &m)
-{
-    evaluator.error(l, m);
-}
-
-/* include for access to scanner.yylex */
-#include "D4FunctionScanner.h"
-
-static int yylex(libdap::D4FunctionParser::semantic_type *yylval,
-                 libdap::location *loc,
-                 libdap::D4FunctionScanner &scanner,
-                 libdap::D4FunctionEvaluator &evaluator)
-{
-    if (evaluator.trace_scanning())
-        scanner.set_debug(true);
-    
-    return( scanner.yylex(yylval, loc) );
-}
diff --git a/d4_function/d4_function_parser.tab.hh b/d4_function/d4_function_parser.tab.hh
deleted file mode 100644
index d716420..0000000
--- a/d4_function/d4_function_parser.tab.hh
+++ /dev/null
@@ -1,835 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Skeleton interface for Bison LALR(1) parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file d4_function_parser.tab.hh
- ** Define the libdap::parser class.
- */
-
-// C++ LALR(1) parser skeleton written by Akim Demaille.
-
-#ifndef YY_YY_D4_FUNCTION_PARSER_TAB_HH_INCLUDED
-# define YY_YY_D4_FUNCTION_PARSER_TAB_HH_INCLUDED
-// //                    "%code requires" blocks.
-#line 47 "d4_function_parser.yy" // lalr1.cc:372
-
-
-#include "D4FunctionEvaluator.h"
-#include "D4RValue.h"
-#include "dods-datatypes.h"
-
-namespace libdap {
-    class D4FunctionScanner;
-}
-
-
-#line 56 "d4_function_parser.tab.hh" // lalr1.cc:372
-
-# include <cassert>
-# include <vector>
-# include <iostream>
-# include <stdexcept>
-# include <string>
-# include "stack.hh"
-# include "location.hh"
-#include <typeinfo>
-#ifndef YYASSERT
-# include <cassert>
-# define YYASSERT assert
-#endif
-
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
-#line 34 "d4_function_parser.yy" // lalr1.cc:372
-namespace libdap {
-#line 132 "d4_function_parser.tab.hh" // lalr1.cc:372
-
-
-
-  /// A char[S] buffer to store and retrieve objects.
-  ///
-  /// Sort of a variant, but does not keep track of the nature
-  /// of the stored data, since that knowledge is available
-  /// via the current state.
-  template <size_t S>
-  struct variant
-  {
-    /// Type of *this.
-    typedef variant<S> self_type;
-
-    /// Empty construction.
-    variant ()
-      : yytname_ (YY_NULLPTR)
-    {}
-
-    /// Construct and fill.
-    template <typename T>
-    variant (const T& t)
-      : yytname_ (typeid (T).name ())
-    {
-      YYASSERT (sizeof (T) <= S);
-      new (yyas_<T> ()) T (t);
-    }
-
-    /// Destruction, allowed only if empty.
-    ~variant ()
-    {
-      YYASSERT (!yytname_);
-    }
-
-    /// Instantiate an empty \a T in here.
-    template <typename T>
-    T&
-    build ()
-    {
-      YYASSERT (!yytname_);
-      YYASSERT (sizeof (T) <= S);
-      yytname_ = typeid (T).name ();
-      return *new (yyas_<T> ()) T;
-    }
-
-    /// Instantiate a \a T in here from \a t.
-    template <typename T>
-    T&
-    build (const T& t)
-    {
-      YYASSERT (!yytname_);
-      YYASSERT (sizeof (T) <= S);
-      yytname_ = typeid (T).name ();
-      return *new (yyas_<T> ()) T (t);
-    }
-
-    /// Accessor to a built \a T.
-    template <typename T>
-    T&
-    as ()
-    {
-      YYASSERT (yytname_ == typeid (T).name ());
-      YYASSERT (sizeof (T) <= S);
-      return *yyas_<T> ();
-    }
-
-    /// Const accessor to a built \a T (for %printer).
-    template <typename T>
-    const T&
-    as () const
-    {
-      YYASSERT (yytname_ == typeid (T).name ());
-      YYASSERT (sizeof (T) <= S);
-      return *yyas_<T> ();
-    }
-
-    /// Swap the content with \a other, of same type.
-    ///
-    /// Both variants must be built beforehand, because swapping the actual
-    /// data requires reading it (with as()), and this is not possible on
-    /// unconstructed variants: it would require some dynamic testing, which
-    /// should not be the variant's responsability.
-    /// Swapping between built and (possibly) non-built is done with
-    /// variant::move ().
-    template <typename T>
-    void
-    swap (self_type& other)
-    {
-      YYASSERT (yytname_);
-      YYASSERT (yytname_ == other.yytname_);
-      std::swap (as<T> (), other.as<T> ());
-    }
-
-    /// Move the content of \a other to this.
-    ///
-    /// Destroys \a other.
-    template <typename T>
-    void
-    move (self_type& other)
-    {
-      build<T> ();
-      swap<T> (other);
-      other.destroy<T> ();
-    }
-
-    /// Copy the content of \a other to this.
-    template <typename T>
-    void
-    copy (const self_type& other)
-    {
-      build<T> (other.as<T> ());
-    }
-
-    /// Destroy the stored \a T.
-    template <typename T>
-    void
-    destroy ()
-    {
-      as<T> ().~T ();
-      yytname_ = YY_NULLPTR;
-    }
-
-  private:
-    /// Prohibit blind copies.
-    self_type& operator=(const self_type&);
-    variant (const self_type&);
-
-    /// Accessor to raw memory as \a T.
-    template <typename T>
-    T*
-    yyas_ ()
-    {
-      void *yyp = yybuffer_.yyraw;
-      return static_cast<T*> (yyp);
-     }
-
-    /// Const accessor to raw memory as \a T.
-    template <typename T>
-    const T*
-    yyas_ () const
-    {
-      const void *yyp = yybuffer_.yyraw;
-      return static_cast<const T*> (yyp);
-     }
-
-    union
-    {
-      /// Strongest alignment constraints.
-      long double yyalign_me;
-      /// A buffer large enough to store any of the semantic values.
-      char yyraw[S];
-    } yybuffer_;
-
-    /// Whether the content is built: if defined, the name of the stored type.
-    const char *yytname_;
-  };
-
-
-  /// A Bison parser.
-  class D4FunctionParser
-  {
-  public:
-#ifndef YYSTYPE
-    /// An auxiliary type to compute the largest semantic type.
-    union union_type
-    {
-      // "function name"
-      // fname
-      char dummy1[sizeof(D4Function)];
-
-      // "argument"
-      // "function"
-      // "variable or constant"
-      // "array constant"
-      // function
-      // arg
-      // variable_or_constant
-      // array_constant
-      char dummy2[sizeof(D4RValue*)];
-
-      // "functions"
-      // "arguments"
-      // functions
-      // args
-      char dummy3[sizeof(D4RValueList*)];
-
-      // "word"
-      // "string"
-      // id
-      // group
-      // path
-      // name
-      char dummy4[sizeof(std::string)];
-
-      // "fast byte arg list"
-      // fast_byte_arg_list
-      char dummy5[sizeof(std::vector<dods_byte>*)];
-
-      // "fast float32 arg list"
-      // fast_float32_arg_list
-      char dummy6[sizeof(std::vector<dods_float32>*)];
-
-      // "fast float64 arg list"
-      // fast_float64_arg_list
-      char dummy7[sizeof(std::vector<dods_float64>*)];
-
-      // "fast int16 arg list"
-      // fast_int16_arg_list
-      char dummy8[sizeof(std::vector<dods_int16>*)];
-
-      // "fast int32 arg list"
-      // fast_int32_arg_list
-      char dummy9[sizeof(std::vector<dods_int32>*)];
-
-      // "fast int64 arg list"
-      // fast_int64_arg_list
-      char dummy10[sizeof(std::vector<dods_int64>*)];
-
-      // "fast int8 arg list"
-      // fast_int8_arg_list
-      char dummy11[sizeof(std::vector<dods_int8>*)];
-
-      // "fast uint16 arg list"
-      // fast_uint16_arg_list
-      char dummy12[sizeof(std::vector<dods_uint16>*)];
-
-      // "fast uint32 arg list"
-      // fast_uint32_arg_list
-      char dummy13[sizeof(std::vector<dods_uint32>*)];
-
-      // "fast uint64 arg list"
-      // fast_uint64_arg_list
-      char dummy14[sizeof(std::vector<dods_uint64>*)];
-};
-
-    /// Symbol semantic values.
-    typedef variant<sizeof(union_type)> semantic_type;
-#else
-    typedef YYSTYPE semantic_type;
-#endif
-    /// Symbol locations.
-    typedef location location_type;
-
-    /// Syntax errors thrown from user actions.
-    struct syntax_error : std::runtime_error
-    {
-      syntax_error (const location_type& l, const std::string& m);
-      location_type location;
-    };
-
-    /// Tokens.
-    struct token
-    {
-      enum yytokentype
-      {
-        END = 0,
-        WORD = 275,
-        STRING = 276,
-        SEMICOLON = 277,
-        COLON = 278,
-        LPAREN = 279,
-        RPAREN = 280,
-        COMMA = 281,
-        GROUP_SEP = 282,
-        PATH_SEP = 283,
-        DOLLAR_BYTE = 284,
-        DOLLAR_UINT8 = 285,
-        DOLLAR_INT8 = 286,
-        DOLLAR_UINT16 = 287,
-        DOLLAR_INT16 = 288,
-        DOLLAR_UINT32 = 289,
-        DOLLAR_INT32 = 290,
-        DOLLAR_UINT64 = 291,
-        DOLLAR_INT64 = 292,
-        DOLLAR_FLOAT32 = 293,
-        DOLLAR_FLOAT64 = 294
-      };
-    };
-
-    /// (External) token type, as returned by yylex.
-    typedef token::yytokentype token_type;
-
-    /// Internal symbol number.
-    typedef int symbol_number_type;
-
-    /// Internal symbol number for tokens (subsumed by symbol_number_type).
-    typedef unsigned char token_number_type;
-
-    /// A complete symbol.
-    ///
-    /// Expects its Base type to provide access to the symbol type
-    /// via type_get().
-    ///
-    /// Provide access to semantic value and location.
-    template <typename Base>
-    struct basic_symbol : Base
-    {
-      /// Alias to Base.
-      typedef Base super_type;
-
-      /// Default constructor.
-      basic_symbol ();
-
-      /// Copy constructor.
-      basic_symbol (const basic_symbol& other);
-
-      /// Constructor for valueless symbols, and symbols from each type.
-
-  basic_symbol (typename Base::kind_type t, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const D4Function v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const D4RValue* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const D4RValueList* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_byte>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_float32>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_float64>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_int16>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_int32>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_int64>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_int8>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_uint16>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_uint32>* v, const location_type& l);
-
-  basic_symbol (typename Base::kind_type t, const std::vector<dods_uint64>* v, const location_type& l);
-
-
-      /// Constructor for symbols with semantic value.
-      basic_symbol (typename Base::kind_type t,
-                    const semantic_type& v,
-                    const location_type& l);
-
-      ~basic_symbol ();
-
-      /// Destructive move, \a s is emptied into this.
-      void move (basic_symbol& s);
-
-      /// The semantic value.
-      semantic_type value;
-
-      /// The location.
-      location_type location;
-
-    private:
-      /// Assignment operator.
-      basic_symbol& operator= (const basic_symbol& other);
-    };
-
-    /// Type access provider for token (enum) based symbols.
-    struct by_type
-    {
-      /// Default constructor.
-      by_type ();
-
-      /// Copy constructor.
-      by_type (const by_type& other);
-
-      /// The symbol type as needed by the constructor.
-      typedef token_type kind_type;
-
-      /// Constructor from (external) token numbers.
-      by_type (kind_type t);
-
-      /// Steal the symbol type from \a that.
-      void move (by_type& that);
-
-      /// The (internal) type number (corresponding to \a type).
-      /// -1 when this symbol is empty.
-      symbol_number_type type_get () const;
-
-      /// The token.
-      token_type token () const;
-
-      enum { empty = 0 };
-
-      /// The symbol type.
-      /// -1 when this symbol is empty.
-      token_number_type type;
-    };
-
-    /// "External" symbols: returned by the scanner.
-    typedef basic_symbol<by_type> symbol_type;
-
-    // Symbol constructors declarations.
-    static inline
-    symbol_type
-    make_END (const location_type& l);
-
-    static inline
-    symbol_type
-    make_WORD (const std::string& v, const location_type& l);
-
-    static inline
-    symbol_type
-    make_STRING (const std::string& v, const location_type& l);
-
-    static inline
-    symbol_type
-    make_SEMICOLON (const location_type& l);
-
-    static inline
-    symbol_type
-    make_COLON (const location_type& l);
-
-    static inline
-    symbol_type
-    make_LPAREN (const location_type& l);
-
-    static inline
-    symbol_type
-    make_RPAREN (const location_type& l);
-
-    static inline
-    symbol_type
-    make_COMMA (const location_type& l);
-
-    static inline
-    symbol_type
-    make_GROUP_SEP (const location_type& l);
-
-    static inline
-    symbol_type
-    make_PATH_SEP (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_BYTE (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_UINT8 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_INT8 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_UINT16 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_INT16 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_UINT32 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_INT32 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_UINT64 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_INT64 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_FLOAT32 (const location_type& l);
-
-    static inline
-    symbol_type
-    make_DOLLAR_FLOAT64 (const location_type& l);
-
-
-    /// Build a parser object.
-    D4FunctionParser (D4FunctionScanner  &scanner_yyarg, D4FunctionEvaluator  &evaluator_yyarg);
-    virtual ~D4FunctionParser ();
-
-    /// Parse.
-    /// \returns  0 iff parsing succeeded.
-    virtual int parse ();
-
-#if YYDEBUG
-    /// The current debugging stream.
-    std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
-    /// Set the current debugging stream.
-    void set_debug_stream (std::ostream &);
-
-    /// Type for debugging levels.
-    typedef int debug_level_type;
-    /// The current debugging level.
-    debug_level_type debug_level () const YY_ATTRIBUTE_PURE;
-    /// Set the current debugging level.
-    void set_debug_level (debug_level_type l);
-#endif
-
-    /// Report a syntax error.
-    /// \param loc    where the syntax error is found.
-    /// \param msg    a description of the syntax error.
-    virtual void error (const location_type& loc, const std::string& msg);
-
-    /// Report a syntax error.
-    void error (const syntax_error& err);
-
-  private:
-    /// This class is not copyable.
-    D4FunctionParser (const D4FunctionParser&);
-    D4FunctionParser& operator= (const D4FunctionParser&);
-
-    /// State numbers.
-    typedef int state_type;
-
-    /// Generate an error message.
-    /// \param yystate   the state where the error occurred.
-    /// \param yytoken   the lookahead token type, or yyempty_.
-    virtual std::string yysyntax_error_ (state_type yystate,
-                                         symbol_number_type yytoken) const;
-
-    /// Compute post-reduction state.
-    /// \param yystate   the current state
-    /// \param yylhs     the nonterminal to push on the stack
-    state_type yy_lr_goto_state_ (state_type yystate, int yylhs);
-
-    /// Whether the given \c yypact_ value indicates a defaulted state.
-    /// \param yyvalue   the value to check
-    static bool yy_pact_value_is_default_ (int yyvalue);
-
-    /// Whether the given \c yytable_ value indicates a syntax error.
-    /// \param yyvalue   the value to check
-    static bool yy_table_value_is_error_ (int yyvalue);
-
-    static const signed char yypact_ninf_;
-    static const signed char yytable_ninf_;
-
-    /// Convert a scanner token number \a t to a symbol number.
-    static token_number_type yytranslate_ (int t);
-
-    // Tables.
-  // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-  // STATE-NUM.
-  static const signed char yypact_[];
-
-  // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-  // Performed when YYTABLE does not specify something else to do.  Zero
-  // means the default is an error.
-  static const unsigned char yydefact_[];
-
-  // YYPGOTO[NTERM-NUM].
-  static const signed char yypgoto_[];
-
-  // YYDEFGOTO[NTERM-NUM].
-  static const signed char yydefgoto_[];
-
-  // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-  // positive, shift that token.  If negative, reduce the rule whose
-  // number is the opposite.  If YYTABLE_NINF, syntax error.
-  static const short int yytable_[];
-
-  static const signed char yycheck_[];
-
-  // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-  // symbol of state STATE-NUM.
-  static const unsigned char yystos_[];
-
-  // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
-  static const unsigned char yyr1_[];
-
-  // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
-  static const unsigned char yyr2_[];
-
-
-    /// Convert the symbol name \a n to a form suitable for a diagnostic.
-    static std::string yytnamerr_ (const char *n);
-
-
-    /// For a symbol, its name in clear.
-    static const char* const yytname_[];
-#if YYDEBUG
-  // YYRLINE[YYN] -- Source line where rule number YYN was defined.
-  static const unsigned short int yyrline_[];
-    /// Report on the debug stream that the rule \a r is going to be reduced.
-    virtual void yy_reduce_print_ (int r);
-    /// Print the state stack on the debug stream.
-    virtual void yystack_print_ ();
-
-    // Debugging.
-    int yydebug_;
-    std::ostream* yycdebug_;
-
-    /// \brief Display a symbol type, value and location.
-    /// \param yyo    The output stream.
-    /// \param yysym  The symbol.
-    template <typename Base>
-    void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
-#endif
-
-    /// \brief Reclaim the memory associated to a symbol.
-    /// \param yymsg     Why this token is reclaimed.
-    ///                  If null, print nothing.
-    /// \param yysym     The symbol.
-    template <typename Base>
-    void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
-
-  private:
-    /// Type access provider for state based symbols.
-    struct by_state
-    {
-      /// Default constructor.
-      by_state ();
-
-      /// The symbol type as needed by the constructor.
-      typedef state_type kind_type;
-
-      /// Constructor.
-      by_state (kind_type s);
-
-      /// Copy constructor.
-      by_state (const by_state& other);
-
-      /// Steal the symbol type from \a that.
-      void move (by_state& that);
-
-      /// The (internal) type number (corresponding to \a state).
-      /// "empty" when empty.
-      symbol_number_type type_get () const;
-
-      enum { empty = 0 };
-
-      /// The state.
-      state_type state;
-    };
-
-    /// "Internal" symbol: element of the stack.
-    struct stack_symbol_type : basic_symbol<by_state>
-    {
-      /// Superclass.
-      typedef basic_symbol<by_state> super_type;
-      /// Construct an empty symbol.
-      stack_symbol_type ();
-      /// Steal the contents from \a sym to build this.
-      stack_symbol_type (state_type s, symbol_type& sym);
-      /// Assignment, needed by push_back.
-      stack_symbol_type& operator= (const stack_symbol_type& that);
-    };
-
-    /// Stack type.
-    typedef stack<stack_symbol_type> stack_type;
-
-    /// The stack.
-    stack_type yystack_;
-
-    /// Push a new state on the stack.
-    /// \param m    a debug message to display
-    ///             if null, no trace is output.
-    /// \param s    the symbol
-    /// \warning the contents of \a s.value is stolen.
-    void yypush_ (const char* m, stack_symbol_type& s);
-
-    /// Push a new look ahead token on the state on the stack.
-    /// \param m    a debug message to display
-    ///             if null, no trace is output.
-    /// \param s    the state
-    /// \param sym  the symbol (for its value and location).
-    /// \warning the contents of \a s.value is stolen.
-    void yypush_ (const char* m, state_type s, symbol_type& sym);
-
-    /// Pop \a n symbols the three stacks.
-    void yypop_ (unsigned int n = 1);
-
-    // Constants.
-    enum
-    {
-      yyeof_ = 0,
-      yylast_ = 117,     ///< Last index in yytable_.
-      yynnts_ = 24,  ///< Number of nonterminal symbols.
-      yyempty_ = -2,
-      yyfinal_ = 6, ///< Termination state number.
-      yyterror_ = 1,
-      yyerrcode_ = 256,
-      yyntokens_ = 40  ///< Number of tokens.
-    };
-
-
-    // User arguments.
-    D4FunctionScanner  &scanner;
-    D4FunctionEvaluator  &evaluator;
-  };
-
-
-#line 34 "d4_function_parser.yy" // lalr1.cc:372
-} // libdap
-#line 831 "d4_function_parser.tab.hh" // lalr1.cc:372
-
-
-
-
-#endif // !YY_YY_D4_FUNCTION_PARSER_TAB_HH_INCLUDED
diff --git a/d4_function/d4_function_parser.yy b/d4_function/d4_function_parser.yy
index 7269f13..7e84b49 100644
--- a/d4_function/d4_function_parser.yy
+++ b/d4_function/d4_function_parser.yy
@@ -180,7 +180,7 @@ fname: WORD
     D4Function f;
     if (!evaluator.sf_list()->find_function($1, &f)) {
         // ...cloud use @1.{first,last}_column in these error messages.
-        throw Error("'" + $1 + "' is not a registered DAP4 server function.");
+        throw Error(malformed_expr, "'" + $1 + "' is not a registered DAP4 server function.");
     }
 
     $$ = f;
@@ -216,7 +216,7 @@ variable_or_constant : id
 {
     D4RValue *rvalue = evaluator.build_rvalue($1);
     if (!rvalue) {
-        throw Error("'" + $1 + "' is not a variable, number or string.");
+        throw Error(malformed_expr, "'" + $1 + "' is not a variable, number or string.");
     }
     
     $$ = rvalue;
@@ -298,7 +298,7 @@ DOLLAR_FLOAT64 "(" arg_length_hint ":" fast_float64_arg_list ")"
    
 arg_length_hint : WORD
 {
-    evaluator.set_arg_length_hint(get_ull($1.c_str()));
+    evaluator.set_arg_length_hint(get_uint64($1.c_str()));
 }
 ;
 
diff --git a/d4_function/d4_function_scanner.ll b/d4_function/d4_function_scanner.ll
index 91d3509..7da6733 100644
--- a/d4_function/d4_function_scanner.ll
+++ b/d4_function/d4_function_scanner.ll
@@ -30,6 +30,7 @@
 //#include "config.h"
 
 #include <string>
+#include "Error.h"
 
 #include "D4FunctionScanner.h"
 
@@ -59,6 +60,10 @@ typedef libdap::D4FunctionParser::token token;
 /* define yyterminate as this instead of NULL */
 #define yyterminate() return(token::END)
 
+#define YY_FATAL_ERROR(msg) {\
+    throw(libdap::Error(malformed_expr, std::string("Error scanning function expression text: ") + std::string(msg))); \
+}
+
 %}
 
 %option c++
diff --git a/d4_function/location.hh b/d4_function/location.hh
deleted file mode 100644
index 860bc09..0000000
--- a/d4_function/location.hh
+++ /dev/null
@@ -1,187 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Locations for Bison parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file location.hh
- ** Define the libdap::location class.
- */
-
-#ifndef YY_YY_LOCATION_HH_INCLUDED
-# define YY_YY_LOCATION_HH_INCLUDED
-
-# include "position.hh"
-
-#line 34 "d4_function_parser.yy" // location.cc:291
-namespace libdap {
-#line 46 "location.hh" // location.cc:291
-  /// Abstract a location.
-  class location
-  {
-  public:
-
-    /// Construct a location from \a b to \a e.
-    location (const position& b, const position& e)
-      : begin (b)
-      , end (e)
-    {
-    }
-
-    /// Construct a 0-width location in \a p.
-    explicit location (const position& p = position ())
-      : begin (p)
-      , end (p)
-    {
-    }
-
-    /// Construct a 0-width location in \a f, \a l, \a c.
-    explicit location (std::string* f,
-                       unsigned int l = 1u,
-                       unsigned int c = 1u)
-      : begin (f, l, c)
-      , end (f, l, c)
-    {
-    }
-
-
-    /// Initialization.
-    void initialize (std::string* f = YY_NULLPTR,
-                     unsigned int l = 1u,
-                     unsigned int c = 1u)
-    {
-      begin.initialize (f, l, c);
-      end = begin;
-    }
-
-    /** \name Line and Column related manipulators
-     ** \{ */
-  public:
-    /// Reset initial location to final location.
-    void step ()
-    {
-      begin = end;
-    }
-
-    /// Extend the current location to the COUNT next columns.
-    void columns (int count = 1)
-    {
-      end += count;
-    }
-
-    /// Extend the current location to the COUNT next lines.
-    void lines (int count = 1)
-    {
-      end.lines (count);
-    }
-    /** \} */
-
-
-  public:
-    /// Beginning of the located region.
-    position begin;
-    /// End of the located region.
-    position end;
-  };
-
-  /// Join two location objects to create a location.
-  inline location operator+ (location res, const location& end)
-  {
-    res.end = end.end;
-    return res;
-  }
-
-  /// Change end position in place.
-  inline location& operator+= (location& res, int width)
-  {
-    res.columns (width);
-    return res;
-  }
-
-  /// Change end position.
-  inline location operator+ (location res, int width)
-  {
-    return res += width;
-  }
-
-  /// Change end position in place.
-  inline location& operator-= (location& res, int width)
-  {
-    return res += -width;
-  }
-
-  /// Change end position.
-  inline location operator- (const location& begin, int width)
-  {
-    return begin + -width;
-  }
-
-  /// Compare two location objects.
-  inline bool
-  operator== (const location& loc1, const location& loc2)
-  {
-    return loc1.begin == loc2.begin && loc1.end == loc2.end;
-  }
-
-  /// Compare two location objects.
-  inline bool
-  operator!= (const location& loc1, const location& loc2)
-  {
-    return !(loc1 == loc2);
-  }
-
-  /** \brief Intercept output stream redirection.
-   ** \param ostr the destination output stream
-   ** \param loc a reference to the location to redirect
-   **
-   ** Avoid duplicate information.
-   */
-  template <typename YYChar>
-  inline std::basic_ostream<YYChar>&
-  operator<< (std::basic_ostream<YYChar>& ostr, const location& loc)
-  {
-    unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0;
-    ostr << loc.begin// << "(" << loc.end << ") "
-;
-    if (loc.end.filename
-        && (!loc.begin.filename
-            || *loc.begin.filename != *loc.end.filename))
-      ostr << '-' << loc.end.filename << ':' << loc.end.line << '.' << end_col;
-    else if (loc.begin.line < loc.end.line)
-      ostr << '-' << loc.end.line << '.' << end_col;
-    else if (loc.begin.column < end_col)
-      ostr << '-' << end_col;
-    return ostr;
-  }
-
-#line 34 "d4_function_parser.yy" // location.cc:291
-} // libdap
-#line 187 "location.hh" // location.cc:291
-#endif // !YY_YY_LOCATION_HH_INCLUDED
diff --git a/d4_function/position.hh b/d4_function/position.hh
deleted file mode 100644
index a152a8f..0000000
--- a/d4_function/position.hh
+++ /dev/null
@@ -1,180 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Positions for Bison parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file position.hh
- ** Define the libdap::position class.
- */
-
-#ifndef YY_YY_POSITION_HH_INCLUDED
-# define YY_YY_POSITION_HH_INCLUDED
-
-# include <algorithm> // std::max
-# include <iostream>
-# include <string>
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-#line 34 "d4_function_parser.yy" // location.cc:291
-namespace libdap {
-#line 56 "position.hh" // location.cc:291
-  /// Abstract a position.
-  class position
-  {
-  public:
-    /// Construct a position.
-    explicit position (std::string* f = YY_NULLPTR,
-                       unsigned int l = 1u,
-                       unsigned int c = 1u)
-      : filename (f)
-      , line (l)
-      , column (c)
-    {
-    }
-
-
-    /// Initialization.
-    void initialize (std::string* fn = YY_NULLPTR,
-                     unsigned int l = 1u,
-                     unsigned int c = 1u)
-    {
-      filename = fn;
-      line = l;
-      column = c;
-    }
-
-    /** \name Line and Column related manipulators
-     ** \{ */
-    /// (line related) Advance to the COUNT next lines.
-    void lines (int count = 1)
-    {
-      if (count)
-        {
-          column = 1u;
-          line = add_ (line, count, 1);
-        }
-    }
-
-    /// (column related) Advance to the COUNT next columns.
-    void columns (int count = 1)
-    {
-      column = add_ (column, count, 1);
-    }
-    /** \} */
-
-    /// File name to which this position refers.
-    std::string* filename;
-    /// Current line number.
-    unsigned int line;
-    /// Current column number.
-    unsigned int column;
-
-  private:
-    /// Compute max(min, lhs+rhs) (provided min <= lhs).
-    static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min)
-    {
-      return (0 < rhs || -static_cast<unsigned int>(rhs) < lhs
-              ? rhs + lhs
-              : min);
-    }
-  };
-
-  /// Add and assign a position.
-  inline position&
-  operator+= (position& res, int width)
-  {
-    res.columns (width);
-    return res;
-  }
-
-  /// Add two position objects.
-  inline position
-  operator+ (position res, int width)
-  {
-    return res += width;
-  }
-
-  /// Add and assign a position.
-  inline position&
-  operator-= (position& res, int width)
-  {
-    return res += -width;
-  }
-
-  /// Add two position objects.
-  inline position
-  operator- (position res, int width)
-  {
-    return res -= width;
-  }
-
-  /// Compare two position objects.
-  inline bool
-  operator== (const position& pos1, const position& pos2)
-  {
-    return (pos1.line == pos2.line
-            && pos1.column == pos2.column
-            && (pos1.filename == pos2.filename
-                || (pos1.filename && pos2.filename
-                    && *pos1.filename == *pos2.filename)));
-  }
-
-  /// Compare two position objects.
-  inline bool
-  operator!= (const position& pos1, const position& pos2)
-  {
-    return !(pos1 == pos2);
-  }
-
-  /** \brief Intercept output stream redirection.
-   ** \param ostr the destination output stream
-   ** \param pos a reference to the position to redirect
-   */
-  template <typename YYChar>
-  inline std::basic_ostream<YYChar>&
-  operator<< (std::basic_ostream<YYChar>& ostr, const position& pos)
-  {
-    if (pos.filename)
-      ostr << *pos.filename << ':';
-    return ostr << pos.line << '.' << pos.column;
-  }
-
-#line 34 "d4_function_parser.yy" // location.cc:291
-} // libdap
-#line 180 "position.hh" // location.cc:291
-#endif // !YY_YY_POSITION_HH_INCLUDED
diff --git a/d4_function/stack.hh b/d4_function/stack.hh
deleted file mode 100644
index 72abe65..0000000
--- a/d4_function/stack.hh
+++ /dev/null
@@ -1,158 +0,0 @@
-// A Bison parser, made by GNU Bison 3.0.1.
-
-// Stack handling for Bison parsers in C++
-
-// Copyright (C) 2002-2013 Free Software Foundation, Inc.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// As a special exception, you may create a larger work that contains
-// part or all of the Bison parser skeleton and distribute that work
-// under terms of your choice, so long as that work isn't itself a
-// parser generator using the skeleton or a modified version thereof
-// as a parser skeleton.  Alternatively, if you modify or redistribute
-// the parser skeleton itself, you may (at your option) remove this
-// special exception, which will cause the skeleton and the resulting
-// Bison output files to be licensed under the GNU General Public
-// License without this special exception.
-
-// This special exception was added by the Free Software Foundation in
-// version 2.2 of Bison.
-
-/**
- ** \file stack.hh
- ** Define the libdap::stack class.
- */
-
-#ifndef YY_YY_STACK_HH_INCLUDED
-# define YY_YY_STACK_HH_INCLUDED
-
-# include <vector>
-
-#line 34 "d4_function_parser.yy" // stack.hh:133
-namespace libdap {
-#line 46 "stack.hh" // stack.hh:133
-  template <class T, class S = std::vector<T> >
-  class stack
-  {
-  public:
-    // Hide our reversed order.
-    typedef typename S::reverse_iterator iterator;
-    typedef typename S::const_reverse_iterator const_iterator;
-
-    stack ()
-      : seq_ ()
-    {
-    }
-
-    stack (unsigned int n)
-      : seq_ (n)
-    {
-    }
-
-    inline
-    T&
-    operator[] (unsigned int i)
-    {
-      return seq_[seq_.size () - 1 - i];
-    }
-
-    inline
-    const T&
-    operator[] (unsigned int i) const
-    {
-      return seq_[seq_.size () - 1 - i];
-    }
-
-    /// Steal the contents of \a t.
-    ///
-    /// Close to move-semantics.
-    inline
-    void
-    push (T& t)
-    {
-      seq_.push_back (T());
-      operator[](0).move (t);
-    }
-
-    inline
-    void
-    pop (unsigned int n = 1)
-    {
-      for (; n; --n)
-        seq_.pop_back ();
-    }
-
-    void
-    clear ()
-    {
-      seq_.clear ();
-    }
-
-    inline
-    typename S::size_type
-    size () const
-    {
-      return seq_.size ();
-    }
-
-    inline
-    const_iterator
-    begin () const
-    {
-      return seq_.rbegin ();
-    }
-
-    inline
-    const_iterator
-    end () const
-    {
-      return seq_.rend ();
-    }
-
-  private:
-    stack (const stack&);
-    stack& operator= (const stack&);
-    /// The wrapped container.
-    S seq_;
-  };
-
-  /// Present a slice of the top of a stack.
-  template <class T, class S = stack<T> >
-  class slice
-  {
-  public:
-    slice (const S& stack, unsigned int range)
-      : stack_ (stack)
-      , range_ (range)
-    {
-    }
-
-    inline
-    const T&
-    operator [] (unsigned int i) const
-    {
-      return stack_[range_ - i];
-    }
-
-  private:
-    const S& stack_;
-    unsigned int range_;
-  };
-
-#line 34 "d4_function_parser.yy" // stack.hh:133
-} // libdap
-#line 157 "stack.hh" // stack.hh:133
-
-#endif // !YY_YY_STACK_HH_INCLUDED
diff --git a/das.lex b/das.lex
index eab5e11..3a7cdd1 100644
--- a/das.lex
+++ b/das.lex
@@ -88,7 +88,7 @@ using namespace libdap ;
 #define YY_DECL int daslex YY_PROTO(( void ))
 #define YY_FATAL_ERROR(msg) {\
     throw(Error(string("Error scanning DAS object text: ") + string(msg))); \
-    yy_fatal_error(msg); /* This will never be run but putting it here removes a warning that the funtion is never used. */ \
+    yy_fatal_error(msg); /* This will never be run but putting it here removes a warning that the function is never used. */ \
 }
 
 #include "das.tab.hh"
diff --git a/das.tab.cc b/das.tab.cc
deleted file mode 100644
index 2bb5e60..0000000
--- a/das.tab.cc
+++ /dev/null
@@ -1,2119 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "3.0.1"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-
-/* Substitute the variable and function names.  */
-#define yyparse         dasparse
-#define yylex           daslex
-#define yyerror         daserror
-#define yydebug         dasdebug
-#define yynerrs         dasnerrs
-
-#define yylval          daslval
-#define yychar          daschar
-
-/* Copy the first part of user declarations.  */
-
-#line 75 "das.tab.cc" /* yacc.c:339  */
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
-   by #include "das.tab.hh".  */
-#ifndef YY_DAS_DAS_TAB_HH_INCLUDED
-# define YY_DAS_DAS_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int dasdebug;
-#endif
-/* "%code requires" blocks.  */
-#line 40 "das.yy" /* yacc.c:355  */
-
-
-#define YYSTYPE char *
-#define ATTR_STRING_QUOTE_FIX
-
-#include "config.h"
-
-#include <string>
-
-#include <vector>
-
-#include "DAS.h"
-#include "Error.h"
-#include "util.h"
-#include "escaping.h"
-#include "debug.h"
-#include "parser.h"
-#include "util.h"
-// #include "das.tab.hh"
-
-#ifdef TRACE_NEW
-#include "trace_new.h"
-#endif
-
-#define yylex daslex
-#define yyerror daserror 
-
-using namespace std;
-using namespace libdap ;
-
-// These macros are used to access the `arguments' passed to the parser. A
-// pointer to an error object and a pointer to an integer status variable are
-// passed in to the parser within a structure (which itself is passed as a
-// pointer). Note that the ERROR macro explicitly casts OBJ to an ERROR *. 
-// The parser now throws an exception when it encounters an error. 5/23/2002
-// jhrg 
-
-#define DAS_OBJ(arg) ((DAS *)((parser_arg *)(arg))->_object)
-
-//#define YYPARSE_PARAM arg
-
-extern int das_line_num;	/* defined in das.lex */
-
-
-#line 150 "das.tab.cc" /* yacc.c:355  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_ATTR = 258,
-    SCAN_WORD = 259,
-    SCAN_ALIAS = 260,
-    SCAN_BYTE = 261,
-    SCAN_INT16 = 262,
-    SCAN_UINT16 = 263,
-    SCAN_INT32 = 264,
-    SCAN_UINT32 = 265,
-    SCAN_FLOAT32 = 266,
-    SCAN_FLOAT64 = 267,
-    SCAN_STRING = 268,
-    SCAN_URL = 269,
-    SCAN_XML = 270
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE daslval;
-
-int dasparse (parser_arg *arg);
-
-#endif /* !YY_DAS_DAS_TAB_HH_INCLUDED  */
-
-/* Copy the second part of user declarations.  */
-
-#line 189 "das.tab.cc" /* yacc.c:358  */
-/* Unqualified %code blocks.  */
-#line 85 "das.yy" /* yacc.c:359  */
-
-// No global static objects. We go through this every so often, I guess I
-// should learn... 1/24/2000 jhrg
-static string *name;	/* holds name in attr_pair rule */
-static string *type;	/* holds type in attr_pair rule */
-
-static vector<AttrTable *> *attr_tab_stack;
-
-// I use a vector of AttrTable pointers for a stack
-
-#define TOP_OF_STACK (attr_tab_stack->back())
-#define PUSH(x) (attr_tab_stack->push_back((x)))
-#define POP (attr_tab_stack->pop_back())
-#define STACK_LENGTH (attr_tab_stack->size())
-#define OUTER_TABLE_ONLY (attr_tab_stack->size() == 1)
-#define STACK_EMPTY (attr_tab_stack->empty())
-
-#define TYPE_NAME_VALUE(x) *type << " " << *name << " " << (x)
-
-static const char *ATTR_TUPLE_MSG = 
-"Expected an attribute type (Byte, Int16, UInt16, Int32, UInt32, Float32,\n\
-Float64, String or Url) followed by a name and value.";
-static const char *NO_DAS_MSG =
-"The attribute object returned from the dataset was null\n\
-Check that the URL is correct.";
-
-typedef int checker(const char *);
-
-int daslex(void);
-static void daserror(parser_arg *arg, const string &s /*char *s*/);
-static void add_attribute(const string &type, const string &name, 
-			  const string &value, checker *chk) throw (Error);
-static void add_alias(AttrTable *das, AttrTable *current, const string &name, 
-		      const string &src) throw (Error);
-static void add_bad_attribute(AttrTable *attr, const string &type,
-			      const string &name, const string &value,
-			      const string &msg);
-
-
-#line 231 "das.tab.cc" /* yacc.c:359  */
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                 \
-    while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
-#  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYSIZE_T yyi;                         \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
-      while (0)
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  3
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   118
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  20
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  47
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  84
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  134
-
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   270
-
-#define YYTRANSLATE(YYX)                                                \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,    19,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,    18,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    16,     2,    17,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15
-};
-
-#if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
-{
-       0,   194,   194,   194,   211,   212,   216,   217,   223,   224,
-     225,   228,   230,   231,   230,   234,   235,   234,   238,   239,
-     238,   242,   243,   242,   246,   247,   246,   250,   251,   250,
-     254,   255,   254,   258,   259,   258,   262,   263,   262,   266,
-     267,   266,   271,   291,   270,   299,   298,   304,   308,   314,
-     318,   324,   328,   334,   338,   344,   348,   354,   358,   364,
-     368,   374,   379,   386,   390,   396,   410,   413,   416,   419,
-     419,   419,   419,   419,   420,   420,   420,   420,   421,   421,
-     421,   421,   425,   429,   424
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 0
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "SCAN_ATTR", "SCAN_WORD", "SCAN_ALIAS",
-  "SCAN_BYTE", "SCAN_INT16", "SCAN_UINT16", "SCAN_INT32", "SCAN_UINT32",
-  "SCAN_FLOAT32", "SCAN_FLOAT64", "SCAN_STRING", "SCAN_URL", "SCAN_XML",
-  "'{'", "'}'", "';'", "','", "$accept", "attr_start", "$@1", "attributes",
-  "attribute", "attr_list", "attr_tuple", "$@2", "$@3", "$@4", "$@5",
-  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14",
-  "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", "$@22", "$@23",
-  "$@24", "bytes", "int16", "uint16", "int32", "uint32", "float32",
-  "float64", "strs", "urls", "xml", "url", "str_or_id", "float_or_int",
-  "name", "alias", "$@25", "$@26", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   123,   125,    59,    44
-};
-# endif
-
-#define YYPACT_NINF -76
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-76)))
-
-#define YYTABLE_NINF -44
-
-#define yytable_value_is_error(Yytable_value) \
-  0
-
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int8 yypact[] =
-{
-     -76,    19,    35,   -76,   -76,    25,    34,   -76,     1,   -76,
-     -76,   -76,    28,   -76,   -76,   -76,   -76,   -76,   -76,   -76,
-     -76,   -76,   -76,    16,   -76,   -76,    40,    80,   -76,    57,
-      57,    57,    57,    57,    57,    57,    57,    57,    57,   -76,
-     -76,   -76,     1,    93,   -76,   -76,   -76,   -76,   -76,   -76,
-     -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,
-     -76,   -76,   -76,   -76,   -76,   -76,   -76,    42,   -76,    94,
-      95,    96,    97,    98,    99,    99,   100,   101,   102,    90,
-      91,   -76,   -15,   -76,    21,   -76,    64,   -76,    66,   -76,
-      68,   -76,    70,   -76,    72,   -76,   -76,    74,   -76,   -76,
-      76,   -76,   -76,    92,   -76,   -76,   -76,   104,   -76,   107,
-     -76,   108,   -76,   109,   -76,   110,   -76,    99,   -76,    99,
-     -76,   100,   -76,   101,   -76,   -76,   -76,   -76,   -76,   -76,
-     -76,   -76,   -76,   -76
-};
-
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       2,     0,     0,     1,     7,     0,     0,     4,     0,     5,
-      45,    42,     0,    12,    15,    18,    21,    24,    27,    30,
-      33,    36,    39,     0,     9,    11,     0,     0,    82,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
-      10,    46,     0,     0,    70,    69,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    13,    16,    19,
-      22,    25,    28,    31,    34,    37,    40,     0,    83,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    47,     0,    49,     0,    51,     0,    53,     0,    55,
-       0,    68,     0,    57,     0,    59,    67,     0,    61,    66,
-       0,    63,    65,     0,    44,    84,    14,     0,    17,     0,
-      20,     0,    23,     0,    26,     0,    29,     0,    32,     0,
-      35,     0,    38,     0,    41,    48,    50,    52,    54,    56,
-      58,    60,    62,    64
-};
-
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-     -76,   -76,   -76,   -76,   111,    73,   -22,   -76,   -76,   -76,
-     -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,
-     -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,
-     -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,   -76,
-      -7,    -3,   -75,    43,   -76,   -76,   -76
-};
-
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,     1,     2,     6,     7,    23,    24,    29,    69,    30,
-      70,    31,    71,    32,    72,    33,    73,    34,    74,    35,
-      75,    36,    76,    37,    77,    38,    78,    27,    79,    26,
-      82,    84,    86,    88,    90,    92,    94,    97,   100,   103,
-     101,    98,    93,    57,    25,    43,    80
-};
-
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
-static const yytype_int16 yytable[] =
-{
-      95,    40,    10,   106,   107,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    10,    -8,     3,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    28,    39,    -3,     4,     4,     5,     5,   108,
-     109,     8,   130,    10,   131,    40,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    41,   -43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,   110,   111,   112,   113,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,    42,    68,    81,    83,
-      85,    87,    89,    91,    96,    99,   102,   104,   125,   105,
-     124,   126,   127,   128,   129,    67,   133,     9,   132
-};
-
-static const yytype_uint8 yycheck[] =
-{
-      75,    23,     1,    18,    19,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,     1,    17,     0,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,     4,    17,     0,     1,     1,     3,     3,    18,
-      19,    16,   117,     1,   119,    67,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    18,    17,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    18,    19,    18,    19,    18,    19,    18,    19,
-      18,    19,    18,    19,    18,    19,    16,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,    17,     4,    18,
-      18,     4,     4,     4,     4,    42,   123,     6,   121
-};
-
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
-{
-       0,    21,    22,     0,     1,     3,    23,    24,    16,    24,
-       1,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    25,    26,    64,    49,    47,     4,    27,
-      29,    31,    33,    35,    37,    39,    41,    43,    45,    17,
-      26,    18,    16,    65,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    25,     4,    28,
-      30,    32,    34,    36,    38,    40,    42,    44,    46,    48,
-      66,     4,    50,     4,    51,     4,    52,     4,    53,     4,
-      54,     4,    55,    62,    56,    62,     4,    57,    61,     4,
-      58,    60,     4,    59,    17,    18,    18,    19,    18,    19,
-      18,    19,    18,    19,    18,    19,    18,    19,    18,    19,
-      18,    19,    18,    19,    18,     4,     4,     4,     4,     4,
-      62,    62,    61,    60
-};
-
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    20,    22,    21,    23,    23,    24,    24,    25,    25,
-      25,    26,    27,    28,    26,    29,    30,    26,    31,    32,
-      26,    33,    34,    26,    35,    36,    26,    37,    38,    26,
-      39,    40,    26,    41,    42,    26,    43,    44,    26,    45,
-      46,    26,    47,    48,    26,    49,    26,    50,    50,    51,
-      51,    52,    52,    53,    53,    54,    54,    55,    55,    56,
-      56,    57,    57,    58,    58,    59,    60,    61,    62,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,    65,    66,    64
-};
-
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     0,     2,     1,     2,     4,     1,     0,     1,
-       2,     1,     0,     0,     6,     0,     0,     6,     0,     0,
-       6,     0,     0,     6,     0,     0,     6,     0,     0,     6,
-       0,     0,     6,     0,     0,     6,     0,     0,     6,     0,
-       0,     6,     0,     0,     6,     0,     3,     1,     3,     1,
-       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
-       3,     1,     3,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     0,     0,     6
-};
-
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (arg, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
-
-/* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
-
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Type, Value, arg); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_arg *arg)
-{
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
-  YYUSE (arg);
-  if (!yyvaluep)
-    return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-  YYUSE (yytype);
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_arg *arg)
-{
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, arg);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, parser_arg *arg)
-{
-  unsigned long int yylno = yyrline[yyrule];
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-             yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                                              , arg);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule, arg); \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                    return 2;
-                  yysize = yysize1;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  {
-    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-      return 2;
-    yysize = yysize1;
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_arg *arg)
-{
-  YYUSE (yyvaluep);
-  YYUSE (arg);
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-int
-yyparse (parser_arg *arg)
-{
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
-
-       Refer to the stacks through separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
-                    &yystacksize);
-
-        yyss = yyss1;
-        yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
-
-      {
-        yytype_int16 *yyss1 = yyss;
-        union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-#line 194 "das.yy" /* yacc.c:1646  */
-    {
-		if (!name) name = new string();
-		if (!type) type = new string();
-		if (!attr_tab_stack) attr_tab_stack = new vector<AttrTable *>;
-
-		// push outermost AttrTable
-		PUSH(DAS_OBJ(arg)->get_top_level_attributes());
-	}
-#line 1409 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 3:
-#line 203 "das.yy" /* yacc.c:1646  */
-    {
-		POP;	// pop the DAS/AttrTable before stack's dtor
-		delete name; name = 0;
-		delete type; type = 0;
-		delete attr_tab_stack; attr_tab_stack = 0;
-	}
-#line 1420 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 7:
-#line 218 "das.yy" /* yacc.c:1646  */
-    {
-		    parse_error((parser_arg *)arg, NO_DAS_MSG, das_line_num);
-		}
-#line 1428 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 12:
-#line 230 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "Byte", das_line_num); }
-#line 1434 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 13:
-#line 231 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1440 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 15:
-#line 234 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "Int16", das_line_num); }
-#line 1446 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 16:
-#line 235 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1452 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 18:
-#line 238 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "UInt16", das_line_num); }
-#line 1458 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 19:
-#line 239 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1464 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 21:
-#line 242 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "Int32", das_line_num); }
-#line 1470 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 22:
-#line 243 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1476 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 24:
-#line 246 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "UInt32", das_line_num); }
-#line 1482 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 25:
-#line 247 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1488 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 27:
-#line 250 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "Float32", das_line_num); }
-#line 1494 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 28:
-#line 251 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1500 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 30:
-#line 254 "das.yy" /* yacc.c:1646  */
-    { save_str(*type, "Float64", das_line_num); }
-#line 1506 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 31:
-#line 255 "das.yy" /* yacc.c:1646  */
-    { save_str(*name, (yyvsp[0]), das_line_num); }
-#line 1512 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 33:
-#line 258 "das.yy" /* yacc.c:1646  */
-    { *type = "String"; }
-#line 1518 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 34:
-#line 259 "das.yy" /* yacc.c:1646  */
-    { *name = (yyvsp[0]); }
-#line 1524 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 36:
-#line 262 "das.yy" /* yacc.c:1646  */
-    { *type = "Url"; }
-#line 1530 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 37:
-#line 263 "das.yy" /* yacc.c:1646  */
-    { *name = (yyvsp[0]); }
-#line 1536 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 39:
-#line 266 "das.yy" /* yacc.c:1646  */
-    { *type = "OtherXML"; }
-#line 1542 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 40:
-#line 267 "das.yy" /* yacc.c:1646  */
-    { *name = (yyvsp[0]); }
-#line 1548 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 42:
-#line 271 "das.yy" /* yacc.c:1646  */
-    {
-		    DBG(cerr << "Processing ID: " << (yyvsp[0]) << endl);
-		    
-		    AttrTable *at = TOP_OF_STACK->get_attr_table((yyvsp[0]));
-		    if (!at) {
-			try {
-			    at = TOP_OF_STACK->append_container((yyvsp[0]));
-			}
-			catch (Error &e) {
-			    // re-throw with line number info
-			    parse_error(e.get_error_message().c_str(), 
-					das_line_num);
-			}
-		    }
-		    PUSH(at);
-
-		    DBG(cerr << " Pushed attr_tab: " << at << endl);
-
-		}
-#line 1572 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 43:
-#line 291 "das.yy" /* yacc.c:1646  */
-    {
-		    /* pop top of stack; store in attr_tab */
-		    DBG(cerr << " Popped attr_tab: " << TOP_OF_STACK << endl);
-		    POP;
-		}
-#line 1582 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 45:
-#line 299 "das.yy" /* yacc.c:1646  */
-    { 
-		    parse_error(ATTR_TUPLE_MSG, das_line_num, (yyvsp[0]));
-		}
-#line 1590 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 47:
-#line 305 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_byte);
-		}
-#line 1598 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 48:
-#line 309 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_byte);
-		}
-#line 1606 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 49:
-#line 315 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_int16);
-		}
-#line 1614 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 50:
-#line 319 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_int16);
-		}
-#line 1622 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 51:
-#line 325 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_uint16);
-		}
-#line 1630 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 52:
-#line 329 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_uint16);
-		}
-#line 1638 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 53:
-#line 335 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_int32);
-		}
-#line 1646 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 54:
-#line 339 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_int32);
-		}
-#line 1654 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 55:
-#line 345 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_uint32);
-		}
-#line 1662 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 56:
-#line 349 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_uint32);
-		}
-#line 1670 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 57:
-#line 355 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_float32);
-		}
-#line 1678 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 58:
-#line 359 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_float32);
-		}
-#line 1686 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 59:
-#line 365 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_float64);
-		}
-#line 1694 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 60:
-#line 369 "das.yy" /* yacc.c:1646  */
-    {
-		    add_attribute(*type, *name, (yyvsp[0]), &check_float64);
-		}
-#line 1702 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 61:
-#line 375 "das.yy" /* yacc.c:1646  */
-    {
-		    string attr = remove_quotes((yyvsp[0]));
-		    add_attribute(*type, *name, attr, 0);
-		}
-#line 1711 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 62:
-#line 380 "das.yy" /* yacc.c:1646  */
-    {
-		    string attr = remove_quotes((yyvsp[0]));
-		    add_attribute(*type, *name, attr, 0);
-		}
-#line 1720 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 63:
-#line 387 "das.yy" /* yacc.c:1646  */
-    {
-                    add_attribute(*type, *name, (yyvsp[0]), &check_url);
-                }
-#line 1728 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 64:
-#line 391 "das.yy" /* yacc.c:1646  */
-    {
-                    add_attribute(*type, *name, (yyvsp[0]), &check_url);
-                }
-#line 1736 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 65:
-#line 397 "das.yy" /* yacc.c:1646  */
-    {
-                    // XML must be quoted in the DAS but the quotes are an
-                    // artifact of the DAS syntax so they are not part of the
-                    // value.
-                    string xml = unescape_double_quotes((yyvsp[0]));
-                    
-                    if (is_quoted(xml))
-                        add_attribute(*type, *name, remove_quotes(xml), 0);
-                    else
-                        add_attribute(*type, *name, xml, 0);
-                }
-#line 1752 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 82:
-#line 425 "das.yy" /* yacc.c:1646  */
-    { 
-		    *name = (yyvsp[0]);
-		}
-#line 1760 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 83:
-#line 429 "das.yy" /* yacc.c:1646  */
-    {
-		    add_alias( DAS_OBJ(arg)->get_top_level_attributes(),
-		               TOP_OF_STACK, *name, string((yyvsp[0])) ) ;
-                }
-#line 1769 "das.tab.cc" /* yacc.c:1646  */
-    break;
-
-
-#line 1773 "das.tab.cc" /* yacc.c:1646  */
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now 'shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error.  |
-`--------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (arg, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (arg, yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
-
-      if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
-      else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval, arg);
-          yychar = YYEMPTY;
-        }
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-        YYABORT;
-
-
-      yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp, arg);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (arg, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, arg);
-    }
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp, arg);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  return yyresult;
-}
-#line 436 "das.yy" /* yacc.c:1906  */
-
-
-// This function is required for linking, but DODS uses its own error
-// reporting mechanism.
-
-static void
-daserror(parser_arg *, const string &)
-{
-}
-
-static string
-a_or_an(const string &subject)
-{
-    string first_char(1, subject[0]);
-    string::size_type pos = first_char.find_first_of("aeiouAEIOUyY");
-    
-    if (pos == string::npos)
-		return "a";
-    else
-		return "an";
-}
-
-// This code used to throw an exception when a bad attribute value came
-// along; now it dumps the errant value(s) into a sub container called *_DODS
-// and stores the parser's error message in a string attribute named
-// `explanation.' 
-static void
-add_attribute(const string &type, const string &name, const string &value,
-	      checker *chk) throw (Error)
-{
-    DBG(cerr << "Adding: " << type << " " << name << " " << value \
-	<< " to Attrtable: " << TOP_OF_STACK << endl);
-
-    if (chk && !(*chk)(value.c_str())) {
-		string msg = "`";
-		msg += value + "' is not " + a_or_an(type) + " " + type + " value.";
-		add_bad_attribute(TOP_OF_STACK, type, name, value, msg);
-		return;
-    }
-    
-    if (STACK_EMPTY) {
-		string msg = "Whoa! Attribute table stack empty when adding `" ;
-		msg += name + ".' ";
-		parse_error(msg, das_line_num);
-    }
-    
-    try {
-#if 0
-        // Special treatment for XML: remove the double quotes that were 
-        // included in the value by this parser.
-        if (type == OtherXML && is_quoted(value))
-            TOP_OF_STACK->append_attr(name, type, value.substr(1, value.size()-2));
-        else    
-#endif
-	    TOP_OF_STACK->append_attr(name, type, value);
-    }
-    catch (Error &e) {
-	 	// re-throw with line number
-		parse_error(e.get_error_message().c_str(), das_line_num);
-    }
-}
-
-static void
-add_alias(AttrTable *das, AttrTable *current, const string &name, 
-	  const string &src) throw (Error)
-{
-    DBG(cerr << "Adding an alias: " << name << ": " << src << endl);
-
-    AttrTable *table = das->get_attr_table(src);
-    if (table) {
-	try {
-	    current->add_container_alias(name, table);
-	}
-	catch (Error &e) {
-	    parse_error(e.get_error_message().c_str(), das_line_num);
-	}
-    }
-    else {
-	try {
-	    current->add_value_alias(das, name, src);
-	}
-	catch (Error &e) {
-	    parse_error(e.get_error_message().c_str(), das_line_num);
-	}
-    }
-}
-
-static void
-add_bad_attribute(AttrTable *attr, const string &type, const string &name,
-		  const string &value, const string &msg)
-{
-    // First, if this bad value is already in a *_dods_errors container,
-    // then just add it. This can happen when the server side processes a DAS
-    // and then hands it off to a client which does the same.
-    // Make a new container. Call it <attr's name>_errors. If that container
-    // already exists, use it.
-    // Add the attribute.
-    // Add the error string to an attribute in the container called
-    // `<name_explanation.'. 
-    
-    if (attr->get_name().find("_dods_errors") != string::npos) {
-	attr->append_attr(name, type, value);
-    }
-    else {
-	string error_cont_name = attr->get_name() + "_dods_errors";
-	AttrTable *error_cont = attr->get_attr_table(error_cont_name);
-	if (!error_cont)
-	    error_cont = attr->append_container(error_cont_name);
-
-	error_cont->append_attr(name, type, value);
-#ifndef ATTR_STRING_QUOTE_FIX
-    error_cont->append_attr(name + "_explanation", "String",
-                "\"" + msg + "\"");
-#else
-       error_cont->append_attr(name + "_explanation", "String", msg);
-#endif
-    }
-}
-
diff --git a/das.tab.hh b/das.tab.hh
deleted file mode 100644
index 72782f5..0000000
--- a/das.tab.hh
+++ /dev/null
@@ -1,123 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-#ifndef YY_DAS_DAS_TAB_HH_INCLUDED
-# define YY_DAS_DAS_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int dasdebug;
-#endif
-/* "%code requires" blocks.  */
-#line 40 "das.yy" /* yacc.c:1909  */
-
-
-#define YYSTYPE char *
-#define ATTR_STRING_QUOTE_FIX
-
-#include "config.h"
-
-#include <string>
-
-#include <vector>
-
-#include "DAS.h"
-#include "Error.h"
-#include "util.h"
-#include "escaping.h"
-#include "debug.h"
-#include "parser.h"
-#include "util.h"
-// #include "das.tab.hh"
-
-#ifdef TRACE_NEW
-#include "trace_new.h"
-#endif
-
-#define yylex daslex
-#define yyerror daserror 
-
-using namespace std;
-using namespace libdap ;
-
-// These macros are used to access the `arguments' passed to the parser. A
-// pointer to an error object and a pointer to an integer status variable are
-// passed in to the parser within a structure (which itself is passed as a
-// pointer). Note that the ERROR macro explicitly casts OBJ to an ERROR *. 
-// The parser now throws an exception when it encounters an error. 5/23/2002
-// jhrg 
-
-#define DAS_OBJ(arg) ((DAS *)((parser_arg *)(arg))->_object)
-
-//#define YYPARSE_PARAM arg
-
-extern int das_line_num;	/* defined in das.lex */
-
-
-#line 89 "das.tab.hh" /* yacc.c:1909  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_ATTR = 258,
-    SCAN_WORD = 259,
-    SCAN_ALIAS = 260,
-    SCAN_BYTE = 261,
-    SCAN_INT16 = 262,
-    SCAN_UINT16 = 263,
-    SCAN_INT32 = 264,
-    SCAN_UINT32 = 265,
-    SCAN_FLOAT32 = 266,
-    SCAN_FLOAT64 = 267,
-    SCAN_STRING = 268,
-    SCAN_URL = 269,
-    SCAN_XML = 270
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE daslval;
-
-int dasparse (parser_arg *arg);
-
-#endif /* !YY_DAS_DAS_TAB_HH_INCLUDED  */
diff --git a/dds.tab.cc b/dds.tab.cc
deleted file mode 100644
index 975d908..0000000
--- a/dds.tab.cc
+++ /dev/null
@@ -1,2089 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "3.0.1"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-
-/* Substitute the variable and function names.  */
-#define yyparse         ddsparse
-#define yylex           ddslex
-#define yyerror         ddserror
-#define yydebug         ddsdebug
-#define yynerrs         ddsnerrs
-
-#define yylval          ddslval
-#define yychar          ddschar
-
-/* Copy the first part of user declarations.  */
-
-#line 75 "dds.tab.cc" /* yacc.c:339  */
-
-# ifndef YY_NULLPTR
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
-#  else
-#   define YY_NULLPTR 0
-#  endif
-# endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
-   by #include "dds.tab.hh".  */
-#ifndef YY_DDS_DDS_TAB_HH_INCLUDED
-# define YY_DDS_DDS_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int ddsdebug;
-#endif
-/* "%code requires" blocks.  */
-#line 47 "dds.yy" /* yacc.c:355  */
-
-
-#include "config_dap.h"
-
-#include <cstring>
-#include <cassert>
-#include <iostream>
-#include <stack>
-#include <sstream>
-
-#include "Byte.h"
-#include "Int16.h"
-#include "UInt16.h"
-#include "Int32.h"
-#include "UInt32.h"
-#include "Float32.h"
-#include "Float64.h"
-#include "Str.h"
-#include "Url.h"
-#include "Array.h"
-#include "Structure.h"
-#include "Sequence.h"
-#include "Grid.h"
-
-#include "DDS.h"
-#include "Error.h"
-#include "parser.h"
-#include "util.h"
-
-using namespace std;
-using namespace libdap;
-
-// These macros are used to access the `arguments' passed to the parser. A
-// pointer to an error object and a pointer to an integer status variable are
-// passed in to the parser within a structure (which itself is passed as a
-// pointer). Note that the ERROR macro explicitly casts OBJ to an ERROR *. 
-// ERROR is no longer used. These parsers now signal problems by throwing
-// exceptions. 5/22/2002 jhrg
-#define DDS_OBJ(arg) ((DDS *)((parser_arg *)(arg))->_object)
-
-// #define YYPARSE_PARAM arg
-
-extern int dds_line_num;	/* defined in dds.lex */
-
-
-#line 151 "dds.tab.cc" /* yacc.c:355  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_WORD = 258,
-    SCAN_DATASET = 259,
-    SCAN_LIST = 260,
-    SCAN_SEQUENCE = 261,
-    SCAN_STRUCTURE = 262,
-    SCAN_FUNCTION = 263,
-    SCAN_GRID = 264,
-    SCAN_BYTE = 265,
-    SCAN_INT16 = 266,
-    SCAN_UINT16 = 267,
-    SCAN_INT32 = 268,
-    SCAN_UINT32 = 269,
-    SCAN_FLOAT32 = 270,
-    SCAN_FLOAT64 = 271,
-    SCAN_STRING = 272,
-    SCAN_URL = 273
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 131 "dds.yy" /* yacc.c:355  */
-
-    bool boolean;
-    char word[ID_MAX];
-
-#line 187 "dds.tab.cc" /* yacc.c:355  */
-};
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE ddslval;
-
-int ddsparse (parser_arg *arg);
-
-#endif /* !YY_DDS_DDS_TAB_HH_INCLUDED  */
-
-/* Copy the second part of user declarations.  */
-
-#line 202 "dds.tab.cc" /* yacc.c:358  */
-/* Unqualified %code blocks.  */
-#line 93 "dds.yy" /* yacc.c:359  */
-
-
-// No global static objects in the dap library! 1/24/2000 jhrg
-static stack<BaseType *> *ctor;
-static BaseType *current;
-static string *id;
-static Part part = nil;		/* Part is defined in BaseType */
-
-static const char *NO_DDS_MSG =
-"The descriptor object returned from the dataset was null.\n\
-Check that the URL is correct.";
-
-static const char *BAD_DECLARATION =
-"In the dataset descriptor object: Expected a variable declaration\n\
-(e.g., Int32 i;). Make sure that the variable name is not the name\n\
-of a datatype and that the Array: and Maps: sections of a Grid are\n\
-labeled properly.";
-
-int ddslex();
-void ddserror(parser_arg *arg, const string &s /*char *s*/);
-void error_exit_cleanup();
-void add_entry(DDS &table, stack<BaseType *> **ctor, BaseType **current, 
-	       Part p);
-void invalid_declaration(parser_arg *arg, string semantic_err_msg, 
-			 char *type, char *name);
-
-
-#line 232 "dds.tab.cc" /* yacc.c:359  */
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                 \
-    while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
-#  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYSIZE_T yyi;                         \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
-      while (0)
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  3
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   194
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  26
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  22
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  56
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  88
-
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   273
-
-#define YYTRANSLATE(YYX)                                                \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    22,    21,
-       2,    25,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,    23,     2,    24,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    19,     2,    20,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18
-};
-
-#if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
-{
-       0,   160,   160,   160,   176,   177,   180,   184,   193,   196,
-     197,   206,   221,   220,   242,   241,   263,   275,   287,   262,
-     308,   318,   324,   330,   336,   337,   338,   339,   340,   341,
-     342,   343,   344,   347,   348,   351,   351,   351,   351,   351,
-     352,   352,   352,   352,   353,   353,   353,   353,   354,   357,
-     379,   383,   378,   409,   419,   420,   421
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 0
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "SCAN_WORD", "SCAN_DATASET", "SCAN_LIST",
-  "SCAN_SEQUENCE", "SCAN_STRUCTURE", "SCAN_FUNCTION", "SCAN_GRID",
-  "SCAN_BYTE", "SCAN_INT16", "SCAN_UINT16", "SCAN_INT32", "SCAN_UINT32",
-  "SCAN_FLOAT32", "SCAN_FLOAT64", "SCAN_STRING", "SCAN_URL", "'{'", "'}'",
-  "';'", "':'", "'['", "']'", "'='", "$accept", "start", "$@1", "datasets",
-  "dataset", "declarations", "declaration", "$@2", "$@3", "$@4", "$@5",
-  "$@6", "structure", "sequence", "grid", "base_type", "var", "var_name",
-  "array_decl", "$@7", "$@8", "name", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   123,
-     125,    59,    58,    91,    93,    61
-};
-# endif
-
-#define YYPACT_NINF -53
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-53)))
-
-#define YYTABLE_NINF -9
-
-#define yytable_value_is_error(Yytable_value) \
-  0
-
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int16 yypact[] =
-{
-     -53,    11,     9,   -53,   -53,    -7,     5,   -53,    52,   -53,
-     -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,
-     -53,   -53,   -53,    70,   -53,    -3,    -2,    -1,   176,   142,
-     -53,    52,    52,    16,   -53,   -53,   -53,   -53,   -53,   -53,
-     -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,     2,   -53,
-     -53,   -53,   -53,     0,    88,   106,    12,   -53,   -53,    17,
-     -53,   -53,   -53,   -53,   -53,    13,   176,   176,   160,   -53,
-      10,     3,     6,    19,    33,   -53,   -53,    18,   -53,   -53,
-      14,    52,   -53,   124,   -53,   176,     7,   -53
-};
-
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
-static const yytype_uint8 yydefact[] =
-{
-       2,     0,     0,     1,     7,     0,     0,     4,     0,     5,
-      20,    22,    21,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,     0,     9,     0,     0,     0,     0,     0,
-      10,     0,     0,     0,    35,    48,    46,    45,    47,    36,
-      37,    39,    38,    40,    41,    42,    43,    44,     0,    33,
-      56,    55,    54,     0,     0,     0,     0,    53,    11,     0,
-      34,     6,    12,    14,    16,    50,     0,     0,     0,    49,
-       0,     0,     0,     0,     0,    13,    15,     0,    51,    17,
-       0,     0,    52,     0,    18,     0,     0,    19
-};
-
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-     -53,   -53,   -53,   -53,    35,   -30,   -23,   -53,   -53,   -53,
-     -53,   -53,   -53,   -53,   -53,   -53,   -52,    15,   -53,   -53,
-     -53,   -53
-};
-
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int8 yydefgoto[] =
-{
-      -1,     1,     2,     6,     7,    23,    24,    66,    67,    68,
-      81,    85,    25,    26,    27,    28,    48,    49,    60,    70,
-      80,    53
-};
-
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
-static const yytype_int8 yytable[] =
-{
-      30,    54,    55,    57,    57,    -3,     4,    57,    57,     5,
-       4,     3,     8,     5,    71,    72,    31,    32,    33,    56,
-      65,    61,    77,    58,    75,    59,    59,    76,    87,    59,
-      59,    30,    30,    86,    64,    74,    78,    69,    82,     0,
-      79,     9,     0,     0,    52,    73,     0,     0,     0,     0,
-       0,    83,     0,    10,     0,     0,     0,     0,    11,    12,
-      30,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    10,    -8,     0,     0,     0,    11,    12,     0,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    10,
-      29,     0,     0,     0,    11,    12,     0,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    10,    62,     0,
-       0,     0,    11,    12,     0,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    10,    63,     0,     0,     0,
-      11,    12,     0,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    50,    84,    34,    51,    35,    36,    37,
-       0,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    10,     0,     0,     0,     0,    11,    12,     0,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    34,
-       0,    35,    36,    37,     0,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47
-};
-
-static const yytype_int8 yycheck[] =
-{
-      23,    31,    32,     1,     1,     0,     1,     1,     1,     4,
-       1,     0,    19,     4,    66,    67,    19,    19,    19,     3,
-       3,    21,     3,    21,    21,    23,    23,    21,    21,    23,
-      23,    54,    55,    85,    22,    25,     3,    24,    24,    -1,
-      22,     6,    -1,    -1,    29,    68,    -1,    -1,    -1,    -1,
-      -1,    81,    -1,     1,    -1,    -1,    -1,    -1,     6,     7,
-      83,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,     1,    20,    -1,    -1,    -1,     6,     7,    -1,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,     1,
-      20,    -1,    -1,    -1,     6,     7,    -1,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,     1,    20,    -1,
-      -1,    -1,     6,     7,    -1,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,     1,    20,    -1,    -1,    -1,
-       6,     7,    -1,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,     1,    20,     3,     4,     5,     6,     7,
-      -1,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,     1,    -1,    -1,    -1,    -1,     6,     7,    -1,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,     3,
-      -1,     5,     6,     7,    -1,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18
-};
-
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
-{
-       0,    27,    28,     0,     1,     4,    29,    30,    19,    30,
-       1,     6,     7,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    31,    32,    38,    39,    40,    41,    20,
-      32,    19,    19,    19,     3,     5,     6,     7,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    42,    43,
-       1,     4,    43,    47,    31,    31,     3,     1,    21,    23,
-      44,    21,    20,    20,    22,     3,    33,    34,    35,    24,
-      45,    42,    42,    32,    25,    21,    21,     3,     3,    22,
-      46,    36,    24,    31,    20,    37,    42,    21
-};
-
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    26,    28,    27,    29,    29,    30,    30,    31,    31,
-      31,    32,    33,    32,    34,    32,    35,    36,    37,    32,
-      32,    38,    39,    40,    41,    41,    41,    41,    41,    41,
-      41,    41,    41,    42,    42,    43,    43,    43,    43,    43,
-      43,    43,    43,    43,    43,    43,    43,    43,    43,    44,
-      45,    46,    44,    44,    47,    47,    47
-};
-
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     0,     2,     1,     2,     6,     1,     0,     1,
-       2,     3,     0,     7,     0,     7,     0,     0,     0,    14,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
-       0,     0,     7,     1,     1,     1,     1
-};
-
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (arg, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
-
-/* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
-
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Type, Value, arg); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_arg *arg)
-{
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
-  YYUSE (arg);
-  if (!yyvaluep)
-    return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-  YYUSE (yytype);
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_arg *arg)
-{
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, arg);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, parser_arg *arg)
-{
-  unsigned long int yylno = yyrline[yyrule];
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-             yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                                              , arg);
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule, arg); \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                    return 2;
-                  yysize = yysize1;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  {
-    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-      return 2;
-    yysize = yysize1;
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_arg *arg)
-{
-  YYUSE (yyvaluep);
-  YYUSE (arg);
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-int
-yyparse (parser_arg *arg)
-{
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
-
-       Refer to the stacks through separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
-                    &yystacksize);
-
-        yyss = yyss1;
-        yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
-
-      {
-        yytype_int16 *yyss1 = yyss;
-        union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-#line 160 "dds.yy" /* yacc.c:1646  */
-    {
-		    /* On entry to the parser, make the BaseType stack. 
-		       I use if (!ctor) here because in the tab.cc file,
-		       this is a case block in a switch, so it could be
-		       run more than once, causing the storage to be
-		       overwritten. jhrg 6/26/15 */
-		       
-		    if (!ctor)
-		    	ctor = new stack<BaseType *>;
-        }
-#line 1399 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 3:
-#line 171 "dds.yy" /* yacc.c:1646  */
-    {
-		    delete ctor; ctor = 0;
-		}
-#line 1407 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 6:
-#line 181 "dds.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = (yyvsp[-3].boolean) && (yyvsp[-1].boolean);
-		}
-#line 1415 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 7:
-#line 185 "dds.yy" /* yacc.c:1646  */
-    {
-		    parse_error((parser_arg *)arg, NO_DDS_MSG, dds_line_num, (yyvsp[0].word));
-		    error_exit_cleanup();
-		    YYABORT;
-		}
-#line 1425 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 8:
-#line 193 "dds.yy" /* yacc.c:1646  */
-    {
-		    (yyval.boolean) = true;
-		}
-#line 1433 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 9:
-#line 196 "dds.yy" /* yacc.c:1646  */
-    { (yyval.boolean) = true; }
-#line 1439 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 10:
-#line 197 "dds.yy" /* yacc.c:1646  */
-    { (yyval.boolean) = true; }
-#line 1445 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 11:
-#line 207 "dds.yy" /* yacc.c:1646  */
-    { 
-		    string smsg;
-		    if (current->check_semantics(smsg)) {
-			    add_entry(*DDS_OBJ(arg), &ctor, &current, part); 
-		    } else {
-		      invalid_declaration((parser_arg *)arg, smsg, (yyvsp[-2].word), (yyvsp[-1].word));
-		      error_exit_cleanup();
-		      YYABORT;
-		    }
-            strncpy((yyval.word),(yyvsp[-1].word),ID_MAX);
-            (yyval.word)[ID_MAX-1] = '\0';
-		}
-#line 1462 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 12:
-#line 221 "dds.yy" /* yacc.c:1646  */
-    { 
-		    if( current ) delete current ;
-		    current = ctor->top(); 
-		    ctor->pop();
-		}
-#line 1472 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 13:
-#line 227 "dds.yy" /* yacc.c:1646  */
-    { 
-		    string smsg;
-		    if (current->check_semantics(smsg)) {
-			    add_entry(*DDS_OBJ(arg), &ctor, &current, part); 
-			}
-		    else {
-		        invalid_declaration((parser_arg *)arg, smsg, (yyvsp[-6].word), (yyvsp[-1].word));
-		        error_exit_cleanup();
-		        YYABORT;
-		    }
-            strncpy((yyval.word),(yyvsp[-1].word),ID_MAX);
-            (yyval.word)[ID_MAX-1] = '\0';
-		}
-#line 1490 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 14:
-#line 242 "dds.yy" /* yacc.c:1646  */
-    { 
-		    if( current ) delete current ;
-		    current = ctor->top(); 
-		    ctor->pop();
-		}
-#line 1500 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 15:
-#line 248 "dds.yy" /* yacc.c:1646  */
-    { 
-		    string smsg;
-		    if (current->check_semantics(smsg)) {
-			    add_entry(*DDS_OBJ(arg), &ctor, &current, part); 
-			}
-		    else {
-		      invalid_declaration((parser_arg *)arg, smsg, (yyvsp[-6].word), (yyvsp[-1].word));
-		      error_exit_cleanup();
-		      YYABORT;
-		    }
-            strncpy((yyval.word),(yyvsp[-1].word),ID_MAX);
-            (yyval.word)[ID_MAX-1] = '\0';
-		}
-#line 1518 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 16:
-#line 263 "dds.yy" /* yacc.c:1646  */
-    { 
-		    if (is_keyword(string((yyvsp[-1].word)), "array")) {
-			    part = array;
-			}
-		    else {
-			    ostringstream msg;
-			    msg << BAD_DECLARATION;
-			    parse_error((parser_arg *)arg, msg.str().c_str(), dds_line_num, (yyvsp[-1].word));
-			    YYABORT;
-		    }
-        }
-#line 1534 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 17:
-#line 275 "dds.yy" /* yacc.c:1646  */
-    { 
-		    if (is_keyword(string((yyvsp[-1].word)), "maps")) {
-			    part = maps; 
-			}
-		    else {
-			    ostringstream msg;
-			    msg << BAD_DECLARATION;
-			    parse_error((parser_arg *)arg, msg.str().c_str(), dds_line_num, (yyvsp[-1].word));
-			    YYABORT;
-		    }
-        }
-#line 1550 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 18:
-#line 287 "dds.yy" /* yacc.c:1646  */
-    {
-		    if( current ) delete current ;
-		    current = ctor->top(); 
-		    ctor->pop();
-		}
-#line 1560 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 19:
-#line 293 "dds.yy" /* yacc.c:1646  */
-    {
-		    string smsg;
-		    if (current->check_semantics(smsg)) {
-			    part = nil; 
-			    add_entry(*DDS_OBJ(arg), &ctor, &current, part); 
-		    }
-		    else {
-		      invalid_declaration((parser_arg *)arg, smsg, (yyvsp[-13].word), (yyvsp[-1].word));
-		      error_exit_cleanup();
-		      YYABORT;
-		    }
-        strncpy((yyval.word),(yyvsp[-1].word),ID_MAX);
-        (yyval.word)[ID_MAX-1] = '\0';
-		}
-#line 1579 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 20:
-#line 309 "dds.yy" /* yacc.c:1646  */
-    {
-		    ostringstream msg;
-		    msg << BAD_DECLARATION;
-		    parse_error((parser_arg *)arg, msg.str().c_str(), dds_line_num, (yyvsp[0].word));
-		    YYABORT;
-		}
-#line 1590 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 21:
-#line 319 "dds.yy" /* yacc.c:1646  */
-    { 
-		    ctor->push(DDS_OBJ(arg)->get_factory()->NewStructure()); 
-		}
-#line 1598 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 22:
-#line 325 "dds.yy" /* yacc.c:1646  */
-    { 
-		    ctor->push(DDS_OBJ(arg)->get_factory()->NewSequence()); 
-		}
-#line 1606 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 23:
-#line 331 "dds.yy" /* yacc.c:1646  */
-    { 
-		    ctor->push(DDS_OBJ(arg)->get_factory()->NewGrid()); 
-		}
-#line 1614 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 24:
-#line 336 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewByte(); }
-#line 1620 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 25:
-#line 337 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewInt16(); }
-#line 1626 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 26:
-#line 338 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewUInt16(); }
-#line 1632 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 27:
-#line 339 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewInt32(); }
-#line 1638 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 28:
-#line 340 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewUInt32(); }
-#line 1644 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 29:
-#line 341 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewFloat32(); }
-#line 1650 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 30:
-#line 342 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewFloat64(); }
-#line 1656 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 31:
-#line 343 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewStr(); }
-#line 1662 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 32:
-#line 344 "dds.yy" /* yacc.c:1646  */
-    { if( current ) delete current ;current = DDS_OBJ(arg)->get_factory()->NewUrl(); }
-#line 1668 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 33:
-#line 347 "dds.yy" /* yacc.c:1646  */
-    { current->set_name((yyvsp[0].word)); }
-#line 1674 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 49:
-#line 358 "dds.yy" /* yacc.c:1646  */
-    { 
-		    if (!check_int32((yyvsp[-1].word))) {
-			    string msg = "In the dataset descriptor object:\n";
-			    msg += "Expected an array subscript.\n";
-			    parse_error((parser_arg *)arg, msg.c_str(), dds_line_num, (yyvsp[-1].word));
-		    }
-		    if (current->type() == dods_array_c && check_int32((yyvsp[-1].word))) {
-			    ((Array *)current)->append_dim(atoi((yyvsp[-1].word)));
-		    }
-		    else {
-			    Array *a = DDS_OBJ(arg)->get_factory()->NewArray(); 
-			    a->add_var(current); 
-			    a->append_dim(atoi((yyvsp[-1].word)));
-			    if( current ) delete current ;
-			    current = a;
-		    }
-
-		    (yyval.boolean) = true;
-		 }
-#line 1698 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 50:
-#line 379 "dds.yy" /* yacc.c:1646  */
-    {
-		     if (!id) id = new string((yyvsp[0].word));
-		 }
-#line 1706 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 51:
-#line 383 "dds.yy" /* yacc.c:1646  */
-    { 
-		     if (!check_int32((yyvsp[0].word))) {
-			     string msg = "In the dataset descriptor object:\n";
-			     msg += "Expected an array subscript.\n";
-			     parse_error((parser_arg *)arg, msg.c_str(), dds_line_num, (yyvsp[0].word));
-			     error_exit_cleanup();
-			     YYABORT;
-		     }
-		     if (current->type() == dods_array_c) {
-			     ((Array *)current)->append_dim(atoi((yyvsp[0].word)), *id);
-		     }
-		     else {
-			     Array *a = DDS_OBJ(arg)->get_factory()->NewArray(); 
-			     a->add_var(current); 
-			     a->append_dim(atoi((yyvsp[0].word)), *id);
-			     if( current ) delete current ;
-			     current = a;
-		     }
-
-		     delete id; id = 0;
-		 }
-#line 1732 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 52:
-#line 405 "dds.yy" /* yacc.c:1646  */
-    {
-		     (yyval.boolean) = true;
-		 }
-#line 1740 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 53:
-#line 410 "dds.yy" /* yacc.c:1646  */
-    {
-		     ostringstream msg;
-		     msg << "In the dataset descriptor object:" << endl
-			     << "Expected an array subscript." << endl;
-		     parse_error((parser_arg *)arg, msg.str().c_str(), dds_line_num, (yyvsp[0].word));
-		     YYABORT;
-		 }
-#line 1752 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 54:
-#line 419 "dds.yy" /* yacc.c:1646  */
-    { (*DDS_OBJ(arg)).set_dataset_name((yyvsp[0].word)); (yyval.boolean) = true;}
-#line 1758 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 55:
-#line 420 "dds.yy" /* yacc.c:1646  */
-    { (*DDS_OBJ(arg)).set_dataset_name((yyvsp[0].word)); (yyval.boolean) = true; }
-#line 1764 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-  case 56:
-#line 422 "dds.yy" /* yacc.c:1646  */
-    {
-		    ostringstream msg;
-		    msg << "Error parsing the dataset name." << endl
-		        << "The name may be missing or may contain an illegal character." << endl;
-		    parse_error((parser_arg *)arg, msg.str().c_str(), dds_line_num, (yyvsp[0].word));
-		    YYABORT;
-		}
-#line 1776 "dds.tab.cc" /* yacc.c:1646  */
-    break;
-
-
-#line 1780 "dds.tab.cc" /* yacc.c:1646  */
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now 'shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error.  |
-`--------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (arg, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (arg, yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
-
-      if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
-      else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval, arg);
-          yychar = YYEMPTY;
-        }
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-        YYABORT;
-
-
-      yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp, arg);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (arg, YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, arg);
-    }
-  /* Do not reclaim the symbols of the rule whose action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp, arg);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  return yyresult;
-}
-#line 431 "dds.yy" /* yacc.c:1906  */
-
-
-/* 
- This function must be defined. However, use the error reporting code in
- parser-utils.cc.
- */
-
-void
-ddserror(parser_arg *, const string &)
-{
-}
-
-/*
- Error clean up. Call this before calling YYBORT. Don't call this on a
- normal exit.
- */
-
-void error_exit_cleanup()
-{
-    delete id;
-    id = 0;
-    delete current;
-    current = 0;
-    delete ctor;
-    ctor = 0;
-}
-
-/*
- Invalid declaration message.
- */
-
-void invalid_declaration(parser_arg *arg, string semantic_err_msg, char *type, char *name)
-{
-    ostringstream msg;
-    msg << "In the dataset descriptor object: `" << type << " " << name << "'" << endl << "is not a valid declaration."
-            << endl << semantic_err_msg;
-    parse_error((parser_arg *) arg, msg.str().c_str(), dds_line_num);
-}
-
-/*
- Add the variable pointed to by CURRENT to either the topmost ctor object on
- the stack CTOR or to the dataset variable table TABLE if CTOR is empty.  If
- it exists, the current ctor object is popped off the stack and assigned to
- CURRENT.
-
- NB: the ctor stack is popped for arrays because they are ctors which
- contain only a single variable. For other ctor types, several variables may
- be members and the parse rule (see `declaration' above) determines when to
- pop the stack.
-
- Returns: void 
- */
-
-void add_entry(DDS &table, stack<BaseType *> **ctor, BaseType **current, Part part)
-{
-    if (!*ctor)
-        *ctor = new stack<BaseType *> ;
-
-    if (!(*ctor)->empty()) { /* must be parsing a ctor type */
-        (*ctor)->top()->add_var(*current, part);
-
-        const Type &ctor_type = (*ctor)->top()->type();
-
-        if (ctor_type == dods_array_c) {
-            if (*current)
-                delete *current;
-            *current = (*ctor)->top();
-            (*ctor)->pop();
-
-            // Return here to avoid deleting the new value of 'current.'
-            return;
-        }
-    }
-    else {
-        table.add_var(*current);
-    }
-
-    if (*current)
-        delete *current;
-    *current = 0;
-}
-
diff --git a/dds.tab.hh b/dds.tab.hh
deleted file mode 100644
index f7178f8..0000000
--- a/dds.tab.hh
+++ /dev/null
@@ -1,136 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.0.1.  */
-
-/* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-#ifndef YY_DDS_DDS_TAB_HH_INCLUDED
-# define YY_DDS_DDS_TAB_HH_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int ddsdebug;
-#endif
-/* "%code requires" blocks.  */
-#line 47 "dds.yy" /* yacc.c:1909  */
-
-
-#include "config_dap.h"
-
-#include <cstring>
-#include <cassert>
-#include <iostream>
-#include <stack>
-#include <sstream>
-
-#include "Byte.h"
-#include "Int16.h"
-#include "UInt16.h"
-#include "Int32.h"
-#include "UInt32.h"
-#include "Float32.h"
-#include "Float64.h"
-#include "Str.h"
-#include "Url.h"
-#include "Array.h"
-#include "Structure.h"
-#include "Sequence.h"
-#include "Grid.h"
-
-#include "DDS.h"
-#include "Error.h"
-#include "parser.h"
-#include "util.h"
-
-using namespace std;
-using namespace libdap;
-
-// These macros are used to access the `arguments' passed to the parser. A
-// pointer to an error object and a pointer to an integer status variable are
-// passed in to the parser within a structure (which itself is passed as a
-// pointer). Note that the ERROR macro explicitly casts OBJ to an ERROR *. 
-// ERROR is no longer used. These parsers now signal problems by throwing
-// exceptions. 5/22/2002 jhrg
-#define DDS_OBJ(arg) ((DDS *)((parser_arg *)(arg))->_object)
-
-// #define YYPARSE_PARAM arg
-
-extern int dds_line_num;	/* defined in dds.lex */
-
-
-#line 90 "dds.tab.hh" /* yacc.c:1909  */
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    SCAN_WORD = 258,
-    SCAN_DATASET = 259,
-    SCAN_LIST = 260,
-    SCAN_SEQUENCE = 261,
-    SCAN_STRUCTURE = 262,
-    SCAN_FUNCTION = 263,
-    SCAN_GRID = 264,
-    SCAN_BYTE = 265,
-    SCAN_INT16 = 266,
-    SCAN_UINT16 = 267,
-    SCAN_INT32 = 268,
-    SCAN_UINT32 = 269,
-    SCAN_FLOAT32 = 270,
-    SCAN_FLOAT64 = 271,
-    SCAN_STRING = 272,
-    SCAN_URL = 273
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 131 "dds.yy" /* yacc.c:1909  */
-
-    bool boolean;
-    char word[ID_MAX];
-
-#line 126 "dds.tab.hh" /* yacc.c:1909  */
-};
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE ddslval;
-
-int ddsparse (parser_arg *arg);
-
-#endif /* !YY_DDS_DDS_TAB_HH_INCLUDED  */
diff --git a/dds.yy b/dds.yy
index 8ab6bcf..b3aeaac 100644
--- a/dds.yy
+++ b/dds.yy
@@ -262,7 +262,7 @@ declaration:  base_type var ';'
 		| grid '{' SCAN_WORD ':'
 		{ 
 		    if (is_keyword(string($3), "array")) {
-			    part = array;
+			    part = libdap::array;
 			}
 		    else {
 			    ostringstream msg;
diff --git a/deflate.c b/deflate.c
new file mode 100644
index 0000000..37f15ba
--- /dev/null
+++ b/deflate.c
@@ -0,0 +1,145 @@
+
+/* -*- mode: c; c-basic-offset:4 -*- */
+
+/* 
+   Copyright (C) 1998 World Wide Web Consortium, (Massachusetts Institute
+   of Technology, Institut National de Recherche en Informatique et en
+   Automatique, Keio University). All Rights Reserved.
+   http://www.w3.org/Consortium/Legal/
+ 
+   This file was derived from the libwww source code of 1998/08/20. The
+   copyright for the source of this derivative work can be found in the file
+   COPYRIGHT_W3C.
+*/
+
+/*
+  Picked up from the w3c. 2/10/1998 jhrg
+
+  Modified: Added the -s (silent) option to suppress diagnostic messages.
+*/
+
+const char *rcsid={"$Id$"};
+
+#include "stdlib.h"
+#include "string.h"
+#include "stdio.h"
+#include "zlib.h"
+
+z_stream z;
+
+#define DEFAULT_BUFFER_SIZE	32*1024
+#define DEFAULT_COMPRESSION	Z_DEFAULT_COMPRESSION;
+
+#define MAX(a,b) ((a) >= (b) ? (a) : (b))
+#define MIN(a,b) ((a) <= (b) ? (a) : (b))
+#ifndef TRUE
+#define TRUE (1)
+#define FALSE (0)
+#endif
+
+unsigned char *input_buffer 	= NULL;
+unsigned char *output_buffer 	= NULL;
+int  buffer_size 	= DEFAULT_BUFFER_SIZE;
+int  compression_rate	= DEFAULT_COMPRESSION;
+
+FILE * fin;
+FILE * fout;
+
+void HelpScreen (const char *progname)
+{
+    fprintf(stderr, "\nDeflates using Zlib from stdin to stdout\n");
+    fprintf(stderr, "Usage: %s\n", progname ? progname : "deflate");
+    fprintf(stderr, "Options:\n");
+    fprintf(stderr, "\t-b\tBuffer size (default 32K). This has no effect on compression result\n");
+    fprintf(stderr, "\t-c\tCompression rate [1..9] where 1 is compress faster and 9 is compress better (default 6)\n");
+    fprintf(stderr, "\t-s\tSilent. Print no diagnostics.\n");
+    fprintf(stderr, "\t-h\tHelp - this help screen\n");
+}
+
+int main (int argc, char ** argv)
+{
+    int arg;
+    int status;
+    int count;
+    int silent = FALSE;		/* default is to be verbose 2/10/1998 jhrg */
+
+    fin = stdin;
+    fout = stdout;
+
+    /* Scan command line for parameters */
+    for (arg=1; arg<argc; arg++) {
+	
+	if (*argv[arg] == '-') {
+     
+	    /* Buffer size */
+	    if (!strcmp(argv[arg], "-b")) {
+		buffer_size = (arg+1 < argc && *argv[arg+1] != '-') ?
+		    atoi(argv[++arg]) : DEFAULT_BUFFER_SIZE;
+		buffer_size = MAX(buffer_size, 256);
+
+	    /* Compression rate */
+	    } else if (!strcmp(argv[arg], "-c")) {
+		compression_rate = (arg+1 < argc && *argv[arg+1] != '-') ?
+		    atoi(argv[++arg]) : DEFAULT_COMPRESSION;
+		compression_rate = MAX(compression_rate, Z_BEST_SPEED);
+		compression_rate = MIN(compression_rate, Z_BEST_COMPRESSION);
+
+	    /* Print the help screen and exit */
+	    } else if (!strcmp(argv[arg], "-h")) {
+		HelpScreen(*argv);
+		exit(0);
+
+	    } else if (!strcmp(argv[arg], "-s")) {
+		silent = TRUE;
+
+	    } else {
+		HelpScreen(*argv);
+		exit(-1);
+	    }
+	} else {
+	    HelpScreen(*argv);
+	    exit(-1);
+	}
+    }
+
+    if ((input_buffer = (unsigned char *) calloc(1, buffer_size)) == NULL ||
+	(output_buffer = (unsigned char *) calloc(1, buffer_size)) == NULL) {
+	fprintf(stderr, "Not enough memory\n");
+	exit(-1);
+    }
+
+    deflateInit(&z, compression_rate);
+    z.avail_in = 0;
+    z.next_out = output_buffer;
+    z.avail_out = buffer_size;
+    for ( ; ; ) {
+        if ( z.avail_in == 0 ) {
+            z.next_in = input_buffer;
+            z.avail_in = fread( input_buffer, 1, buffer_size, fin );
+        }
+	if ( z.avail_in == 0 ) {
+	    status = deflate( &z, Z_FINISH );
+	    count = buffer_size - z.avail_out;
+	    if ( count ) fwrite( output_buffer, 1, count, fout );
+	    break;
+	}
+        status = deflate( &z, Z_NO_FLUSH );
+        count = buffer_size - z.avail_out;
+        if ( count ) fwrite( output_buffer, 1, count, fout );
+        z.next_out = output_buffer;
+        z.avail_out = buffer_size;
+    }
+    if (!silent)
+	fprintf(stderr, "Compressing data: raw data %lu, compressed %lu, factor %.2f, compression level (default = -1) %d, buffer size %d\n",
+		z.total_in, z.total_out,
+		z.total_in == 0 ? 0.0 :
+		(double)z.total_out / z.total_in,
+		compression_rate,
+		buffer_size);
+    deflateEnd(&z);
+    fflush(stdout);
+
+    if (input_buffer) free(input_buffer);
+    if (output_buffer) free(output_buffer);
+    return 0;
+}
diff --git a/depend.sh b/depend.sh
new file mode 100644
index 0000000..4b435a8
--- /dev/null
+++ b/depend.sh
@@ -0,0 +1,114 @@
+#!/bin/sh
+#
+# This file is part of libdap, A C++ implementation of the OPeNDAP Data
+# Access Protocol.
+
+# Copyright (c) 2002,2003 OPeNDAP, Inc.
+# Author: James Gallagher <jgallagher at opendap.org>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+# 
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+# You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+# depend is a script replacement for makedepend. It requires gcc.
+# -s causes system includes to be added to the dependencies.
+# -b <extension> causes <extension> to be used instead of `bak' when naming
+#    the backup copy of the Makefile.
+# -m <makefile name> causes depend to use <makefile name> instead of
+#    `Makefile'. 
+# -n Don't actually make the dependencies, just print out what would have been 
+#    done. 
+# -t Truncate the `Makefile' after making a backup copy. 
+# jhrg 8/17/99
+#
+# Added -b option. Added `-E' to CFLAGS.
+# jhrg 3/5/96
+#
+
+# $Id$
+
+usage="depend [-s][-t][-b <ext>][-m <makefile name>] -- <compiler options> -- <files>"
+CFLAGS="-E -MM -MG"
+tmp=/usr/tmp/depend$$
+makefile=Makefile
+bak=bak
+doit=1
+truncate=0
+
+# read the command options
+
+x=`getopt stnb:m: "$@"`		# "$@" preserves quotes in the input
+
+if [ $? != 0 ]			# $? is the exit status of 'getopt ...'
+then
+   echo "${usage}"
+   exit 2
+fi
+
+# set -- $x sets the shell positional params $1, $2, ... to the tokens in $x
+# (which were put there by `getopt ...`. The eval preserves any quotes in $x.
+
+eval set -- $x
+
+for c in "$@"
+do
+    case $c in
+	-s) CFLAGS="-E -M"; shift 1;;
+	-m) makefile=$2; shift 2;;
+	-b) bak=$2; shift 2;;
+	-n) doit=0; shift 1;;
+	-t) truncate=1; shift 1;;
+        -\?) echo $usage; exit 2;;
+	--) shift 1; break;;
+    esac
+done
+
+# accumulate the C compiler options into CFLAGS
+
+while [ $1 != '--' ]
+do
+    CFLAGS="$CFLAGS $1"
+    shift 1
+done
+shift 1				# shift past the second `--' to the files
+
+if test $doit = "1"
+then
+
+    if test $truncate = "0"
+    then
+	# build the new Makefile in a tmp directory using the existing 
+	# makefile: first copy everything up to the dependencies using awk,
+	# then compute and append the dependencies of the files (which are
+	# the remaining arguments). 
+	awk 'BEGIN {found = 0}
+	    /DO NOT DELETE/ {found = 1; print $0}
+	    found != 1 {print $0}
+	    found == 1 {exit}' $makefile > $tmp
+    fi
+    gcc $CFLAGS $* >> $tmp
+
+    mv $makefile ${makefile}.${bak}	# backup the current Makefile 
+
+    mv $tmp $makefile
+
+else
+
+    echo "gcc $CFLAGS $* >> $tmp"
+    echo "mv $makefile ${makefile}.${bak}"
+    echo "mv $tmp $makefile"
+
+fi
+
+exit 0
diff --git a/dods-datatypes.h b/dods-datatypes.h
deleted file mode 100644
index 5cba1f6..0000000
--- a/dods-datatypes.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-    This header is used when the compile-time definitions won't work.
-*/
-
-#ifndef __DODS_DATATYPES__
-#define __DODS_DATATYPES__
-
-#include <inttypes.h>
-
-namespace libdap
-{
-
-typedef int32_t dods_int32;
-
-typedef uint32_t dods_uint32;
-
-typedef int16_t dods_int16;
-
-typedef uint16_t dods_uint16;
-
-typedef uint8_t dods_byte;
-
-typedef double dods_float64;
-
-typedef float dods_float32;		
-
-// Added for DAP4
-typedef int8_t dods_int8;
-
-typedef int64_t dods_int64;
-
-typedef uint64_t dods_uint64;
-
-typedef int64_t dods_enum;
-
-} // namespace libdap
-
-#endif /* __DODS_DATATYPES__ */
diff --git a/doxy.conf b/doxy.conf
deleted file mode 100644
index b0ece18..0000000
--- a/doxy.conf
+++ /dev/null
@@ -1,1363 +0,0 @@
-# Doxyfile 1.5.5
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file 
-# that follow. The default is UTF-8 which is also the encoding used for all 
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
-# iconv built into libc) for the transcoding. See 
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = libdap++
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = "Updated for version 3.15.1"
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = docs
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, 
-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), 
-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, 
-# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, 
-# and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = NO
-
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = 
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-
-STRIP_FROM_PATH        = 
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like regular Qt-style comments 
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
-# interpret the first line (until the first dot) of a Qt-style 
-# comment as the brief description. If set to NO, the comments 
-# will behave just like regular Qt-style comments (thus requiring 
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for 
-# Java. For instance, namespaces will be presented as packages, qualified 
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
-# sources only. Doxygen will then generate output that is more tailored for 
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
-# sources. Doxygen will then generate output that is tailored for 
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
-# to include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
-# Doxygen will parse them like normal C++ but will assume all classes use public 
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
-# is documented as struct, union, or enum with the name of the typedef. So 
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
-# with name TypeT. When disabled the typedef will appear as a member of a file, 
-# namespace, or class. And the struct will be named TypeS. This can typically 
-# be useful for C code in case the coding convention dictates that all compound 
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = NO
-
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be 
-# extracted and appear in the documentation as a namespace called 
-# 'anonymous_namespace{file}', where file will be replaced with the base 
-# name of the file that contains the anonymous namespace. By default 
-# anonymous namespace are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-
-SORT_BRIEF_DOCS        = YES
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
-# hierarchy of group names into alphabetical order. If set to NO (the default) 
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from 
-# the version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = .
-
-# This tag can be used to specify the character encoding of the source files 
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
-# also the default input encoding. Doxygen uses libiconv (or the iconv built 
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
-
-FILE_PATTERNS          = *.cc \
-                         *.h \
-                         *.doxygen
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = expr.h
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = *.tab.cc \
-                         *.tab.h \
-                         lex.* \
-                         Test*.cc \
-                         Test*.h \
-                         *Test.cc
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
-# (namespaces, classes, functions, etc.) that should be excluded from the 
-# output. The symbol name can be a fully qualified name, a word, or if the 
-# wildcard * is used, a substring. Examples: ANamespace, AClass, 
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = 
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files 
-# will be generated that can be used as input for Apple's Xcode 3 
-# integrated development environment, introduced with OSX 10.5 (Leopard). 
-# To create a documentation set, doxygen will generate a Makefile in the 
-# HTML output directory. Running make will produce the docset in that 
-# directory and running "make install" will install the docset in 
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
-# it at startup.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
-# feed. A documentation feed provides an umbrella under which multiple 
-# documentation sets from a single provider (such as a company or product suite) 
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
-# should uniquely identify the documentation set bundle. This should be a 
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
-# documentation will contain sections that can be hidden and shown after the 
-# page has loaded. For this to work a browser that supports 
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = YES
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = YES
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = letter
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3n
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
-# powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc 
-# command. Doxygen will then run the mscgen tool (see 
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
-# the mscgen tool resides. If left empty the tool is assumed to be found in the 
-# default search path.
-
-MSCGEN_PATH            = 
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = NO
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-
-UML_LOOK               = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then 
-# doxygen will generate a call dependency graph for every global function 
-# or class method. Note that enabling this option will significantly increase 
-# the time of a run. So in most cases it will be better to enable call graphs 
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = YES
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
-# doxygen will generate a caller dependency graph for every global function 
-# or class method. Note that enabling this option will significantly increase 
-# the time of a run. So in most cases it will be better to enable caller 
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
-# nodes that will be shown in the graph. If the number of nodes in a graph 
-# becomes larger than this value, doxygen will truncate the graph, which is 
-# visualized by representing a node as a red box. Note that doxygen if the 
-# number of direct children of the root node in a graph is already larger than 
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that the size of a graph can be further restricted by 
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is enabled by default, which results in a transparent 
-# background. Warning: Depending on the platform used, enabling this option 
-# may lead to badly anti-aliased labels on the edges of a graph (i.e. they 
-# become hard to read).
-
-DOT_TRANSPARENT        = YES
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/doxy.conf.in b/doxy.conf.in
index 70809ba..7150f6c 100644
--- a/doxy.conf.in
+++ b/doxy.conf.in
@@ -1,1363 +1,2439 @@
-# Doxyfile 1.5.5
+# Doxyfile 1.8.11
 
 # This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
+# doxygen (www.doxygen.org) for a project.
 #
-# All text after a hash (#) is considered a comment and will be ignored
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
 # The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
 
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
 
-# This tag specifies the encoding used for all characters in the config file 
-# that follow. The default is UTF-8 which is also the encoding used for all 
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
-# iconv built into libc) for the transcoding. See 
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
 
 DOXYFILE_ENCODING      = UTF-8
 
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
 
-PROJECT_NAME           = libdap++
+PROJECT_NAME           = @PACKAGE_NAME@
 
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
 
 PROJECT_NUMBER         = "Updated for version @PACKAGE_VERSION@"
 
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
 
 OUTPUT_DIRECTORY       = docs
 
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, 
-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), 
-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, 
-# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, 
-# and Ukrainian.
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = YES
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
 
 OUTPUT_LANGUAGE        = English
 
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
 
 BRIEF_MEMBER_DESC      = YES
 
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
 # brief descriptions will be completely suppressed.
+# The default value is: YES.
 
-REPEAT_BRIEF           = NO
+REPEAT_BRIEF           = YES
 
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
 
-ABBREVIATE_BRIEF       = 
+ABBREVIATE_BRIEF       =
 
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
 # description.
+# The default value is: NO.
 
 ALWAYS_DETAILED_SEC    = YES
 
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
 # operators of the base classes will not be shown.
+# The default value is: NO.
 
 INLINE_INHERITED_MEMB  = YES
 
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
 
 FULL_PATH_NAMES        = NO
 
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
-STRIP_FROM_PATH        = 
+STRIP_FROM_PATH        =
 
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
 
-STRIP_FROM_INC_PATH    = 
+STRIP_FROM_INC_PATH    =
 
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
 
 SHORT_NAMES            = NO
 
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like regular Qt-style comments 
-# (thus requiring an explicit @brief command for a brief description.)
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
 
 JAVADOC_AUTOBRIEF      = NO
 
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
-# interpret the first line (until the first dot) of a Qt-style 
-# comment as the brief description. If set to NO, the comments 
-# will behave just like regular Qt-style comments (thus requiring 
-# an explicit \brief command for a brief description.)
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
 
 QT_AUTOBRIEF           = NO
 
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
 
 MULTILINE_CPP_IS_BRIEF = NO
 
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
 
 INHERIT_DOCS           = YES
 
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
-# be part of the file/class/namespace that contains it.
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
 
 SEPARATE_MEMBER_PAGES  = NO
 
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
 
 TAB_SIZE               = 8
 
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                =
 
-ALIASES                = 
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
 
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
 
 OPTIMIZE_OUTPUT_FOR_C  = NO
 
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for 
-# Java. For instance, namespaces will be presented as packages, qualified 
-# scopes will look different, etc.
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
 
 OPTIMIZE_OUTPUT_JAVA   = NO
 
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
-# sources only. Doxygen will then generate output that is more tailored for 
-# Fortran.
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
 
 OPTIMIZE_FOR_FORTRAN   = NO
 
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
-# sources. Doxygen will then generate output that is tailored for 
-# VHDL.
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
 
 OPTIMIZE_OUTPUT_VHDL   = NO
 
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
-# to include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
 # diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
 
-BUILTIN_STL_SUPPORT    = NO
+BUILTIN_STL_SUPPORT    = YES
 
 # If you use Microsoft's C++/CLI language, you should set this option to YES to
 # enable parsing support.
+# The default value is: NO.
 
 CPP_CLI_SUPPORT        = NO
 
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
-# Doxygen will parse them like normal C++ but will assume all classes use public 
-# instead of private inheritance when no explicit protection keyword is present.
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
 
 SIP_SUPPORT            = NO
 
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
 # all members of a group must be documented explicitly.
+# The default value is: NO.
 
 DISTRIBUTE_GROUP_DOC   = NO
 
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
 
 SUBGROUPING            = YES
 
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
-# is documented as struct, union, or enum with the name of the typedef. So 
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
-# with name TypeT. When disabled the typedef will appear as a member of a file, 
-# namespace, or class. And the struct will be named TypeS. This can typically 
-# be useful for C code in case the coding convention dictates that all compound 
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
 # types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
 
 TYPEDEF_HIDES_STRUCT   = NO
 
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
 
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
 
-EXTRACT_ALL            = YES
+EXTRACT_ALL            = NO
+# EXTRACT_ALL            = YES
 
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
 
 EXTRACT_PRIVATE        = NO
 
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
 
 EXTRACT_STATIC         = NO
 
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
 
 EXTRACT_LOCAL_CLASSES  = NO
 
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
 
 EXTRACT_LOCAL_METHODS  = NO
 
-# If this flag is set to YES, the members of anonymous namespaces will be 
-# extracted and appear in the documentation as a namespace called 
-# 'anonymous_namespace{file}', where file will be replaced with the base 
-# name of the file that contains the anonymous namespace. By default 
-# anonymous namespace are hidden.
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
 
 EXTRACT_ANON_NSPACES   = NO
 
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
 
 HIDE_UNDOC_MEMBERS     = NO
 
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
 
 HIDE_UNDOC_CLASSES     = NO
 
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
 
 HIDE_FRIEND_COMPOUNDS  = NO
 
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
 
 HIDE_IN_BODY_DOCS      = NO
 
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
 
 INTERNAL_DOCS          = NO
 
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
 # and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
 
 CASE_SENSE_NAMES       = YES
 
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
 
 HIDE_SCOPE_NAMES       = NO
 
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
 
 SHOW_INCLUDE_FILES     = YES
 
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
 
 INLINE_INFO            = YES
 
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
 
 SORT_MEMBER_DOCS       = YES
 
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
 
 SORT_BRIEF_DOCS        = YES
 
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
-# hierarchy of group names into alphabetical order. If set to NO (the default) 
-# the group names will appear in their defined order.
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
 
 SORT_GROUP_NAMES       = NO
 
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
 
 SORT_BY_SCOPE_NAME     = NO
 
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
 
 GENERATE_TODOLIST      = YES
 
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
 
 GENERATE_TESTLIST      = YES
 
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
 
 GENERATE_BUGLIST       = YES
 
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
 
 GENERATE_DEPRECATEDLIST= YES
 
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
 
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       =
 
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
 
 MAX_INITIALIZER_LINES  = 30
 
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
 # list will mention the files that were used to generate the documentation.
+# The default value is: YES.
 
 SHOW_USED_FILES        = YES
 
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation. The default is NO.
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
 
-SHOW_DIRECTORIES       = NO
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
 
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from 
-# the version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
-# is used as the file version. See the manual for examples.
+FILE_VERSION_FILTER    =
 
-FILE_VERSION_FILTER    = 
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
 
 #---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
 
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
 
 QUIET                  = NO
 
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
 
 WARNINGS               = YES
 
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
 
 WARN_IF_UNDOCUMENTED   = YES
 
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
 
 WARN_IF_DOC_ERROR      = YES
 
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
 
 WARN_NO_PARAMDOC       = NO
 
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR          = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
 
 WARN_FORMAT            = "$file:$line: $text"
 
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
 
-WARN_LOGFILE           = 
+WARN_LOGFILE           = doxygen_warnings.txt
 
 #---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
 #---------------------------------------------------------------------------
 
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
 
 INPUT                  = .
 
-# This tag can be used to specify the character encoding of the source files 
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
-# also the default input encoding. Doxygen uses libiconv (or the iconv built 
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
-# the list of possible encodings.
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
 
 INPUT_ENCODING         = UTF-8
 
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
+# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
 
 FILE_PATTERNS          = *.cc \
                          *.h \
                          *.doxygen
 
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
 
-RECURSIVE              = NO
+RECURSIVE              = YES
 
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
 # subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
 
 EXCLUDE                = expr.h
 
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
 # from the input.
+# The default value is: NO.
 
 EXCLUDE_SYMLINKS       = NO
 
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
-# for example use the pattern */test/*
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
 
 EXCLUDE_PATTERNS       = *.tab.cc \
                          *.tab.h \
                          lex.* \
                          Test*.cc \
                          Test*.h \
-                         *Test.cc
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
-# (namespaces, classes, functions, etc.) that should be excluded from the 
-# output. The symbol name can be a fully qualified name, a word, or if the 
-# wildcard * is used, a substring. Examples: ANamespace, AClass, 
+                         *Test.cc \
+			 */unit-tests/* \
+			 */tests/* \
+			 */gl/* \
+			 */old/* \
+			 */win32/* \
+			 */VCPP/*
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
 # AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
 
-EXCLUDE_SYMBOLS        = 
+EXCLUDE_SYMBOLS        =
 
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
 
-EXAMPLE_PATH           = 
+EXAMPLE_PATH           =
 
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
 
-EXAMPLE_PATTERNS       = 
+EXAMPLE_PATTERNS       =
 
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
 
 EXAMPLE_RECURSIVE      = NO
 
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
 
-IMAGE_PATH             = 
+FILTER_PATTERNS        =
 
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
 
-INPUT_FILTER           = 
+FILTER_SOURCE_FILES    = NO
 
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
 
-FILTER_PATTERNS        = 
+FILTER_SOURCE_PATTERNS =
 
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
 
-FILTER_SOURCE_FILES    = NO
+USE_MDFILE_AS_MAINPAGE =
 
 #---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
 #---------------------------------------------------------------------------
 
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
 
 SOURCE_BROWSER         = YES
 
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
 
 INLINE_SOURCES         = NO
 
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
 
 STRIP_CODE_COMMENTS    = YES
 
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
 
-REFERENCED_BY_RELATION = YES
+REFERENCED_BY_RELATION = NO
 
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
 
-REFERENCES_RELATION    = YES
+REFERENCES_RELATION    = NO
 
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
 
 REFERENCES_LINK_SOURCE = YES
 
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
-# will need version 4.8.6 or higher.
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
 
 USE_HTAGS              = NO
 
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
 
 VERBATIM_HEADERS       = YES
 
+# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS          =
+
 #---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
 
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
 
 ALPHABETICAL_INDEX     = YES
 
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
 
 COLS_IN_ALPHA_INDEX    = 5
 
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
 
-IGNORE_PREFIX          = 
+IGNORE_PREFIX          =
 
 #---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
 
 GENERATE_HTML          = YES
 
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_OUTPUT            = html
 
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_FILE_EXTENSION    = .html
 
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
 # standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = YES
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "@PACKAGE_NAME@ Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.opendap. at PACKAGE_NAME@
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_HEADER            = 
+GENERATE_HTMLHELP      = NO
 
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-HTML_FOOTER            = 
+CHM_FILE               =
 
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-HTML_STYLESHEET        = 
+HHC_LOCATION           =
 
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-HTML_ALIGN_MEMBERS     = YES
+GENERATE_CHI           = NO
 
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
-# of the generated HTML documentation.
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-GENERATE_HTMLHELP      = NO
+CHM_INDEX_ENCODING     =
 
-# If the GENERATE_DOCSET tag is set to YES, additional index files 
-# will be generated that can be used as input for Apple's Xcode 3 
-# integrated development environment, introduced with OSX 10.5 (Leopard). 
-# To create a documentation set, doxygen will generate a Makefile in the 
-# HTML output directory. Running make will produce the docset in that 
-# directory and running "make install" will install the docset in 
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
-# it at startup.
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-GENERATE_DOCSET        = NO
+BINARY_TOC             = NO
 
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
-# feed. A documentation feed provides an umbrella under which multiple 
-# documentation sets from a single provider (such as a company or product suite) 
-# can be grouped.
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-DOCSET_FEEDNAME        = "Doxygen generated docs"
+TOC_EXPAND             = YES
 
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
-# should uniquely identify the documentation set bundle. This should be a 
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
-# will append .docset to the name.
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-DOCSET_BUNDLE_ID       = org.doxygen.Project
+DISABLE_INDEX          = NO
 
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
-# documentation will contain sections that can be hidden and shown after the 
-# page has loaded. For this to work a browser that supports 
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_DYNAMIC_SECTIONS  = NO
+GENERATE_TREEVIEW      = YES
 
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-CHM_FILE               = 
+ENUM_VALUES_PER_LINE   = 4
 
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-HHC_LOCATION           = 
+TREEVIEW_WIDTH         = 250
 
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-GENERATE_CHI           = NO
+EXT_LINKS_IN_WINDOW    = NO
 
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-BINARY_TOC             = NO
+FORMULA_FONTSIZE       = 10
 
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
 
-TOC_EXPAND             = YES
+SEARCHENGINE           = NO
 
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
 
-DISABLE_INDEX          = NO
+EXTERNAL_SEARCH        = NO
 
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
 
-ENUM_VALUES_PER_LINE   = 4
+SEARCHENGINE_URL       =
 
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
 
-GENERATE_TREEVIEW      = YES
+SEARCHDATA_FILE        = searchdata.xml
 
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
 
-TREEVIEW_WIDTH         = 250
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
 
 #---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
 
 GENERATE_LATEX         = NO
 
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_OUTPUT           = latex
 
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_CMD_NAME         = latex
 
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 MAKEINDEX_CMD_NAME     = makeindex
 
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 COMPACT_LATEX          = YES
 
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 PAPER_TYPE             = letter
 
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
 
-EXTRA_PACKAGES         = 
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
+LATEX_EXTRA_STYLESHEET =
 
-LATEX_HEADER           = 
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 PDF_HYPERLINKS         = YES
 
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
 # higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 USE_PDFLATEX           = NO
 
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_BATCHMODE        = NO
 
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_HIDE_INDICES     = NO
 
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP        = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
 
 GENERATE_RTF           = NO
 
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
 
 RTF_OUTPUT             = rtf
 
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
 
 COMPACT_RTF            = NO
 
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
 
 RTF_HYPERLINKS         = NO
 
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
 
-RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    =
 
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
 
-RTF_EXTENSIONS_FILE    = 
+RTF_SOURCE_CODE        = NO
 
 #---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
 
 GENERATE_MAN           = NO
 
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_OUTPUT             = man
 
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_EXTENSION          = .3n
 
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_LINKS              = NO
 
 #---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
 
 GENERATE_XML           = NO
 
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
 
 XML_OUTPUT             = xml
 
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
 
-XML_SCHEMA             = 
+XML_PROGRAMLISTING     = YES
 
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
 
-XML_DTD                = 
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
 
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
+GENERATE_DOCBOOK       = NO
 
-XML_PROGRAMLISTING     = YES
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
 
 #---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
 
 GENERATE_AUTOGEN_DEF   = NO
 
 #---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
 
 GENERATE_PERLMOD       = NO
 
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
 PERLMOD_LATEX          = NO
 
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
 PERLMOD_PRETTY         = YES
 
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
-PERLMOD_MAKEVAR_PREFIX = 
+PERLMOD_MAKEVAR_PREFIX =
 
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
 
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
 
 ENABLE_PREPROCESSING   = YES
 
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 MACRO_EXPANSION        = NO
 
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_DEFINED tags.
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 EXPAND_ONLY_PREDEF     = NO
 
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 SEARCH_INCLUDES        = YES
 
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
 
-INCLUDE_PATH           = 
+INCLUDE_PATH           =
 
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-INCLUDE_FILE_PATTERNS  = 
+INCLUDE_FILE_PATTERNS  =
 
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-PREDEFINED             = 
+PREDEFINED             =
 
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-EXPAND_AS_DEFINED      = 
+EXPAND_AS_DEFINED      =
 
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 SKIP_FUNCTION_MACROS   = YES
 
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration options related to external references
 #---------------------------------------------------------------------------
 
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
 
-TAGFILES               = 
+TAGFILES               =
 
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
 
-GENERATE_TAGFILE       = 
+GENERATE_TAGFILE       =
 
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
 
 ALLEXTERNALS           = NO
 
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
 
 EXTERNAL_GROUPS        = YES
 
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
 
 PERL_PATH              = /usr/bin/perl
 
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
 
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
 # powerful graphs.
+# The default value is: YES.
 
 CLASS_DIAGRAMS         = YES
 
-# You can define message sequence charts within doxygen comments using the \msc 
-# command. Doxygen will then run the mscgen tool (see 
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
-# the mscgen tool resides. If left empty the tool is assumed to be found in the 
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
 # default search path.
 
-MSCGEN_PATH            = 
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
 
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
 
 HIDE_UNDOC_RELATIONS   = NO
 
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
 
 HAVE_DOT               = YES
 
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 CLASS_GRAPH            = YES
 
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
-COLLABORATION_GRAPH    = YES
+COLLABORATION_GRAPH    = NO
 
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
-GROUP_GRAPHS           = YES
+GROUP_GRAPHS           = NO
 
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
 # Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 UML_LOOK               = YES
 
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 TEMPLATE_RELATIONS     = YES
 
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 INCLUDE_GRAPH          = YES
 
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 INCLUDED_BY_GRAPH      = YES
 
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then 
-# doxygen will generate a call dependency graph for every global function 
-# or class method. Note that enabling this option will significantly increase 
-# the time of a run. So in most cases it will be better to enable call graphs 
-# for selected functions only using the \callgraph command.
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
-CALL_GRAPH             = YES
+CALL_GRAPH             = NO
 
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
-# doxygen will generate a caller dependency graph for every global function 
-# or class method. Note that enabling this option will significantly increase 
-# the time of a run. So in most cases it will be better to enable caller 
-# graphs for selected functions only using the \callergraph command.
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 CALLER_GRAPH           = NO
 
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 GRAPHICAL_HIERARCHY    = YES
 
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 DIRECTORY_GRAPH        = YES
 
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_IMAGE_FORMAT       = png
 
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
 # found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
 
-DOT_PATH               = 
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
 
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
+DIAFILE_DIRS           =
 
-DOTFILE_DIRS           = 
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
 
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
-# nodes that will be shown in the graph. If the number of nodes in a graph 
-# becomes larger than this value, doxygen will truncate the graph, which is 
-# visualized by representing a node as a red box. Note that doxygen if the 
-# number of direct children of the root node in a graph is already larger than 
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_GRAPH_MAX_NODES    = 50
 
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that the size of a graph can be further restricted by 
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 MAX_DOT_GRAPH_DEPTH    = 0
 
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is enabled by default, which results in a transparent 
-# background. Warning: Depending on the platform used, enabling this option 
-# may lead to badly anti-aliased labels on the edges of a graph (i.e. they 
-# become hard to read).
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_TRANSPARENT        = YES
 
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_MULTI_TARGETS      = NO
+DOT_MULTI_TARGETS      = YES
 
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 GENERATE_LEGEND        = YES
 
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/error-test.cc b/error-test.cc
new file mode 100644
index 0000000..75db568
--- /dev/null
+++ b/error-test.cc
@@ -0,0 +1,203 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+// (c) COPYRIGHT URI/MIT 1996
+// Please read the full copyright statement in the file COPYRIGHT_URI.
+//
+// Authors:
+//      jhrg,jimg       James Gallagher <jgallagher at gso.uri.edu>
+
+// Test the Error object scanner, parser and class.
+//
+// jhrg 4/25/96
+
+#include "config.h"
+
+static char rcsid[] not_used =
+    {"$Id$"
+    };
+
+#include <GetOpt.h>
+
+#include "Error.h"
+#include "parser.h"
+#include "Error.tab.hh"
+
+void test_scanner();
+void test_parser(Error &err);
+#ifdef GUI
+void test_object(Error &err);
+#endif
+void usage();
+
+int Errorlex();
+//int Errorparse(parser_arg *);
+
+extern YYSTYPE Errorlval;
+extern int Errordebug;
+const char *prompt = "error-test: ";
+
+#ifdef WIN32
+void
+#else
+int
+#endif
+main(int argc, char *argv[])
+{
+#ifdef WIN32
+    GetOpt getopt(argc, argv, "spd");
+#else
+    GetOpt getopt(argc, argv, "spdo");
+#endif
+    int option_char;
+    bool scanner_test = false, parser_test = false, object_test = false;
+
+    // process options
+
+    while ((option_char = getopt()) != EOF)
+        switch (option_char) {
+        case 'd':
+            Errordebug = 1;
+            break;
+        case 's':
+            scanner_test = true;
+            break;
+        case 'p':
+            parser_test = true;
+            break;
+#ifndef WIN32
+        case 'o':
+            parser_test = object_test = true;
+            break;
+#endif
+        case '?':
+        default:
+            usage();
+        }
+
+#ifdef WIN32
+    if (!(scanner_test || parser_test))
+#else
+    if (!(scanner_test || parser_test || object_test))
+#endif
+        usage();
+
+    if (scanner_test)
+        test_scanner();
+
+    Error err;
+    if (parser_test)
+        test_parser(err);
+
+#ifdef GUI
+    if (object_test)
+        test_object(err);
+#endif
+
+#ifdef WIN32
+    exit(0);  //  Cygwin/Dejagu test suites require this to succeed.
+    return;   //  Visual C++ requires this.
+#endif
+}
+
+void
+usage()
+{
+#ifdef WIN32
+    fprintf(stderr, "usage: error-test: [d][sp] <  filename ...\n") ;
+#else
+    fprintf(stderr, "usage: error-test: [d][spo] <  filename ...\n") ;
+#endif
+    fprintf(stderr, "       d: extra parser debugging information\n") ;
+    fprintf(stderr, "       s: run the scanner\n") ;
+    fprintf(stderr, "       p: run the parser\n") ;
+#ifdef WIN32
+    fprintf(stderr, "       o: evaluate the object, runs the parser\n") ;
+#endif
+}
+
+void
+test_scanner()
+{
+    int tok;
+
+    fprintf(stdout, "%s", prompt) ;   // first prompt
+    fflush(stdout) ;
+    while ((tok = Errorlex())) {
+        switch (tok) {
+        case SCAN_ERROR:
+            fprintf(stdout, "ERROR\n") ;
+            break;
+        case SCAN_CODE:
+            fprintf(stdout, "CODE\n") ;
+            break;
+        case SCAN_PTYPE:
+            fprintf(stdout, "PTYPE\n") ;
+            break;
+        case SCAN_MSG:
+            fprintf(stdout, "MSG\n") ;
+            break;
+        case SCAN_PROGRAM:
+            fprintf(stdout, "PROGRAM\n") ;
+            break;
+        case SCAN_STR:
+            fprintf(stdout, "%s\n", Errorlval.string) ;
+            break;
+        case SCAN_INT:
+            fprintf(stdout, "%d\n", Errorlval.integer) ;
+            break;
+        case '{':
+            fprintf(stdout, "Left Brace\n") ;
+            break;
+        case '}':
+            fprintf(stdout, "Right Brace\n") ;
+            break;
+        case ';':
+            fprintf(stdout, "Semicolon\n") ;
+            break;
+        case '=':
+            fprintf(stdout, "Assignment\n") ;
+            break;
+        default:
+            fprintf(stdout, "Error: Unrecognized input\n") ;
+        }
+        fprintf(stdout, "%s", prompt) ;   // print prompt after output
+        fflush(stdout) ;
+    }
+}
+
+void
+test_parser(Error &err)
+{
+    int status = err.parse(stdin);
+    fprintf(stdout, "Status from parser: %d\n", status) ;
+
+    if (err.OK())
+        fprintf(stdout, "Error passed OK check\n") ;
+    else
+        fprintf(stdout, "Error failed OK check\n") ;
+
+    err.print(stdout);
+}
diff --git a/fdiostream.cc b/fdiostream.cc
new file mode 100644
index 0000000..7f372f0
--- /dev/null
+++ b/fdiostream.cc
@@ -0,0 +1,266 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2009 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+//
+// Portions of this code were taken verbatim from  Josuttis,
+// "The C++ Standard Library," p.672
+
+#include "config.h"
+
+#include "fdiostream.h"
+#include <cstring> // for memcpy
+//#define DODS_DEBUG
+#include "debug.h"
+
+namespace libdap {
+
+/** Make an instance of fdoutbuf. To write to a file using an open file
+ descriptor, use fdostream instead.
+ @param _fd The open file descriptor
+ @param _close If true, close the file when the stream buffer is deleted.
+ False by default.
+ @see fdostream */
+fdoutbuf::fdoutbuf(int _fd, bool _close) :
+		fd(_fd), close(_close)
+{
+	setp(buffer, buffer + (bufferSize - 1));
+}
+
+/** When deleting the stream buffer, be sure to call sync(). Close the
+ associated file if specified. */
+fdoutbuf::~fdoutbuf()
+{
+	sync();
+	if (close) ::close(fd);
+}
+
+// flush the characters in the buffer
+int fdoutbuf::flushBuffer()
+{
+	int num = pptr() - pbase();
+	if (write(1, buffer, num) != num) {
+		return EOF;
+	}
+	pbump(-num);
+	return num;
+}
+
+/** Buffer full, write c and all previous characters */
+int fdoutbuf::overflow(int c)
+{
+	if (c != EOF) {
+		*pptr() = c;
+		pbump(1);
+	}
+	// flush the buffer
+	if (flushBuffer() == EOF) {
+		//Error
+		return EOF;
+	}
+
+	return c;
+}
+
+/** synchronize with file/destination */
+int fdoutbuf::sync()
+{
+	if (flushBuffer() == EOF) {
+		// Error
+		return -1;
+	}
+	return 0;
+}
+
+/** write multiple characters */
+std::streamsize fdoutbuf::xsputn(const char *s, std::streamsize num)
+{
+	return write(fd, s, num);
+}
+
+/*
+ How the buffer works for input streams:
+
+ Initialized:
+     eback() --\
+     gptr()  --|
+     egptr() --|
+               |
+ ---------------------------
+ | | | | | | | | | | | | | |
+ ---------------------------
+
+ After the first call to read, the buffer is filled:
+ eback() --\
+   gptr()  --|
+ | egptr() --|
+ |           |
+ ---------------------------
+ | | | | | | |h|a|l|l|o|w|e|
+ ---------------------------
+
+ After 'hallowe' is read from the stream, gptr() reaches egptr() and that
+ triggers the second read, which first must shuffle the characters 'hallowe'
+ to the 'put back' area of the buffer and then read more characters from the
+ underlying input source (fle descriptor or FILE*).
+
+   eback() --\
+             |  gptr() --|
+             |           |
+             |           |
+ ---------------------------
+ | | | | | | |h|a|l|l|o|w|e|
+ ---------------------------
+             |
+   egptr() --|
+
+ After each read, gptr() is advanced until it hits egptr, which triggers a
+ read. However, before the read takes place, characters are moved into the
+ put back part of teh buffer. IE when a character is 'read' using the stream
+ all the really happens is the gptr is advanced, the character is still in the
+ buffer
+
+ gptr()  --|
+ |    egptr()
+ /-eback()   |           |
+ ---------------------------
+ |h|a|l|l|o|w|e|e|n| |c|o|s|
+ ---------------------------
+
+ */
+
+/** Make a stream buffer for reading from an open file using its file
+ descriptor.
+ @param _fd The open file descriptor
+ @param _close If true, close the open file when deleting the stream buffer.
+ False by default.
+ @see fdistream */
+fdinbuf::fdinbuf(int _fd, bool _close) :
+		fd(_fd), close(_close)
+{
+	setg(buffer + putBack, // beginning of put back area
+	buffer + putBack, // read position
+	buffer + putBack); // end position
+}
+
+/** Close the file if specified. */
+fdinbuf::~fdinbuf()
+{
+	if (close) ::close(fd);
+}
+
+/** Insert new characters into the buffer */
+int fdinbuf::underflow()
+{
+	if (gptr() < egptr()) {
+		DBG(std::cerr << "underflow, no read" << std::endl);
+		return *gptr();
+	}
+
+	// How many characters are in the 'put back' part of the buffer? Cap
+	// this number at putBack, which is nominally 128.
+	int numPutBack = gptr() - eback();
+	if (numPutBack > putBack) numPutBack = putBack;
+
+	// copy characters previously read into the put back area of the
+	// buffer. In a typical call, putBack is 128 and numPutBack is 128 too.
+	// In this case the destination of memcpy is the start of the buffer and
+	// gptr() - numPutBack (the source of the copy) points to the last 128
+	// characters in the buffer.
+	memcpy(buffer + (putBack - numPutBack), gptr() - numPutBack, numPutBack);
+
+	// read new characters
+	int num = read(fd, buffer + putBack, bufferSize - putBack);
+	DBG(std::cerr << "underflow, read returns: " << num << std::endl);
+	if (num <= 0) {
+		// Error or EOF; error < 0; EOF == 0
+		return EOF;
+	}
+
+	setg(buffer + (putBack - numPutBack), // beginning of put back area
+	buffer + putBack, // read position
+	buffer + putBack + num); // end of buffer
+
+	// return next character
+#ifdef DODS_DEBUG
+	char c = *gptr();
+	DBG(std::cerr << "returning :" << c << std::endl);
+	return c;
+#else
+	return *gptr();
+#endif
+}
+
+/** Make a stream buffer for reading from an open file using a FILE pointer.
+
+ @param _fp The open FILE pointer
+ @param _close If true, close the open file when deleting the stream buffer.
+ False by default.
+ @see fpistream */
+fpinbuf::fpinbuf(FILE *_fp, bool _close) :
+		fp(_fp), close(_close)
+{
+	setg(buffer + putBack, // beginning of put back area
+	buffer + putBack, // read position
+	buffer + putBack); // end position
+}
+
+/** Close the file if specified. */
+fpinbuf::~fpinbuf()
+{
+	if (close) fclose(fp);
+}
+
+/** Insert new characters into the buffer */
+int fpinbuf::underflow()
+{
+	if (gptr() < egptr()) {
+		DBG(std::cerr << "underflow, no read" << std::endl);
+		return *gptr();
+	}
+
+	// process size of putBack area
+	// use the number of characters read, but a maximum of putBack
+	int numPutBack = gptr() - eback();
+	if (numPutBack > putBack) numPutBack = putBack;
+
+	// copy characters previously read into the put back area of the
+	// buffer.
+	memcpy(buffer + (putBack - numPutBack), gptr() - numPutBack, numPutBack);
+
+	// read new characters
+	int num = fread(buffer + putBack, 1, bufferSize - putBack, fp);
+	DBG(std::cerr << "underflow, read returns: " << num << std::endl);
+	if (num == 0) {
+		// Error or EOF; use feof() or ferror() to test
+		return EOF;
+	}
+
+	setg(buffer + (putBack - numPutBack), // beginning of put back area
+	buffer + putBack, // read position
+	buffer + putBack + num); // end of buffer
+
+	// return next character
+	return *gptr();
+}
+
+}
diff --git a/fdiostream.h b/fdiostream.h
new file mode 100644
index 0000000..8d4084e
--- /dev/null
+++ b/fdiostream.h
@@ -0,0 +1,182 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2009 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+//
+// Portions of this code were taken verbatim from  Josuttis,
+// "The C++ Standard Library," p.672
+
+#ifndef _fdiostream_h
+#define _fdiostream_h
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <iostream>
+#include <streambuf>
+#include <algorithm>
+#include <cstdio>
+
+namespace libdap {
+
+/** fdoutbuf is a stream buffer specialization designed specifically for files
+ that are referenced using a file descriptor. This class implements a
+ 4k buffer for data and optionally closes the file when the buffer is
+ deleted.
+
+ @note Instead of using this class, use fdostream.
+ @see fdostream
+ */
+class fdoutbuf: public std::streambuf {
+protected:
+	int fd;	// file descriptor
+	bool close;
+	static const int bufferSize = 4096; // Size of the data buffer
+	char buffer[bufferSize];	// data buffer
+
+public:
+	fdoutbuf(int _fd, bool _close);
+	virtual ~fdoutbuf();
+
+protected:
+	int flushBuffer();
+
+	virtual int overflow(int c);
+	virtual int sync();
+	virtual std::streamsize xsputn(const char *s, std::streamsize num);
+};
+
+/** This specialization of ostream builds a fdoutbuf instance and binds it to
+ an ostream. Thus it is possible to build an ostream from an open file, using
+ its file descriptor, and write to it using C++ stream I/O methods.
+
+ @todo Generalize this so that it can take a FILE * as well and then make
+ two classes file_istream and file_ostream that can be initialized with
+ either a file descriptor of a FILE pointer.
+ */
+class fdostream: public std::ostream {
+protected:
+	fdoutbuf buf;
+public:
+	/** Make a new fdostream and initialize it to use a specific file descriptor.
+	 If the file descriptor does not reference an open file, the first
+	 attempt to write data will fail.
+	 @param _fd The file descriptor of an open file, socket, et cetera.
+	 @param _close If true, close the file when the output stream buffer is
+	 deleted. Default: false. */
+	fdostream(int _fd, bool _close = false) :
+			std::ostream(&buf), buf(_fd, _close)
+	{
+	}
+};
+
+/** fdintbuf is a stream buffer specialization designed specifically for files
+ that are referenced using a file descriptor. This class implements a
+ 4k buffer for data and optionally closes the file when the buffer is
+ deleted. The stream buffer has 128 characters of 'put back' space.
+
+ @note Instead of using this class, use fdistream.
+ @see fdistream
+ */
+class fdinbuf: public std::streambuf {
+protected:
+	int fd;	// file descriptor
+	bool close;
+	static const int bufferSize = 4096; // Size of the data buffer
+	static const int putBack = 128;
+	char buffer[bufferSize];	// data buffer
+
+public:
+	fdinbuf(int _fd, bool close);
+	virtual ~fdinbuf();
+
+protected:
+	virtual int underflow();
+};
+
+/** This specialization of istream builds a fdinbuf instance and binds it to
+ an istream. Thus it is possible to build an istream from an open file, using
+ its open file descriptor, and read from it using C++ stream I/O methods.
+
+ @note: unget() works for these streams, but only for characters read
+ using the stream. You cannot 'unget' characters that were read using
+ the file descriptor with functions like read(2).
+ @see fpistream
+ */
+class fdistream: public std::istream {
+protected:
+	fdinbuf buf;
+public:
+	fdistream(int fd, bool close = false) :
+			std::istream(&buf), buf(fd, close)
+	{
+	}
+};
+
+/** fpintbuf is a stream buffer specialization designed specifically for files
+ that are referenced using an open FILE pointer. This class implements a
+ 4k buffer for data and optionally closes the file when the buffer is
+ deleted. The stream buffer has 128 characters of 'put back' space.
+
+ @note Instead of using this class, use fpistream.
+ @see fpistream
+ */
+class fpinbuf: public std::streambuf {
+protected:
+	FILE *fp;	// FILE *
+	bool close;
+	static const int bufferSize = 4096; // Size of the data buffer
+	static const int putBack = 128;
+	char buffer[bufferSize];	// data buffer
+
+public:
+	fpinbuf(FILE *_fp, bool _close);
+	virtual ~fpinbuf();
+
+protected:
+	virtual int underflow();
+};
+
+/** This specialization of istream builds a fpinbuf instance and binds it to
+ an istream. Thus it is possible to build an istream from an open file,
+ pipe, et c., using its open FILE pointer, and read from it using C++ stream
+ I/O methods.
+
+ @note: unget() works for these streams, but only for characters read
+ using the stream. You cannot 'unget' characters that were read using
+ the file pointer with functions like fread(3).
+ @see fdistream
+ */
+class fpistream: public std::istream {
+protected:
+	fpinbuf buf;
+public:
+	fpistream(FILE *fp, bool close = false) :
+			std::istream(&buf), buf(fp, close)
+	{
+	}
+};
+
+}
+
+#endif
diff --git a/get-version.awk b/get-version.awk
new file mode 100755
index 0000000..e1db742
--- /dev/null
+++ b/get-version.awk
@@ -0,0 +1,9 @@
+#!/bin/awk
+#
+# Get the version info from a debian control file
+
+function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s }
+function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s }
+function trim(s) { return rtrim(ltrim(s)); }
+BEGIN { FS=":" }
+/Version/ { print trim($2) }
diff --git a/getdap.cc b/getdap.cc
index 418d1cc..ea640ce 100644
--- a/getdap.cc
+++ b/getdap.cc
@@ -427,7 +427,7 @@ int main(int argc, char *argv[])
                 }
             }
             else {
-                // if (!get_das && !get_dds && !get_data) This code uses
+                // if (!get_das && !get_dds && !get_data ...) This code uses
                 // HTTPConnect::fetch_url which cannot be accessed using an
                 // instance of Connect. So some of the options supported by
                 // other URLs won't work here (e.g., the verbose option
diff --git a/getdap4.cc b/getdap4.cc
index 454300a..6b9b4f8 100644
--- a/getdap4.cc
+++ b/getdap4.cc
@@ -76,6 +76,13 @@ static void usage(const string &name)
 	cerr << "of a, d, or D are used with a URL, then the DAP library" << endl;
 	cerr << "routines are NOT used and the URLs contents are dumped" << endl;
 	cerr << "to standard output." << endl;
+	cerr << "Note: If the URL contains a query string the query string" << endl;
+	cerr << "will be preserved in the request. However, if the query " << endl;
+	cerr << "string contains DAP4 keys they may interfere with the" << endl;
+	cerr << "operation of " << name << ". A warning will be" << endl;
+	cerr << "written to stderr when "<< name << " identifies" << endl;
+	cerr << "the presence of a DAP4 query key in the submitted" << endl;
+	cerr << "URL's query string." << endl;
 	cerr << endl;
 	cerr << "In the second form of the command, assume the files are" << endl;
 	cerr << "DataDDS objects (stored in files or read from pipes)" << endl;
@@ -101,7 +108,6 @@ static void usage(const string &name)
 	cerr << "           NB: You can use a `?' for the CE also." << endl;
 }
 
-#if 1
 // Used for raw http access/transfer
 bool read_data(FILE * fp)
 {
@@ -118,7 +124,6 @@ bool read_data(FILE * fp)
 
     return true;
 }
-#endif
 
 static void read_response_from_file(D4Connect *url, DMR &dmr, Response &r, bool mime_headers, bool get_dap4_data, bool get_dmr)
 {
@@ -140,18 +145,28 @@ static void read_response_from_file(D4Connect *url, DMR &dmr, Response &r, bool
     }
 }
 
-static void print_data(DMR &dmr, bool print_rows = false)
+static void print_group_data(D4Group *g, bool print_rows = false)
 {
-    cout << "The data:" << endl;
-
-    D4Group *g = dmr.root();
     for (Constructor::Vars_iter i = g->var_begin(), e = g->var_end(); i != e; i++) {
         if (print_rows && (*i)->type() == dods_sequence_c)
-            dynamic_cast < D4Sequence * >(*i)->print_val_by_rows(cout);
+            dynamic_cast<D4Sequence &>(**i).print_val_by_rows(cout);
         else
             (*i)->print_val(cout);
     }
 
+    for (D4Group::groupsIter gi = g->grp_begin(), ge = g->grp_end(); gi != ge; ++gi) {
+        print_group_data(*gi, print_rows);
+    }
+}
+
+static void print_data(DMR &dmr, bool print_rows = false)
+{
+    cout << "The data:" << endl;
+
+    D4Group *g = dmr.root();
+
+    print_group_data(g, print_rows);
+
     cout << endl << flush;
 }
 
@@ -243,7 +258,7 @@ int main(int argc, char *argv[])
 
             string name = argv[i];
             D4Connect *url = 0;
-
+            // auto_ptr? jhrg 10/19/15
             url = new D4Connect(name);
 
             // This overrides the value set in the .dodsrc file.
@@ -294,6 +309,8 @@ int main(int argc, char *argv[])
                 catch (Error & e) {
                     cerr << "Error: " << e.get_error_message() << endl;
                     delete url; url = 0;
+                    if (report_errors)
+                        return EXIT_FAILURE;
                 }
             }
             else if (get_dmr) {
@@ -340,6 +357,8 @@ int main(int argc, char *argv[])
                     }
                      catch (Error & e) {
                          cerr << e.get_error_message() << endl;
+                         if (report_errors)
+                             return EXIT_FAILURE;
                          continue;       // Goto the next URL or exit the loop.
                      }
                  }
@@ -370,6 +389,8 @@ int main(int argc, char *argv[])
                     }
                     catch (Error & e) {
                         cerr << e.get_error_message() << endl;
+                        if (report_errors)
+                            return EXIT_FAILURE;
                         continue;
                     }
                 }
@@ -387,13 +408,22 @@ int main(int argc, char *argv[])
         }
     }
     catch (Error &e) {
-        cerr << "Error: " << e.get_error_message() << endl;
-        cerr << "exiting" << endl;
+
+    	if(e.get_error_code() == malformed_expr || e.get_error_code() == malformed_expr){
+        	cerr << e.get_error_message() << endl;
+        	usage(argv[0]);
+    	}
+    	else {
+        	cerr << e.get_error_message() << endl;
+
+    	}
+
+        cerr << "Exiting." << endl;
         return 1;
     }
     catch (exception &e) {
         cerr << "C++ library exception: " << e.what() << endl;
-        cerr << "exiting" << endl;
+        cerr << "Exiting." << endl;
         return 1;
     }
 
diff --git a/gl/Makefile.in b/gl/Makefile.in
deleted file mode 100644
index e263219..0000000
--- a/gl/Makefile.in
+++ /dev/null
@@ -1,1989 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Copyright (C) 2002-2015 Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This file is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this file.  If not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License,
-# this file may be distributed as part of a program that
-# contains a configuration script generated by Autoconf, under
-# the same distribution terms as the rest of that program.
-#
-# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=gl/doc --tests-base=tests --aux-dir=conf --lgpl --no-conditional-dependencies --libtool --macro-prefix=gl byteswap regex
-
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = gl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/conf/depcomp $(noinst_HEADERS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h \
-	$(top_builddir)/dods-datatypes-config.h \
-	$(top_builddir)/xdr-datatypes-config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-am__dirstamp = $(am__leading_dot)dirstamp
-am_libgnu_la_OBJECTS = localcharset.lo glthread/lock.lo \
-	glthread/threadlib.lo unistd.lo wctype-h.lo
-libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS)
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-libgnu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(libgnu_la_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/conf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES)
-DIST_SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-HEADERS = $(noinst_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
-SUBDIRS = 
-noinst_HEADERS = 
-noinst_LIBRARIES = 
-noinst_LTLIBRARIES = libgnu.la
-EXTRA_DIST = m4/gnulib-cache.m4 alloca.in.h btowc.c byteswap.in.h \
-	$(top_srcdir)/conf/config.rpath langinfo.in.h config.charset \
-	ref-add.sin ref-del.sin locale.in.h localeconv.c mbrtowc.c \
-	mbsinit.c mbtowc-impl.h mbtowc.c nl_langinfo.c regcomp.c \
-	regex.c regex.h regex_internal.c regex_internal.h regexec.c \
-	$(top_srcdir)/conf/snippet/_Noreturn.h \
-	$(top_srcdir)/conf/snippet/arg-nonnull.h \
-	$(top_srcdir)/conf/snippet/c++defs.h \
-	$(top_srcdir)/conf/snippet/warn-on-use.h stdbool.in.h \
-	stddef.in.h stdint.in.h stdlib.in.h streq.h sys_types.in.h \
-	$(top_srcdir)/conf/config.rpath unistd.in.h verify.h \
-	wchar.in.h wcrtomb.c wctype.in.h
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-BUILT_SOURCES = $(ALLOCA_H) $(BYTESWAP_H) configmake.h langinfo.h \
-	locale.h arg-nonnull.h c++defs.h warn-on-use.h $(STDBOOL_H) \
-	$(STDDEF_H) $(STDINT_H) stdlib.h sys/types.h unistd.h wchar.h \
-	wctype.h
-SUFFIXES = .sed .sin
-MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t byteswap.h \
-	byteswap.h-t langinfo.h langinfo.h-t locale.h locale.h-t \
-	arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \
-	warn-on-use.h warn-on-use.h-t stdbool.h stdbool.h-t stddef.h \
-	stddef.h-t stdint.h stdint.h-t stdlib.h stdlib.h-t sys/types.h \
-	sys/types.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \
-	wctype.h-t
-MOSTLYCLEANDIRS = 
-CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
-	ref-del.sed
-DISTCLEANFILES = 
-MAINTAINERCLEANFILES = 
-AM_CPPFLAGS = 
-AM_CFLAGS = 
-libgnu_la_SOURCES = gettext.h localcharset.h localcharset.c \
-	glthread/lock.h glthread/lock.c glthread/threadlib.c unistd.c \
-	wctype-h.c
-libgnu_la_LIBADD = $(gl_LTLIBOBJS)
-libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS)
-EXTRA_libgnu_la_SOURCES = btowc.c localeconv.c mbrtowc.c mbsinit.c \
-	mbtowc.c nl_langinfo.c regcomp.c regex.c regex_internal.c \
-	regexec.c wcrtomb.c
-libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LTLIBINTL) \
-	$(LTLIBTHREAD)
-
-# Use this preprocessor expression to decide whether #include_next works.
-# Do not rely on a 'configure'-time test for this, since the expression
-# might appear in an installed header, which is used by some other compiler.
-HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
-charset_alias = $(DESTDIR)$(libdir)/charset.alias
-charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
-
-# Because this Makefile snippet defines a variable used by other
-# gnulib Makefile snippets, it must be present in all Makefile.am that
-# need it. This is ensured by the applicability 'all' defined above.
-_NORETURN_H = $(top_srcdir)/conf/snippet/_Noreturn.h
-ARG_NONNULL_H = arg-nonnull.h
-CXXDEFS_H = c++defs.h
-WARN_ON_USE_H = warn-on-use.h
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .sed .sin .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits gl/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnits gl/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-clean-noinstLTLIBRARIES:
-	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-glthread/$(am__dirstamp):
-	@$(MKDIR_P) glthread
-	@: > glthread/$(am__dirstamp)
-glthread/$(DEPDIR)/$(am__dirstamp):
-	@$(MKDIR_P) glthread/$(DEPDIR)
-	@: > glthread/$(DEPDIR)/$(am__dirstamp)
-glthread/lock.lo: glthread/$(am__dirstamp) \
-	glthread/$(DEPDIR)/$(am__dirstamp)
-glthread/threadlib.lo: glthread/$(am__dirstamp) \
-	glthread/$(DEPDIR)/$(am__dirstamp)
-
-libgnu.la: $(libgnu_la_OBJECTS) $(libgnu_la_DEPENDENCIES) $(EXTRA_libgnu_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgnu_la_LINK)  $(libgnu_la_OBJECTS) $(libgnu_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-	-rm -f glthread/*.$(OBJEXT)
-	-rm -f glthread/*.lo
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/btowc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/localcharset.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/localeconv.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mbrtowc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mbsinit.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mbtowc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/nl_langinfo.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/regcomp.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/regex.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/regex_internal.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/regexec.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unistd.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wcrtomb.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wctype-h.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at glthread/$(DEPDIR)/lock.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at glthread/$(DEPDIR)/threadlib.Plo at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
- at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-	-rm -rf glthread/.libs glthread/_libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local
-installdirs: installdirs-recursive
-installdirs-am:
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-rm -f glthread/$(DEPDIR)/$(am__dirstamp)
-	-rm -f glthread/$(am__dirstamp)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
-	clean-noinstLTLIBRARIES mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -rf ./$(DEPDIR) glthread/$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -rf ./$(DEPDIR) glthread/$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool mostlyclean-local
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-local
-
-.MAKE: $(am__recursive_targets) all check install install-am \
-	install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
-	check check-am clean clean-generic clean-libtool \
-	clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \
-	ctags ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-exec-local install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
-	tags-am uninstall uninstall-am uninstall-local
-
-
-# We need the following in order to create <alloca.h> when the system
-# doesn't have one that works with the given compiler.
- at GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
- at GL_GENERATE_ALLOCA_H_TRUE@	$(AM_V_GEN)rm -f $@-t $@ && \
- at GL_GENERATE_ALLOCA_H_TRUE@	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- at GL_GENERATE_ALLOCA_H_TRUE@	  cat $(srcdir)/alloca.in.h; \
- at GL_GENERATE_ALLOCA_H_TRUE@	} > $@-t && \
- at GL_GENERATE_ALLOCA_H_TRUE@	mv -f $@-t $@
- at GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
- at GL_GENERATE_ALLOCA_H_FALSE@	rm -f $@
-
-# We need the following in order to create <byteswap.h> when the system
-# doesn't have one.
- at GL_GENERATE_BYTESWAP_H_TRUE@byteswap.h: byteswap.in.h $(top_builddir)/config.status
- at GL_GENERATE_BYTESWAP_H_TRUE@	$(AM_V_GEN)rm -f $@-t $@ && \
- at GL_GENERATE_BYTESWAP_H_TRUE@	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- at GL_GENERATE_BYTESWAP_H_TRUE@	  cat $(srcdir)/byteswap.in.h; \
- at GL_GENERATE_BYTESWAP_H_TRUE@	} > $@-t && \
- at GL_GENERATE_BYTESWAP_H_TRUE@	mv -f $@-t $@
- at GL_GENERATE_BYTESWAP_H_FALSE@byteswap.h: $(top_builddir)/config.status
- at GL_GENERATE_BYTESWAP_H_FALSE@	rm -f $@
-
-# Listed in the same order as the GNU makefile conventions, and
-# provided by autoconf 2.59c+ or 2.70.
-# The Automake-defined pkg* macros are appended, in the order
-# listed in the Automake 1.10a+ documentation.
-configmake.h: Makefile
-	$(AM_V_GEN)rm -f $@-t && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  echo '#define PREFIX "$(prefix)"'; \
-	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
-	  echo '#define BINDIR "$(bindir)"'; \
-	  echo '#define SBINDIR "$(sbindir)"'; \
-	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
-	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
-	  echo '#define DATADIR "$(datadir)"'; \
-	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
-	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
-	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
-	  echo '#define RUNSTATEDIR "$(runstatedir)"'; \
-	  echo '#define INCLUDEDIR "$(includedir)"'; \
-	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
-	  echo '#define DOCDIR "$(docdir)"'; \
-	  echo '#define INFODIR "$(infodir)"'; \
-	  echo '#define HTMLDIR "$(htmldir)"'; \
-	  echo '#define DVIDIR "$(dvidir)"'; \
-	  echo '#define PDFDIR "$(pdfdir)"'; \
-	  echo '#define PSDIR "$(psdir)"'; \
-	  echo '#define LIBDIR "$(libdir)"'; \
-	  echo '#define LISPDIR "$(lispdir)"'; \
-	  echo '#define LOCALEDIR "$(localedir)"'; \
-	  echo '#define MANDIR "$(mandir)"'; \
-	  echo '#define MANEXT "$(manext)"'; \
-	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
-	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
-	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
-	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
-	} | sed '/""/d' > $@-t && \
-	mv -f $@-t $@
-
-# We need the following in order to create an empty placeholder for
-# <langinfo.h> when the system doesn't have one.
-langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \
-	      -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
-	      -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
-	      -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
-	      -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
-	      -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \
-	      -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \
-	      -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-	      < $(srcdir)/langinfo.in.h; \
-	} > $@-t && \
-	mv $@-t $@
-
-# We need the following in order to install a simple file in $(libdir)
-# which is shared with other installed packages. We use a list of referencing
-# packages so that "make uninstall" will remove the file if and only if it
-# is not used by another installed package.
-# On systems with glibc-2.1 or newer, the file is redundant, therefore we
-# avoid installing it.
-
-all-local: charset.alias ref-add.sed ref-del.sed
-install-exec-local: install-exec-localcharset
-install-exec-localcharset: all-local
-	if test $(GLIBC21) = no; then \
-	  case '$(host_os)' in \
-	    darwin[56]*) \
-	      need_charset_alias=true ;; \
-	    darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-	      need_charset_alias=false ;; \
-	    *) \
-	      need_charset_alias=true ;; \
-	  esac ; \
-	else \
-	  need_charset_alias=false ; \
-	fi ; \
-	if $$need_charset_alias; then \
-	  $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
-	fi ; \
-	if test -f $(charset_alias); then \
-	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
-	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
-	  rm -f $(charset_tmp) ; \
-	else \
-	  if $$need_charset_alias; then \
-	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
-	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
-	    rm -f $(charset_tmp) ; \
-	  fi ; \
-	fi
-
-uninstall-local: uninstall-localcharset
-uninstall-localcharset: all-local
-	if test -f $(charset_alias); then \
-	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
-	  if grep '^# Packages using this file: $$' $(charset_tmp) \
-	      > /dev/null; then \
-	    rm -f $(charset_alias); \
-	  else \
-	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
-	  fi; \
-	  rm -f $(charset_tmp); \
-	fi
-
-charset.alias: config.charset
-	$(AM_V_GEN)rm -f t-$@ $@ && \
-	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
-	mv t-$@ $@
-.sin.sed:
-	$(AM_V_GEN)rm -f t-$@ $@ && \
-	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
-	mv t-$@ $@
-
-# We need the following in order to create <locale.h> when the system
-# doesn't have one that provides all definitions.
-locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
-	      -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
-	      -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
-	      -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
-	      -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
-	      -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-	      -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
-	      -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
-	      -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
-	      -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-	      < $(srcdir)/locale.in.h; \
-	} > $@-t && \
-	mv $@-t $@
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
-# off.
-arg-nonnull.h: $(top_srcdir)/conf/snippet/arg-nonnull.h
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	sed -n -e '/GL_ARG_NONNULL/,$$p' \
-	  < $(top_srcdir)/conf/snippet/arg-nonnull.h \
-	  > $@-t && \
-	mv $@-t $@
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/conf/snippet/c++defs.h
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	sed -n -e '/_GL_CXXDEFS/,$$p' \
-	  < $(top_srcdir)/conf/snippet/c++defs.h \
-	  > $@-t && \
-	mv $@-t $@
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
-# off.
-warn-on-use.h: $(top_srcdir)/conf/snippet/warn-on-use.h
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	sed -n -e '/^.ifndef/,$$p' \
-	  < $(top_srcdir)/conf/snippet/warn-on-use.h \
-	  > $@-t && \
-	mv $@-t $@
-
-# We need the following in order to create <stdbool.h> when the system
-# doesn't have one that works.
- at GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status
- at GL_GENERATE_STDBOOL_H_TRUE@	$(AM_V_GEN)rm -f $@-t $@ && \
- at GL_GENERATE_STDBOOL_H_TRUE@	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- at GL_GENERATE_STDBOOL_H_TRUE@	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
- at GL_GENERATE_STDBOOL_H_TRUE@	} > $@-t && \
- at GL_GENERATE_STDBOOL_H_TRUE@	mv $@-t $@
- at GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status
- at GL_GENERATE_STDBOOL_H_FALSE@	rm -f $@
-
-# We need the following in order to create <stddef.h> when the system
-# doesn't have one that works with the given compiler.
- at GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status
- at GL_GENERATE_STDDEF_H_TRUE@	$(AM_V_GEN)rm -f $@-t $@ && \
- at GL_GENERATE_STDDEF_H_TRUE@	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- at GL_GENERATE_STDDEF_H_TRUE@	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
- at GL_GENERATE_STDDEF_H_TRUE@	      < $(srcdir)/stddef.in.h; \
- at GL_GENERATE_STDDEF_H_TRUE@	} > $@-t && \
- at GL_GENERATE_STDDEF_H_TRUE@	mv $@-t $@
- at GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status
- at GL_GENERATE_STDDEF_H_FALSE@	rm -f $@
-
-# We need the following in order to create <stdint.h> when the system
-# doesn't have one that works with the given compiler.
- at GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status
- at GL_GENERATE_STDINT_H_TRUE@	$(AM_V_GEN)rm -f $@-t $@ && \
- at GL_GENERATE_STDINT_H_TRUE@	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- at GL_GENERATE_STDINT_H_TRUE@	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
- at GL_GENERATE_STDINT_H_TRUE@	      < $(srcdir)/stdint.in.h; \
- at GL_GENERATE_STDINT_H_TRUE@	} > $@-t && \
- at GL_GENERATE_STDINT_H_TRUE@	mv $@-t $@
- at GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status
- at GL_GENERATE_STDINT_H_FALSE@	rm -f $@
-
-# We need the following in order to create <stdlib.h> when the system
-# doesn't have one that works with the given compiler.
-stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-  $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
-	      -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
-	      -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
-	      -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
-	      -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
-	      -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
-	      -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
-	      -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
-	      -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
-	      -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
-	      -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
-	      -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
-	      -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
-	      -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
-	      -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
-	      -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
-	      -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
-	      -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
-	      -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
-	      -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \
-	      -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
-	      -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
-	      -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
-	      -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
-	      -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
-	      -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
-	      -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
-	      -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
-	      -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
-	      -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
-	      -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
-	      -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
-	      -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
-	      -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
-	      < $(srcdir)/stdlib.in.h | \
-	  sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
-	      -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
-	      -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
-	      -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
-	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-	      -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
-	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-	      -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
-	      -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
-	      -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
-	      -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
-	      -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
-	      -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
-	      -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
-	      -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
-	      -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
-	      -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
-	      -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
-	      -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-	      -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
-	      -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
-	      -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
-	      -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
-	      -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
-	      -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
-	      -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
-	      -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-	      -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
-	      -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
-	      -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
-	      -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
-	      -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
-	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
-	      -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
-	      -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
-	      -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
-	      -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
-	      -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
-	      -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
-	      -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
-	      -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
-	      -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
-	      -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
-	      -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      -e '/definition of _Noreturn/r $(_NORETURN_H)' \
-	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-	} > $@-t && \
-	mv $@-t $@
-
-# We need the following in order to create <sys/types.h> when the system
-# doesn't have one that works with the given compiler.
-sys/types.h: sys_types.in.h $(top_builddir)/config.status
-	$(AM_V_at)$(MKDIR_P) sys
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
-	      -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
-	      < $(srcdir)/sys_types.in.h; \
-	} > $@-t && \
-	mv $@-t $@
-
-# We need the following in order to create an empty placeholder for
-# <unistd.h> when the system doesn't have one.
-unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
-	      -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
-	      -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
-	      -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
-	      -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
-	      -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
-	      -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
-	      -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
-	      -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
-	      -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
-	      -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
-	      -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
-	      -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
-	      -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
-	      -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
-	      -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
-	      -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
-	      -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
-	      -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
-	      -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
-	      -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
-	      -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
-	      -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
-	      -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
-	      -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
-	      -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
-	      -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
-	      -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
-	      -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
-	      -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
-	      -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
-	      -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
-	      -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
-	      -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
-	      -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
-	      -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
-	      -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
-	      -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
-	      -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
-	      -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
-	      -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
-	      -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
-	      -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
-	      -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
-	      -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
-	      -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
-	      -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
-	      -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
-	      -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
-	      -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
-	      -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
-	      < $(srcdir)/unistd.in.h | \
-	  sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
-	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
-	      -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
-	      -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
-	      -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
-	      -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
-	      -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
-	      -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
-	      -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
-	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-	      -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
-	      -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
-	      -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
-	      -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
-	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
-	      -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
-	      -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
-	      -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
-	      -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
-	      -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
-	      -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
-	      -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
-	      -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
-	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
-	      -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
-	      -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \
-	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
-	      -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
-	      -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
-	      -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
-	      -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
-	      -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
-	      -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
-	      -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
-	      -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
-	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
-	      -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
-	      -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
-	      -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
-	      -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
-	      -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
-	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-	  | \
-	  sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
-	      -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
-	      -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
-	      -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
-	      -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
-	      -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
-	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
-	      -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
-	      -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
-	      -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
-	      -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
-	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
-	      -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
-	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
-	      -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
-	      -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
-	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
-	      -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
-	      -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
-	      -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
-	      -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
-	      -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \
-	      -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
-	      -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
-	      -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
-	      -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
-	      -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
-	      -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
-	      -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \
-	      -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \
-	      -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
-	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
-	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-	} > $@-t && \
-	mv $@-t $@
-
-# We need the following in order to create <wchar.h> when the system
-# version does not work standalone.
-wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
-	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
-	      -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
-	      -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
-	      -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
-	      -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
-	      -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
-	      -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
-	      -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
-	      -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
-	      -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
-	      -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
-	      -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
-	      -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
-	      -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
-	      -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
-	      -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
-	      -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
-	      -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
-	      -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
-	      -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
-	      -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
-	      -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
-	      -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
-	      -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
-	      -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
-	      -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
-	      -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
-	      -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
-	      -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
-	      -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
-	      -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
-	      -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
-	      -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
-	      -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
-	      -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
-	      -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
-	      -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
-	      -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
-	      -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
-	      -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
-	      -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
-	      < $(srcdir)/wchar.in.h | \
-	  sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
-	      -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
-	      -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
-	      -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
-	      -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
-	      -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
-	      -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
-	      -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
-	      -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
-	      -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
-	      -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
-	      -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
-	      -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
-	      -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
-	      -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
-	      -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
-	      -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
-	      -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
-	      -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
-	      -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
-	      -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
-	      -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
-	      -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
-	      -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
-	      -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
-	      -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
-	      -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
-	      -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
-	      -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
-	      -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
-	      -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
-	      -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
-	      -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
-	      -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
-	      -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
-	      -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
-	      -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
-	      -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
-	      -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
-	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
-	  | \
-	  sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
-	      -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
-	      -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
-	      -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
-	      -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
-	      -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
-	      -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
-	      -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
-	      -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
-	      -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
-	      -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
-	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
-	      -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-	} > $@-t && \
-	mv $@-t $@
-
-# We need the following in order to create <wctype.h> when the system
-# doesn't have one that works with the given compiler.
-wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
-	$(AM_V_GEN)rm -f $@-t $@ && \
-	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-	      -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
-	      -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
-	      -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
-	      -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
-	      -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
-	      -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
-	      -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
-	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
-	      -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
-	      -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
-	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-	      -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
-	      -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
-	      -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
-	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-	      < $(srcdir)/wctype.in.h; \
-	} > $@-t && \
-	mv $@-t $@
-
-mostlyclean-local: mostlyclean-generic
-	@for dir in '' $(MOSTLYCLEANDIRS); do \
-	  if test -n "$$dir" && test -d $$dir; then \
-	    echo "rmdir $$dir"; rmdir $$dir; \
-	  fi; \
-	done; \
-	:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/gl/iswblank.c b/gl/iswblank.c
new file mode 100644
index 0000000..c25f9b0
--- /dev/null
+++ b/gl/iswblank.c
@@ -0,0 +1,27 @@
+/* Test wide character for being blank.
+   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <wctype.h>
+
+int
+iswblank (wint_t wc)
+{
+  return wc == ' ' || wc == '\t';
+}
diff --git a/gl/m4/.gitignore b/gl/m4/.gitignore
new file mode 100644
index 0000000..35607a7
--- /dev/null
+++ b/gl/m4/.gitignore
@@ -0,0 +1,2 @@
+/absolute-header.m4
+/gnulib-comp.m4
diff --git a/gl/m4/mbchar.m4 b/gl/m4/mbchar.m4
new file mode 100644
index 0000000..df351a6
--- /dev/null
+++ b/gl/m4/mbchar.m4
@@ -0,0 +1,20 @@
+# mbchar.m4 serial 2
+dnl Copyright (C) 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl autoconf tests required for use of mbchar.m4
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_MBCHAR],
+[
+  AC_REQUIRE([AC_GNU_SOURCE])
+  dnl The following line is that so the user can test
+  dnl HAVE_WCHAR_H && HAVE_WCTYPE_H before #include "mbchar.h".
+  AC_CHECK_HEADERS_ONCE(wchar.h wctype.h)
+  dnl Compile mbchar.c only if HAVE_WCHAR_H && HAVE_WCTYPE_H.
+  if test $ac_cv_header_wchar_h = yes && test $ac_cv_header_wctype_h = yes; then
+    AC_LIBOBJ([mbchar])
+  fi
+])
diff --git a/gl/m4/mbiter.m4 b/gl/m4/mbiter.m4
new file mode 100644
index 0000000..7d51af1
--- /dev/null
+++ b/gl/m4/mbiter.m4
@@ -0,0 +1,17 @@
+# mbiter.m4 serial 2
+dnl Copyright (C) 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl autoconf tests required for use of mbiter.h
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_MBITER],
+[
+  AC_REQUIRE([AC_TYPE_MBSTATE_T])
+  dnl The following line is that so the user can test HAVE_MBRTOWC before
+  dnl #include "mbiter.h" or "mbuiter.h".
+  AC_REQUIRE([gl_FUNC_MBRTOWC])
+  :
+])
diff --git a/gl/m4/memchr.m4 b/gl/m4/memchr.m4
new file mode 100644
index 0000000..91b8636
--- /dev/null
+++ b/gl/m4/memchr.m4
@@ -0,0 +1,18 @@
+# memchr.m4 serial 4
+dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMCHR],
+[
+  AC_REPLACE_FUNCS(memchr)
+  if test $ac_cv_func_memchr = no; then
+    gl_PREREQ_MEMCHR
+  fi
+])
+
+# Prerequisites of lib/memchr.c.
+AC_DEFUN([gl_PREREQ_MEMCHR], [
+  AC_CHECK_HEADERS(bp-sym.h)
+])
diff --git a/gl/m4/restrict.m4 b/gl/m4/restrict.m4
new file mode 100644
index 0000000..1f3bbb9
--- /dev/null
+++ b/gl/m4/restrict.m4
@@ -0,0 +1,38 @@
+#serial 1003
+dnl Copyright (C) 2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# This macro can be removed once we can rely on Autoconf 2.57a or later,
+# since we can then use its AC_C_RESTRICT.
+
+# gl_C_RESTRICT
+# --------------
+# Determine whether the C/C++ compiler supports the "restrict" keyword
+# introduced in ANSI C99, or an equivalent.  Do nothing if the compiler
+# accepts it.  Otherwise, if the compiler supports an equivalent,
+# define "restrict" to be that.  Here are some variants:
+# - GCC supports both __restrict and __restrict__
+# - older DEC Alpha C compilers support only __restrict
+# - _Restrict is the only spelling accepted by Sun WorkShop 6 update 2 C
+# Otherwise, define "restrict" to be empty.
+AC_DEFUN([gl_C_RESTRICT],
+[AC_CACHE_CHECK([for C/C++ restrict keyword], gl_cv_c_restrict,
+  [gl_cv_c_restrict=no
+   # Try the official restrict keyword, then gcc's __restrict, and
+   # the less common variants.
+   for ac_kw in restrict __restrict __restrict__ _Restrict; do
+     AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+      [float * $ac_kw x;])],
+      [gl_cv_c_restrict=$ac_kw; break])
+   done
+  ])
+ case $gl_cv_c_restrict in
+   restrict) ;;
+   no) AC_DEFINE(restrict,,
+	[Define to equivalent of C99 restrict keyword, or to nothing if this
+	is not supported.  Do not define if restrict is supported directly.]) ;;
+   *)  AC_DEFINE_UNQUOTED(restrict, $gl_cv_c_restrict) ;;
+ esac
+])
diff --git a/gl/m4/strcase.m4 b/gl/m4/strcase.m4
new file mode 100644
index 0000000..717fa9c
--- /dev/null
+++ b/gl/m4/strcase.m4
@@ -0,0 +1,45 @@
+# strcase.m4 serial 11
+dnl Copyright (C) 2002, 2005-2012 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_STRCASE],
+[
+  gl_FUNC_STRCASECMP
+  gl_FUNC_STRNCASECMP
+])
+
+AC_DEFUN([gl_FUNC_STRCASECMP],
+[
+  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+  AC_CHECK_FUNCS([strcasecmp])
+  if test $ac_cv_func_strcasecmp = no; then
+    HAVE_STRCASECMP=0
+  fi
+])
+
+AC_DEFUN([gl_FUNC_STRNCASECMP],
+[
+  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+  AC_CHECK_FUNCS([strncasecmp])
+  if test $ac_cv_func_strncasecmp = yes; then
+    HAVE_STRNCASECMP=1
+  else
+    HAVE_STRNCASECMP=0
+  fi
+  AC_CHECK_DECLS([strncasecmp])
+  if test $ac_cv_have_decl_strncasecmp = no; then
+    HAVE_DECL_STRNCASECMP=0
+  fi
+])
+
+# Prerequisites of lib/strcasecmp.c.
+AC_DEFUN([gl_PREREQ_STRCASECMP], [
+  :
+])
+
+# Prerequisites of lib/strncasecmp.c.
+AC_DEFUN([gl_PREREQ_STRNCASECMP], [
+  :
+])
diff --git a/gl/m4/strings_h.m4 b/gl/m4/strings_h.m4
new file mode 100644
index 0000000..a057e1c
--- /dev/null
+++ b/gl/m4/strings_h.m4
@@ -0,0 +1,52 @@
+# Configure a replacement for <strings.h>.
+# serial 6
+
+# Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_HEADER_STRINGS_H],
+[
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_HEADER_STRINGS_H_BODY])
+])
+
+AC_DEFUN([gl_HEADER_STRINGS_H_BODY],
+[
+  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+
+  gl_CHECK_NEXT_HEADERS([strings.h])
+  if test $ac_cv_header_strings_h = yes; then
+    HAVE_STRINGS_H=1
+  else
+    HAVE_STRINGS_H=0
+  fi
+  AC_SUBST([HAVE_STRINGS_H])
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[
+    /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+       <strings.h>.  */
+    #include <sys/types.h>
+    #include <strings.h>
+    ]], [ffs strcasecmp strncasecmp])
+])
+
+AC_DEFUN([gl_STRINGS_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+
+AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS],
+[
+  GNULIB_FFS=0;            AC_SUBST([GNULIB_FFS])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_FFS=1;              AC_SUBST([HAVE_FFS])
+  HAVE_STRCASECMP=1;       AC_SUBST([HAVE_STRCASECMP])
+  HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP])
+])
diff --git a/gl/mbchar.c b/gl/mbchar.c
new file mode 100644
index 0000000..cc33b75
--- /dev/null
+++ b/gl/mbchar.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2001 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <limits.h>
+
+#include "mbchar.h"
+
+#if IS_BASIC_ASCII
+
+/* Bit table of characters in the ISO C "basic character set".  */
+unsigned int is_basic_table[UCHAR_MAX / 32 + 1] = {
+    0x00001a00,                 /* '\t' '\v' '\f' */
+    0xffffffef,                 /* ' '...'#' '%'...'?' */
+    0xfffffffe,                 /* 'A'...'Z' '[' '\\' ']' '^' '_' */
+    0x7ffffffe                  /* 'a'...'z' '{' '|' '}' '~' */
+        /* The remaining bits are 0.  */
+};
+
+#endif                          /* IS_BASIC_ASCII */
diff --git a/gl/mbchar.h b/gl/mbchar.h
new file mode 100644
index 0000000..15a44a8
--- /dev/null
+++ b/gl/mbchar.h
@@ -0,0 +1,419 @@
+/* Multibyte character data type.
+   Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno at clisp.org>.  */
+
+/* A multibyte character is a short subsequence of a char* string,
+   representing a single wide character.
+
+   We use multibyte characters instead of wide characters because of
+   the following goals:
+   1) correct multibyte handling, i.e. operate according to the LC_CTYPE
+      locale,
+   2) ease of maintenance, i.e. the maintainer needs not know all details
+      of the ISO C 99 standard,
+   3) don't fail grossly if the input is not in the encoding set by the
+      locale, because often different encodings are in use in the same
+      countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...),
+   4) fast in the case of ASCII characters,
+   5) portability, i.e. don't make unportable assumptions about wchar_t.
+
+   Multibyte characters are only accessed through the mb* macros.
+
+   mb_ptr (mbc)
+     return a pointer to the beginning of the multibyte sequence.
+
+   mb_len (mbc)
+     returns the number of bytes occupied by the multibyte sequence.
+     Always > 0.
+
+   mb_iseq (mbc, sc)
+     returns true if mbc is the standard ASCII character sc.
+
+   mb_isnul (mbc)
+     returns true if mbc is the nul character.
+
+   mb_cmp (mbc1, mbc2)
+     returns a positive, zero, or negative value depending on whether mbc1
+     sorts after, same or before mbc2.
+
+   mb_casecmp (mbc1, mbc2)
+     returns a positive, zero, or negative value depending on whether mbc1
+     sorts after, same or before mbc2, modulo upper/lowercase conversion.
+
+   mb_equal (mbc1, mbc2)
+     returns true if mbc1 and mbc2 are equal.
+
+   mb_caseequal (mbc1, mbc2)
+     returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion.
+
+   mb_isalnum (mbc)
+     returns true if mbc is alphanumeric.
+
+   mb_isalpha (mbc)
+     returns true if mbc is alphabetic.
+
+   mb_isascii(mbc)
+     returns true if mbc is plain ASCII.
+
+   mb_isblank (mbc)
+     returns true if mbc is a blank.
+
+   mb_iscntrl (mbc)
+     returns true if mbc is a control character.
+
+   mb_isdigit (mbc)
+     returns true if mbc is a decimal digit.
+
+   mb_isgraph (mbc)
+     returns true if mbc is a graphic character.
+
+   mb_islower (mbc)
+     returns true if mbc is lowercase.
+
+   mb_isprint (mbc)
+     returns true if mbc is a printable character.
+
+   mb_ispunct (mbc)
+     returns true if mbc is a punctuation character.
+
+   mb_isspace (mbc)
+     returns true if mbc is a space character.
+
+   mb_isupper (mbc)
+     returns true if mbc is uppercase.
+
+   mb_isxdigit (mbc)
+     returns true if mbc is a hexadecimal digit.
+
+   mb_width (mbc)
+     returns the number of columns on the output device occupied by mbc.
+     Always >= 0.
+
+   mb_putc (mbc, stream)
+     outputs mbc on stream, a byte oriented FILE stream opened for output.
+
+   mb_setascii (&mbc, sc)
+     assigns the standard ASCII character sc to mbc.
+
+   mb_copy (&destmbc, &srcmbc)
+     copies srcmbc to destmbc.
+
+   Here are the function prototypes of the macros.
+
+   extern const char *	mb_ptr (const mbchar_t mbc);
+   extern size_t	mb_len (const mbchar_t mbc);
+   extern bool		mb_iseq (const mbchar_t mbc, char sc);
+   extern bool		mb_isnul (const mbchar_t mbc);
+   extern int		mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern int		mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern bool		mb_equal (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern bool		mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern bool		mb_isalnum (const mbchar_t mbc);
+   extern bool		mb_isalpha (const mbchar_t mbc);
+   extern bool		mb_isascii (const mbchar_t mbc);
+   extern bool		mb_isblank (const mbchar_t mbc);
+   extern bool		mb_iscntrl (const mbchar_t mbc);
+   extern bool		mb_isdigit (const mbchar_t mbc);
+   extern bool		mb_isgraph (const mbchar_t mbc);
+   extern bool		mb_islower (const mbchar_t mbc);
+   extern bool		mb_isprint (const mbchar_t mbc);
+   extern bool		mb_ispunct (const mbchar_t mbc);
+   extern bool		mb_isspace (const mbchar_t mbc);
+   extern bool		mb_isupper (const mbchar_t mbc);
+   extern bool		mb_isxdigit (const mbchar_t mbc);
+   extern int		mb_width (const mbchar_t mbc);
+   extern void		mb_putc (const mbchar_t mbc, FILE *stream);
+   extern void          mb_setascii (mbchar_t *new, char sc);
+   extern void		mb_copy (mbchar_t *new, const mbchar_t *old);
+ */
+
+#ifndef _MBCHAR_H
+#define _MBCHAR_H 1
+
+#include <stdbool.h>
+#include <string.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+   <wchar.h>.  */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+#include <wctype.h>
+
+#define MBCHAR_BUF_SIZE 24
+
+struct mbchar {
+    const char *ptr;            /* pointer to current character */
+    size_t bytes;               /* number of bytes of current character, > 0 */
+    bool wc_valid;              /* true if wc is a valid wide character */
+    wchar_t wc;                 /* if wc_valid: the current character */
+    char buf[MBCHAR_BUF_SIZE];  /* room for the bytes, used for file input only */
+};
+
+/* EOF (not a real character) is represented with bytes = 0 and
+   wc_valid = false.  */
+
+typedef struct mbchar mbchar_t;
+
+/* Access the current character.  */
+#define mb_ptr(mbc) ((mbc).ptr)
+#define mb_len(mbc) ((mbc).bytes)
+
+/* Comparison of characters.  */
+#define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc))
+#define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0)
+#define mb_cmp(mbc1, mbc2) \
+  ((mbc1).wc_valid							\
+   ? ((mbc2).wc_valid							\
+      ? (int) (mbc1).wc - (int) (mbc2).wc				\
+      : -1)								\
+   : ((mbc2).wc_valid							\
+      ? 1								\
+      : (mbc1).bytes == (mbc2).bytes					\
+        ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
+        : (mbc1).bytes < (mbc2).bytes					\
+          ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+          : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+#define mb_casecmp(mbc1, mbc2) \
+  ((mbc1).wc_valid							\
+   ? ((mbc2).wc_valid							\
+      ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc)		\
+      : -1)								\
+   : ((mbc2).wc_valid							\
+      ? 1								\
+      : (mbc1).bytes == (mbc2).bytes					\
+        ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
+        : (mbc1).bytes < (mbc2).bytes					\
+          ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+          : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+#define mb_equal(mbc1, mbc2) \
+  ((mbc1).wc_valid && (mbc2).wc_valid					\
+   ? (mbc1).wc == (mbc2).wc						\
+   : (mbc1).bytes == (mbc2).bytes					\
+     && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+#define mb_caseequal(mbc1, mbc2) \
+  ((mbc1).wc_valid && (mbc2).wc_valid					\
+   ? towlower ((mbc1).wc) == towlower ((mbc2).wc)			\
+   : (mbc1).bytes == (mbc2).bytes					\
+     && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+
+/* <ctype.h>, <wctype.h> classification.  */
+#define mb_isascii(mbc) \
+  ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127)
+#define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc))
+#define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc))
+#define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc))
+#define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc))
+#define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc))
+#define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc))
+#define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc))
+#define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc))
+#define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc))
+#define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc))
+#define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc))
+#define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc))
+
+/* Extra <wchar.h> function.  */
+
+/* Unprintable characters appear as a small box of width 1.  */
+#define MB_UNPRINTABLE_WIDTH 1
+
+static inline int mb_width_aux(wint_t wc)
+{
+    int w = wcwidth(wc);
+    /* For unprintable characters, arbitrarily return 0 for control characters
+       and MB_UNPRINTABLE_WIDTH otherwise.  */
+    return (w >= 0 ? w : iswcntrl(wc) ? 0 : MB_UNPRINTABLE_WIDTH);
+}
+
+#define mb_width(mbc) \
+  ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH)
+
+/* Output.  */
+#define mb_putc(mbc, stream)  fwrite ((mbc).ptr, 1, (mbc).bytes, (stream))
+
+/* Assignment.  */
+#define mb_setascii(mbc, sc) \
+  ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \
+   (mbc)->wc = (mbc)->buf[0] = (sc))
+
+/* Copying a character.  */
+static inline void mb_copy(mbchar_t * new, const mbchar_t * old)
+{
+    if (old->ptr == &old->buf[0]) {
+        memcpy(&new->buf[0], &old->buf[0], old->bytes);
+        new->ptr = &new->buf[0];
+    } else
+        new->ptr = old->ptr;
+    new->bytes = old->bytes;
+    if ((new->wc_valid = old->wc_valid))
+        new->wc = old->wc;
+}
+
+
+/* is_basic(c) tests whether the single-byte character c is in the
+   ISO C "basic character set".
+   This is a convenience function, and is in this file only to share code
+   between mbiter_multi.h and mbfile_multi.h.  */
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+    && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+    && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+    && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+    && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+    && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+    && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+    && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+    && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+    && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+    && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+    && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+    && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+    && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+    && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+    && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+    && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+    && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+    && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+    && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+    && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+    && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+    && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ISO-646, not EBCDIC. */
+# define IS_BASIC_ASCII 1
+
+extern unsigned int is_basic_table[];
+
+static inline bool is_basic(char c)
+{
+    return (is_basic_table[(unsigned char) c >> 5] >>
+            ((unsigned char) c & 31))
+        & 1;
+}
+
+#else
+
+static inline bool is_basic(char c)
+{
+    switch (c) {
+    case '\t':
+    case '\v':
+    case '\f':
+    case ' ':
+    case '!':
+    case '"':
+    case '#':
+    case '%':
+    case '&':
+    case '\'':
+    case '(':
+    case ')':
+    case '*':
+    case '+':
+    case ',':
+    case '-':
+    case '.':
+    case '/':
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':
+    case ':':
+    case ';':
+    case '<':
+    case '=':
+    case '>':
+    case '?':
+    case 'A':
+    case 'B':
+    case 'C':
+    case 'D':
+    case 'E':
+    case 'F':
+    case 'G':
+    case 'H':
+    case 'I':
+    case 'J':
+    case 'K':
+    case 'L':
+    case 'M':
+    case 'N':
+    case 'O':
+    case 'P':
+    case 'Q':
+    case 'R':
+    case 'S':
+    case 'T':
+    case 'U':
+    case 'V':
+    case 'W':
+    case 'X':
+    case 'Y':
+    case 'Z':
+    case '[':
+    case '\\':
+    case ']':
+    case '^':
+    case '_':
+    case 'a':
+    case 'b':
+    case 'c':
+    case 'd':
+    case 'e':
+    case 'f':
+    case 'g':
+    case 'h':
+    case 'i':
+    case 'j':
+    case 'k':
+    case 'l':
+    case 'm':
+    case 'n':
+    case 'o':
+    case 'p':
+    case 'q':
+    case 'r':
+    case 's':
+    case 't':
+    case 'u':
+    case 'v':
+    case 'w':
+    case 'x':
+    case 'y':
+    case 'z':
+    case '{':
+    case '|':
+    case '}':
+    case '~':
+        return 1;
+    default:
+        return 0;
+    }
+}
+
+#endif
+
+#endif                          /* _MBCHAR_H */
diff --git a/gl/mbuiter.h b/gl/mbuiter.h
new file mode 100644
index 0000000..697fc96
--- /dev/null
+++ b/gl/mbuiter.h
@@ -0,0 +1,192 @@
+/* Iterating through multibyte strings: macros for multi-byte encodings.
+   Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno at clisp.org>.  */
+
+/* The macros in this file implement forward iteration through a
+   multi-byte string, without knowing its length a-priori.
+
+   With these macros, an iteration loop that looks like
+
+      char *iter;
+      for (iter = buf; *iter != '\0'; iter++)
+        {
+          do_something (*iter);
+        }
+
+   becomes
+
+      mbui_iterator_t iter;
+      for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter))
+        {
+          do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter)));
+        }
+
+   The benefit of these macros over plain use of mbrtowc is:
+   - Handling of invalid multibyte sequences is possible without
+     making the code more complicated, while still preserving the
+     invalid multibyte sequences.
+
+   Compared to mbiter.h, the macros here don't need to know the string's
+   length a-priori.  The downside is that at each step, the look-ahead
+   that guards against overrunning the terminating '\0' is more expensive.
+   The mbui_* macros are therefore suitable when there is a high probability
+   that only the first few multibyte characters need to be inspected.
+   Whereas the mbi_* macros are better if usually the iteration runs
+   through the entire string.
+
+   mbui_iterator_t
+     is a type usable for variable declarations.
+
+   mbui_init (iter, startptr)
+     initializes the iterator, starting at startptr.
+
+   mbui_avail (iter)
+     returns true if there are more multibyte chracters available before
+     the end of string is reached. In this case, mbui_cur (iter) is
+     initialized to the next multibyte chracter.
+
+   mbui_advance (iter)
+     advances the iterator by one multibyte character.
+
+   mbui_cur (iter)
+     returns the current multibyte character, of type mbchar_t.  All the
+     macros defined in mbchar.h can be used on it.
+
+   mbui_cur_ptr (iter)
+     return a pointer to the beginning of the current multibyte character.
+
+   mbui_reloc (iter, ptrdiff)
+     relocates iterator when the string is moved by ptrdiff bytes.
+
+   Here are the function prototypes of the macros.
+
+   extern void		mbui_init (mbui_iterator_t iter, const char *startptr);
+   extern bool		mbui_avail (mbui_iterator_t iter);
+   extern void		mbui_advance (mbui_iterator_t iter);
+   extern mbchar_t	mbui_cur (mbui_iterator_t iter);
+   extern const char *	mbui_cur_ptr (mbui_iterator_t iter);
+   extern void		mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff);
+ */
+
+#ifndef _MBUITER_H
+#define _MBUITER_H 1
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+   <wchar.h>.  */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+#include "mbchar.h"
+#include "strnlen1.h"
+
+struct mbuiter_multi {
+    bool in_shift;              /* true if next byte may not be interpreted as ASCII */
+    mbstate_t state;            /* if in_shift: current shift state */
+    bool next_done;             /* true if mbui_avail has already filled the following */
+    struct mbchar cur;          /* the current character:
+                                   const char *cur.ptr          pointer to current character
+                                   The following are only valid after mbui_avail.
+                                   size_t cur.bytes             number of bytes of current character
+                                   bool cur.wc_valid            true if wc is a valid wide character
+                                   wchar_t cur.wc                       if wc_valid: the current character
+                                 */
+};
+
+static inline void mbuiter_multi_next(struct mbuiter_multi *iter)
+{
+    if (iter->next_done)
+        return;
+    if (iter->in_shift)
+        goto with_shift;
+    /* Handle most ASCII characters quickly, without calling mbrtowc().  */
+    if (is_basic(*iter->cur.ptr)) {
+        /* These characters are part of the basic character set.  ISO C 99
+           guarantees that their wide character code is identical to their
+           char code.  */
+        iter->cur.bytes = 1;
+        iter->cur.wc = *iter->cur.ptr;
+        iter->cur.wc_valid = true;
+    } else {
+        assert(mbsinit(&iter->state));
+        iter->in_shift = true;
+      with_shift:
+        iter->cur.bytes = mbrtowc(&iter->cur.wc, iter->cur.ptr,
+                                  strnlen1(iter->cur.ptr, MB_CUR_MAX),
+                                  &iter->state);
+        if (iter->cur.bytes == (size_t) - 1) {
+            /* An invalid multibyte sequence was encountered.  */
+            iter->cur.bytes = 1;
+            iter->cur.wc_valid = false;
+            /* Whether to set iter->in_shift = false and reset iter->state
+               or not is not very important; the string is bogus anyway.  */
+        } else if (iter->cur.bytes == (size_t) - 2) {
+            /* An incomplete multibyte character at the end.  */
+            iter->cur.bytes = strlen(iter->cur.ptr);
+            iter->cur.wc_valid = false;
+            /* Whether to set iter->in_shift = false and reset iter->state
+               or not is not important; the string end is reached anyway.  */
+        } else {
+            if (iter->cur.bytes == 0) {
+                /* A null wide character was encountered.  */
+                iter->cur.bytes = 1;
+                assert(*iter->cur.ptr == '\0');
+                assert(iter->cur.wc == 0);
+            }
+            iter->cur.wc_valid = true;
+
+            /* When in the initial state, we can go back treating ASCII
+               characters more quickly.  */
+            if (mbsinit(&iter->state))
+                iter->in_shift = false;
+        }
+    }
+    iter->next_done = true;
+}
+
+static inline void
+mbuiter_multi_reloc(struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
+{
+    iter->cur.ptr += ptrdiff;
+}
+
+/* Iteration macros.  */
+typedef struct mbuiter_multi mbui_iterator_t;
+#define mbui_init(iter, startptr) \
+  ((iter).cur.ptr = (startptr), \
+   (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
+   (iter).next_done = false)
+#define mbui_avail(iter) \
+  (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
+#define mbui_advance(iter) \
+  ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
+
+/* Access to the current character.  */
+#define mbui_cur(iter) (iter).cur
+#define mbui_cur_ptr(iter) (iter).cur.ptr
+
+/* Relocation.  */
+#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
+
+#endif                          /* _MBUITER_H */
diff --git a/gl/memchr.c b/gl/memchr.c
new file mode 100644
index 0000000..6ced82f
--- /dev/null
+++ b/gl/memchr.c
@@ -0,0 +1,198 @@
+/* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004 Free
+   Software Foundation, Inc.
+
+   Based on strlen implementation by Torbjorn Granlund (tege at sics.se),
+   with help from Dan Sahlin (dan at sics.se) and
+   commentary by Jim Blandy (jimb at ai.mit.edu);
+   adaptation to memchr suggested by Dick Karpinski (dick at cca.ucsf.edu),
+   and implemented by Roland McGrath (roland at ai.mit.edu).
+
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc at prep.ai.mit.edu.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as published by the
+Free Software Foundation; either version 2.1, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+
+#include <stddef.h>
+
+#if defined _LIBC
+# include <memcopy.h>
+#else
+# define reg_char char
+#endif
+
+#include <limits.h>
+
+#if HAVE_BP_SYM_H || defined _LIBC
+# include <bp-sym.h>
+#else
+# define BP_SYM(sym) sym
+#endif
+
+#undef memchr
+#undef __memchr
+
+/* Search no more than N bytes of S for C.  */
+void *__memchr(void const *s, int c_in, size_t n)
+{
+    const unsigned char *char_ptr;
+    const unsigned long int *longword_ptr;
+    unsigned long int longword, magic_bits, charmask;
+    unsigned reg_char c;
+    int i;
+
+    c = (unsigned char) c_in;
+
+    /* Handle the first few characters by reading one character at a time.
+       Do this until CHAR_PTR is aligned on a longword boundary.  */
+    for (char_ptr = (const unsigned char *) s;
+         n > 0 && (size_t) char_ptr % sizeof longword != 0;
+         --n, ++char_ptr)
+        if (*char_ptr == c)
+            return (void *) char_ptr;
+
+    /* All these elucidatory comments refer to 4-byte longwords,
+       but the theory applies equally well to any size longwords.  */
+
+    longword_ptr = (const unsigned long int *) char_ptr;
+
+    /* Bits 31, 24, 16, and 8 of this number are zero.  Call these bits
+       the "holes."  Note that there is a hole just to the left of
+       each byte, with an extra at the end:
+
+       bits:  01111110 11111110 11111110 11111111
+       bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
+
+       The 1-bits make sure that carries propagate to the next 0-bit.
+       The 0-bits provide holes for carries to fall into.  */
+
+    /* Set MAGIC_BITS to be this pattern of 1 and 0 bits.
+       Set CHARMASK to be a longword, each of whose bytes is C.  */
+
+    magic_bits = 0xfefefefe;
+    charmask = c | (c << 8);
+    charmask |= charmask << 16;
+#if 0xffffffffU < ULONG_MAX
+    magic_bits |= magic_bits << 32;
+    charmask |= charmask << 32;
+    if (8 < sizeof longword)
+        for (i = 64; i < sizeof longword * 8; i *= 2) {
+            magic_bits |= magic_bits << i;
+            charmask |= charmask << i;
+        }
+#endif
+    magic_bits = (ULONG_MAX >> 1) & (magic_bits | 1);
+
+    /* Instead of the traditional loop which tests each character,
+       we will test a longword at a time.  The tricky part is testing
+       if *any of the four* bytes in the longword in question are zero.  */
+    while (n >= sizeof longword) {
+        /* We tentatively exit the loop if adding MAGIC_BITS to
+           LONGWORD fails to change any of the hole bits of LONGWORD.
+
+           1) Is this safe?  Will it catch all the zero bytes?
+           Suppose there is a byte with all zeros.  Any carry bits
+           propagating from its left will fall into the hole at its
+           least significant bit and stop.  Since there will be no
+           carry from its most significant bit, the LSB of the
+           byte to the left will be unchanged, and the zero will be
+           detected.
+
+           2) Is this worthwhile?  Will it ignore everything except
+           zero bytes?  Suppose every byte of LONGWORD has a bit set
+           somewhere.  There will be a carry into bit 8.  If bit 8
+           is set, this will carry into bit 16.  If bit 8 is clear,
+           one of bits 9-15 must be set, so there will be a carry
+           into bit 16.  Similarly, there will be a carry into bit
+           24.  If one of bits 24-30 is set, there will be a carry
+           into bit 31, so all of the hole bits will be changed.
+
+           The one misfire occurs when bits 24-30 are clear and bit
+           31 is set; in this case, the hole at bit 31 is not
+           changed.  If we had access to the processor carry flag,
+           we could close this loophole by putting the fourth hole
+           at bit 32!
+
+           So it ignores everything except 128's, when they're aligned
+           properly.
+
+           3) But wait!  Aren't we looking for C, not zero?
+           Good point.  So what we do is XOR LONGWORD with a longword,
+           each of whose bytes is C.  This turns each byte that is C
+           into a zero.  */
+
+        longword = *longword_ptr++ ^ charmask;
+
+        /* Add MAGIC_BITS to LONGWORD.  */
+        if ((((longword + magic_bits)
+
+              /* Set those bits that were unchanged by the addition.  */
+              ^ ~longword)
+
+             /* Look at only the hole bits.  If any of the hole bits
+                are unchanged, most likely one of the bytes was a
+                zero.  */
+             & ~magic_bits) != 0) {
+            /* Which of the bytes was C?  If none of them were, it was
+               a misfire; continue the search.  */
+
+            const unsigned char *cp =
+                (const unsigned char *) (longword_ptr - 1);
+
+            if (cp[0] == c)
+                return (void *) cp;
+            if (cp[1] == c)
+                return (void *) &cp[1];
+            if (cp[2] == c)
+                return (void *) &cp[2];
+            if (cp[3] == c)
+                return (void *) &cp[3];
+            if (4 < sizeof longword && cp[4] == c)
+                return (void *) &cp[4];
+            if (5 < sizeof longword && cp[5] == c)
+                return (void *) &cp[5];
+            if (6 < sizeof longword && cp[6] == c)
+                return (void *) &cp[6];
+            if (7 < sizeof longword && cp[7] == c)
+                return (void *) &cp[7];
+            if (8 < sizeof longword)
+                for (i = 8; i < sizeof longword; i++)
+                    if (cp[i] == c)
+                        return (void *) &cp[i];
+        }
+
+        n -= sizeof longword;
+    }
+
+    char_ptr = (const unsigned char *) longword_ptr;
+
+    while (n-- > 0) {
+        if (*char_ptr == c)
+            return (void *) char_ptr;
+        else
+            ++char_ptr;
+    }
+
+    return 0;
+}
+
+#ifdef weak_alias
+weak_alias(__memchr, BP_SYM(memchr))
+#endif
diff --git a/gl/strcase.h b/gl/strcase.h
new file mode 100644
index 0000000..27a2b55
--- /dev/null
+++ b/gl/strcase.h
@@ -0,0 +1,46 @@
+/* Case-insensitive string comparison functions.
+   Copyright (C) 1995-1996, 2001, 2003, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _STRCASE_H
+#define _STRCASE_H
+
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.
+   Note: This function may, in multibyte locales, return 0 for strings of
+   different lengths!  */
+    extern int strcasecmp(const char *s1, const char *s2);
+
+/* Compare no more than N characters of strings S1 and S2, ignoring case,
+   returning less than, equal to or greater than zero if S1 is
+   lexicographically less than, equal to or greater than S2.
+   Note: This function cannot work correctly in multibyte locales.  */
+    extern int strncasecmp(const char *s1, const char *s2, size_t n);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif                          /* _STRCASE_H */
diff --git a/gl/strcasecmp.c b/gl/strcasecmp.c
new file mode 100644
index 0000000..ec3c3e6
--- /dev/null
+++ b/gl/strcasecmp.c
@@ -0,0 +1,62 @@
+/* Case-insensitive string comparison function.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <string.h>
+
+#include <ctype.h>
+#include <limits.h>
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.
+   Note: This function does not work with multibyte strings!  */
+
+int
+strcasecmp (const char *s1, const char *s2)
+{
+  const unsigned char *p1 = (const unsigned char *) s1;
+  const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2)
+    return 0;
+
+  do
+    {
+      c1 = TOLOWER (*p1);
+      c2 = TOLOWER (*p2);
+
+      if (c1 == '\0')
+        break;
+
+      ++p1;
+      ++p2;
+    }
+  while (c1 == c2);
+
+  if (UCHAR_MAX <= INT_MAX)
+    return c1 - c2;
+  else
+    /* On machines where 'char' and 'int' are types of the same size, the
+       difference of two 'unsigned char' values - including the sign bit -
+       doesn't fit in an 'int'.  */
+    return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
diff --git a/gl/strings.in.h b/gl/strings.in.h
new file mode 100644
index 0000000..95c4cf7
--- /dev/null
+++ b/gl/strings.in.h
@@ -0,0 +1,122 @@
+/* A substitute <strings.h>.
+
+   Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _ at GUARD_PREFIX@_STRINGS_H
+
+#if __GNUC__ >= 3
+ at PRAGMA_SYSTEM_HEADER@
+#endif
+ at PRAGMA_COLUMNS@
+
+/* Minix 3.1.8 has a bug: <sys/types.h> must be included before <strings.h>.
+   But avoid namespace pollution on glibc systems.  */
+#if defined __minix && !defined __GLIBC__
+# include <sys/types.h>
+#endif
+
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_STRINGS_H@
+# @INCLUDE_NEXT@ @NEXT_STRINGS_H@
+#endif
+
+#ifndef _ at GUARD_PREFIX@_STRINGS_H
+#define _ at GUARD_PREFIX@_STRINGS_H
+
+#if ! @HAVE_DECL_STRNCASECMP@
+/* Get size_t.  */
+# include <stddef.h>
+#endif
+
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+  /* Find the index of the least-significant set bit.  */
+#if @GNULIB_FFS@
+# if !@HAVE_FFS@
+_GL_FUNCDECL_SYS (ffs, int, (int i));
+# endif
+_GL_CXXALIAS_SYS (ffs, int, (int i));
+_GL_CXXALIASWARN (ffs);
+#elif defined GNULIB_POSIXCHECK
+# undef ffs
+# if HAVE_RAW_DECL_FFS
+_GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module");
+# endif
+#endif
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.
+   Note: This function does not work in multibyte locales.  */
+#if ! @HAVE_STRCASECMP@
+extern int strcasecmp (char const *s1, char const *s2)
+     _GL_ARG_NONNULL ((1, 2));
+#endif
+#if defined GNULIB_POSIXCHECK
+/* strcasecmp() does not work with multibyte strings:
+   POSIX says that it operates on "strings", and "string" in POSIX is defined
+   as a sequence of bytes, not of characters.   */
+# undef strcasecmp
+# if HAVE_RAW_DECL_STRCASECMP
+_GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character "
+                 "strings in multibyte locales - "
+                 "use mbscasecmp if you care about "
+                 "internationalization, or use c_strcasecmp , "
+                 "gnulib module c-strcase) if you want a locale "
+                 "independent function");
+# endif
+#endif
+
+/* Compare no more than N bytes of strings S1 and S2, ignoring case,
+   returning less than, equal to or greater than zero if S1 is
+   lexicographically less than, equal to or greater than S2.
+   Note: This function cannot work correctly in multibyte locales.  */
+#if ! @HAVE_DECL_STRNCASECMP@
+extern int strncasecmp (char const *s1, char const *s2, size_t n)
+     _GL_ARG_NONNULL ((1, 2));
+#endif
+#if defined GNULIB_POSIXCHECK
+/* strncasecmp() does not work with multibyte strings:
+   POSIX says that it operates on "strings", and "string" in POSIX is defined
+   as a sequence of bytes, not of characters.  */
+# undef strncasecmp
+# if HAVE_RAW_DECL_STRNCASECMP
+_GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character "
+                 "strings in multibyte locales - "
+                 "use mbsncasecmp or mbspcasecmp if you care about "
+                 "internationalization, or use c_strncasecmp , "
+                 "gnulib module c-strcase) if you want a locale "
+                 "independent function");
+# endif
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ at GUARD_PREFIX@_STRING_H */
+#endif /* _ at GUARD_PREFIX@_STRING_H */
diff --git a/gl/strncasecmp.c b/gl/strncasecmp.c
new file mode 100644
index 0000000..a61d55f
--- /dev/null
+++ b/gl/strncasecmp.c
@@ -0,0 +1,62 @@
+/* strncasecmp.c -- case insensitive string comparator
+   Copyright (C) 1998-1999, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <string.h>
+
+#include <ctype.h>
+#include <limits.h>
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* Compare no more than N bytes of strings S1 and S2, ignoring case,
+   returning less than, equal to or greater than zero if S1 is
+   lexicographically less than, equal to or greater than S2.
+   Note: This function cannot work correctly in multibyte locales.  */
+
+int
+strncasecmp (const char *s1, const char *s2, size_t n)
+{
+  register const unsigned char *p1 = (const unsigned char *) s1;
+  register const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2 || n == 0)
+    return 0;
+
+  do
+    {
+      c1 = TOLOWER (*p1);
+      c2 = TOLOWER (*p2);
+
+      if (--n == 0 || c1 == '\0')
+        break;
+
+      ++p1;
+      ++p2;
+    }
+  while (c1 == c2);
+
+  if (UCHAR_MAX <= INT_MAX)
+    return c1 - c2;
+  else
+    /* On machines where 'char' and 'int' are types of the same size, the
+       difference of two 'unsigned char' values - including the sign bit -
+       doesn't fit in an 'int'.  */
+    return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
diff --git a/gl/strnlen1.c b/gl/strnlen1.c
new file mode 100644
index 0000000..54c9fe9
--- /dev/null
+++ b/gl/strnlen1.c
@@ -0,0 +1,38 @@
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Library General Public License as published
+   by the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification.  */
+#include "strnlen1.h"
+
+#include <string.h>
+
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   If no '\0' terminator is found in that many characters, return MAXLEN.  */
+/* This is the same as strnlen (string, maxlen - 1) + 1.  */
+size_t strnlen1(const char *string, size_t maxlen)
+{
+    const char *end = memchr(string, '\0', maxlen);
+    if (end != NULL)
+        return end - string + 1;
+    else
+        return maxlen;
+}
diff --git a/gl/strnlen1.h b/gl/strnlen1.h
new file mode 100644
index 0000000..5498f31
--- /dev/null
+++ b/gl/strnlen1.h
@@ -0,0 +1,39 @@
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Library General Public License as published
+   by the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+#ifndef _STRNLEN1_H
+#define _STRNLEN1_H
+
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   If no '\0' terminator is found in that many characters, return MAXLEN.  */
+/* This is the same as strnlen (string, maxlen - 1) + 1.  */
+    extern size_t strnlen1(const char *string, size_t maxlen);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif                          /* _STRNLEN1_H */
diff --git a/install_libdap_source_deps.sh b/install_libdap_source_deps.sh
new file mode 100644
index 0000000..e0b63b5
--- /dev/null
+++ b/install_libdap_source_deps.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# check to see if bison folder is empty
+if test ! -d "$HOME/bison/bin"
+then
+  wget http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz
+  tar -xzf bison-3.0.4.tar.gz
+  cd bison-3.0.4 && ./configure --prefix=$HOME/bison && make -j 4 && make install
+else
+  echo 'Using cached bison directory.';
+fi
diff --git a/installdap b/installdap
new file mode 100755
index 0000000..0b0cecc
--- /dev/null
+++ b/installdap
@@ -0,0 +1,221 @@
+#!/bin/sh
+
+top_builddir="."
+SHELL=/bin/sh
+LIBTOOL="${SHELL} ${top_builddir}/libtool"
+EXEEXT=""
+exec_prefix="tmpbin"
+bindir="bin"
+libdir="lib"
+sharedir="share/aclocal"
+includedir="include/libdap"
+sbindir="sbin"
+bin_PROGRAMS="dap-config"
+bin_PROGRAMS1="getdap"
+lib_PROGRAMS="libdap.la"
+share_PROGRAMS="conf/libdap.m4"
+sbin_PROGRAMS="deflate"
+mkdir_p="mkdir -p --"
+binPROGRAMS_INSTALL="install -c"
+sbinPROGRAMS_INSTALL="install -c"
+libPROGRAMS_INSTALL="install -c -s"
+datPROGRAMS_INSTALL="install -c -m 644"
+#install-binPROGRAMS: $(bin_PROGRAMS)
+DAP_HDR="escaping.h AttrTable.h DAS.h parser.h debug.h dods-limits.h \
+ ce_functions.h Operators.h EventHandler.h DDS.h \
+ DataDDS.h DDXParser.h DDXExceptions.h expr.h Clause.h RValue.h  \
+ Error.h InternalErr.h BaseType.h Byte.h Int32.h GSEClause.h \
+ Constructor.h Float64.h Str.h Url.h Vector.h Array.h \
+ Structure.h Sequence.h Grid.h UInt32.h util.h Int16.h UInt16.h  \
+ Float32.h dods-datatypes.h util_mit.h PassiveByte.h \
+ PassiveInt32.h PassiveFloat64.h PassiveStr.h PassiveUrl.h \
+ PassiveUInt32.h PassiveInt16.h PassiveUInt16.h \
+ PassiveFloat32.h PassiveArray.h PassiveStructure.h \
+ DODSResponseObject.h BaseTypeFactory.h"
+CLIENT_HDR="ResponseTooBigErr.h RCReader.h Connect.h HTTPConnect.h \
+ ObjectType.h EncodingType.h HTTPCache.h HTTPCacheDisconnectedMode.h \
+ Response.h HTTPResponse.h HTTPCacheResponse.h AISConnect.h \
+ AISMerge.h AISExceptions.h AISDatabaseParser.h AISResources.h \
+ Resource.h HTTPCacheInterruptHandler.h"
+SERVER_HDR="cgi_util.h DODSFilter.h SignalHandler.h OPeNDAPFile.h \
+ OPeNDAPDir.h SignalHandlerRegisteredErr.h AlarmHandler.h"
+GNU_HDR="GNU/builtin.h GNU/Pix.h GNU/GetOpt.h GNU/GNURegex.h \
+ IteratorAdapter.h ArrayIterAdapter.h AttrIterAdapter.h \
+ BTIterAdapter.h ClauseIterAdapter.h"
+include_PROGRAMS="$DAP_HDR $CLIENT_HDR $SERVER_HDR $GNU_HDR"
+
+if test "$1" = "-u"
+   then 
+   if test -n "$2"
+   then 
+      DESTDIR="$2"
+   else
+        echo "Do you want to uninstall libdap? y/n"
+        read et
+        if test $et == "y" || test $et == "Y"
+        then 
+            echo "Please enter the prefix of installation directory for the uninstallation"
+            read DESTDIR;
+        else
+            exit 1
+        fi
+   fi
+   if test -z "$DESTDIR"
+   then
+       exit 1
+   fi
+   ## start unstalling process
+   echo "UNINSTALLING bin directory"
+   `unalias rm`
+      for p in $bin_PROGRAMS
+      do
+         if test -f $p
+          then
+          echo " removing '$p' at '${DESTDIR}/${bindir}'"
+          rm -f "${DESTDIR}/${bindir}/$p" || exit 1
+         fi
+      done
+      for p in $bin_PROGRAMS1
+      do
+         if test -f $p
+          then
+          echo " removing '$p' at '${DESTDIR}/${bindir}'"
+          rm -f "${DESTDIR}/${bindir}/$p" || exit 1
+         fi
+      done
+
+      echo "UNINSTALLING lib directory"
+      lib_PROGRAMS="libdap*"
+      for p in `ls ${DESTDIR}/${libdir}/$lib_PROGRAMS`
+      do
+         if test -f $p
+          then
+          echo " removing '$p' at '${DESTDIR}/${libdir}'"
+         rm -f "$p" || exit 1
+         fi
+      done
+      echo "UNINSTALLING share directory"
+      for p in $share_PROGRAMS
+      do
+         if test -f $p
+          then
+          f=`echo $p | sed 's|^.*/||'`
+          echo " removing '$f' at '${DESTDIR}/${sharedir}'"
+          rm -f "${DESTDIR}/${sharedir}/$f" || exit 1
+         fi
+      done
+
+      echo "UNINSTALLING sbin directory"
+      for p in $sbin_PROGRAMS
+      do
+         if test -f $p
+          then
+          echo " removing '$p' at '${DESTDIR}/${sbindir}'"
+          rm -f "${DESTDIR}/${sbindir}/$p" || exit 1
+         fi
+      done
+
+      echo "UNINSTALLING include directory"
+      for p in $include_PROGRAMS
+      do
+         if test -f $p
+          then
+          f=`echo $p | sed 's|^.*/||'`
+          echo " removing '$f' at '${DESTDIR}/${includedir}'"
+          rm -f "${DESTDIR}/${includedir}/$f" || exit 1
+         fi
+      done
+## finish unstalling
+
+elif test "$1" = "-i"
+   then 
+   if test -n "$2"
+   then 
+        DESTDIR="$2"
+   else
+        echo "Please enter the prefix of installation directory, for example, entering /usr/local if the installation directory is /usr/local/bin"
+        read DESTDIR;
+   fi
+   if test -z "$DESTDIR"
+   then
+       echo "invalid or no directory entered"
+       exit 1
+   fi
+   echo "Installing bin directory"
+   test -z "${DESTDIR}/${bindir}" || ${mkdir_p} "${DESTDIR}/${bindir}"
+   for p in $bin_PROGRAMS
+   do
+      if test -f $p
+       then 
+       sed 's@^prefix=.*$@prefix='${DESTDIR}'/bin@' < $p > ${p}.tmp
+       echo " INSTALLIGN '$p' at '${bindir}'"
+      ${INSTALL_PROGRAM_ENV} ${LIBTOOL} --mode=install ${binPROGRAMS_INSTALL} "$p.tmp" "${DESTDIR}/${bindir}/$p" || exit 1
+      fi
+   done
+   for p in $bin_PROGRAMS1
+   do
+      if test -f $p
+       then 
+       echo " INSTALLING '$p' at '${bindir}'"
+       ${binPROGRAMS_INSTALL} "$p" "${DESTDIR}/${bindir}/$p" || exit 1
+      fi
+   done
+
+   echo "Installing lib directory"
+   test -z "${DESTDIR}/${libdir}" || ${mkdir_p} "${DESTDIR}/${libdir}"
+   for p in $lib_PROGRAMS
+   do
+      if test -f $p
+       then 
+       echo " INSTALLING '$p' at '${libdir}'"
+      ${INSTALL_PROGRAM_ENV} ${LIBTOOL} --mode=install ${libPROGRAMS_INSTALL} "$p" "${DESTDIR}/${libdir}/$p" || exit 1
+      fi
+   done
+
+   echo "Installing share directory"
+   test -z "${DESTDIR}/${sharedir}" || ${mkdir_p} "${DESTDIR}/${sharedir}"
+   for p in $share_PROGRAMS
+   do
+      if test -f $p
+       then 
+       f=`echo $p | sed 's|^.*/||'`
+       echo " INSTALLING '$f' at '${sharedir}'"
+       ${datPROGRAMS_INSTALL} "$p" "${DESTDIR}/${sharedir}/$f" || exit 1
+      fi
+   done
+
+   echo "Installing sbin directory"
+   test -z "${DESTDIR}/${sbindir}" || ${mkdir_p} "${DESTDIR}/${sbindir}"
+   for p in $sbin_PROGRAMS
+   do
+      if test -f $p
+       then 
+       echo " INSTALLING '$p' at '${sbindir}'"
+      ${INSTALL_PROGRAM_ENV} ${LIBTOOL} --mode=install ${sbinPROGRAMS_INSTALL} "$p" "${DESTDIR}/${sbindir}/$p" || exit 1
+      fi
+   done
+
+   echo "Installing include directory"
+   test -z "${DESTDIR}/${includedir}" || ${mkdir_p} "${DESTDIR}/${includedir}"
+   for p in $include_PROGRAMS
+   do
+      if test -f $p
+       then 
+       f=`echo $p | sed 's|^.*/||'`
+       echo " INSTALLING '$f' at '${includedir}'"
+       ${datPROGRAMS_INSTALL} "$p" "${DESTDIR}/${includedir}/$f" || exit 1
+      fi
+   done
+##finish installing
+else
+   echo "$include_PROGRAMS"
+   echo "USAGE:"
+   usage="installdap [OPTION] DIRECTORY"
+   echo ${usage}
+   echo "OR"
+   usage="installdap [OPTION]"
+   echo ${usage}
+   echo "Options:"
+      echo " -i   install dap library"
+      echo " -u   uninstall dap library"
+fi
diff --git a/lex.Error.cc b/lex.Error.cc
deleted file mode 100644
index 6242fd3..0000000
--- a/lex.Error.cc
+++ /dev/null
@@ -1,2000 +0,0 @@
-#line 2 "lex.Error.cc"
-
-#line 4 "lex.Error.cc"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define yy_create_buffer Error_create_buffer
-#define yy_delete_buffer Error_delete_buffer
-#define yy_flex_debug Error_flex_debug
-#define yy_init_buffer Error_init_buffer
-#define yy_flush_buffer Error_flush_buffer
-#define yy_load_buffer_state Error_load_buffer_state
-#define yy_switch_to_buffer Error_switch_to_buffer
-#define yyin Errorin
-#define yyleng Errorleng
-#define yylex Errorlex
-#define yylineno Errorlineno
-#define yyout Errorout
-#define yyrestart Errorrestart
-#define yytext Errortext
-#define yywrap Errorwrap
-#define yyalloc Erroralloc
-#define yyrealloc Errorrealloc
-#define yyfree Errorfree
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE Errorrestart(Errorin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern yy_size_t Errorleng;
-
-extern FILE *Errorin, *Errorout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up Errortext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
-		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up Errortext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	yy_size_t yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via Errorrestart()), so that the user can continue scanning by
-	 * just pointing Errorin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when Errortext is formed. */
-static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t Errorleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
-static int yy_start = 0;	/* start state number */
-
-/* Flag which is used to allow Errorwrap()'s to do buffer switches
- * instead of setting up a fresh Errorin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void Errorrestart (FILE *input_file  );
-void Error_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE Error_create_buffer (FILE *file,int size  );
-void Error_delete_buffer (YY_BUFFER_STATE b  );
-void Error_flush_buffer (YY_BUFFER_STATE b  );
-void Errorpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void Errorpop_buffer_state (void );
-
-static void Errorensure_buffer_stack (void );
-static void Error_load_buffer_state (void );
-static void Error_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER Error_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE Error_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE Error_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE Error_scan_bytes (yyconst char *bytes,yy_size_t len  );
-
-void *Erroralloc (yy_size_t  );
-void *Errorrealloc (void *,yy_size_t  );
-void Errorfree (void *  );
-
-#define yy_new_buffer Error_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        Errorensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            Error_create_buffer(Errorin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        Errorensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            Error_create_buffer(Errorin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define Errorwrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-FILE *Errorin = (FILE *) 0, *Errorout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int Errorlineno;
-
-int Errorlineno = 1;
-
-extern char *Errortext;
-#define yytext_ptr Errortext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up Errortext.
- */
-#define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	(yytext_ptr) -= (yy_more_len); \
-	Errorleng = (yy_size_t) (yy_cp - (yytext_ptr)); \
-	(yy_hold_char) = *yy_cp; \
-	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 20
-#define YY_END_OF_BUFFER 21
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[71] =
-    {   0,
-        0,    0,   15,   15,   12,   12,   21,   19,    9,   10,
-       14,   11,   20,    4,    7,    8,   20,   20,   20,   20,
-       20,   20,    5,    6,   15,   16,   18,   20,   12,   13,
-        9,    4,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   15,   16,   17,   12,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    2,    0,    0,    0,    0,    0,
-        0,    1,    0,    0,    0,    0,    0,    0,    3,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    4,    5,    1,    1,    1,    1,    1,
-        1,    1,    6,    6,    6,    6,    6,    7,    7,    7,
-        7,    7,    7,    7,    7,    7,    7,    6,    8,    1,
-        9,    1,    1,    1,   10,    6,   11,   12,   13,    6,
-       14,    6,    6,    6,    6,    6,   15,    6,   16,    6,
-        6,   17,   18,    6,    6,    6,    6,    6,    6,    6,
-        1,   19,    1,    1,    6,    1,   20,    6,   21,   22,
-
-       23,    6,   24,    6,    6,    6,    6,    6,   25,    6,
-       26,    6,    6,   27,   28,    6,    6,    6,    6,    6,
-        6,    6,   29,    1,   30,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[31] =
-    {   0,
-        1,    1,    2,    3,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    3,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[76] =
-    {   0,
-        0,    0,   28,   30,   93,   92,   94,   97,   91,   97,
-       97,   97,   97,   85,   97,   97,   19,   19,   25,   65,
-       63,   66,   97,   97,   85,   97,   97,    0,    0,   97,
-       85,   79,   73,   62,   66,   55,   63,   52,   57,   51,
-       49,   73,   97,   97,    0,   62,   51,   57,   46,   53,
-       42,   46,   42,   39,   97,   49,   38,   54,   42,   32,
-       24,   97,   29,   18,   17,   27,   16,   14,   97,   97,
-       49,   52,   55,   57,   60
-    } ;
-
-static yyconst flex_int16_t yy_def[76] =
-    {   0,
-       70,    1,   71,   71,   72,   72,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   73,   70,   70,   74,   75,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   73,   70,   70,   75,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,   70,    0,
-       70,   70,   70,   70,   70
-    } ;
-
-static yyconst flex_int16_t yy_nxt[128] =
-    {   0,
-        8,    9,   10,   11,   12,   13,   14,   15,   16,   13,
-       17,   13,   18,   13,   19,   13,   13,   13,    8,   13,
-       20,   13,   21,   13,   22,   13,   13,   13,   23,   24,
-       26,   27,   26,   27,   33,   35,   69,   37,   69,   69,
-       68,   67,   66,   65,   34,   36,   28,   38,   28,   25,
-       25,   25,   29,   29,   29,   42,   42,   44,   62,   44,
-       45,   64,   45,   63,   62,   62,   61,   60,   55,   59,
-       58,   57,   56,   55,   55,   43,   54,   53,   52,   51,
-       50,   49,   48,   47,   46,   32,   31,   43,   41,   40,
-       39,   32,   31,   70,   30,   30,    7,   70,   70,   70,
-
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70
-    } ;
-
-static yyconst flex_int16_t yy_chk[128] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        3,    3,    4,    4,   17,   18,   68,   19,   67,   66,
-       65,   64,   63,   61,   17,   18,    3,   19,    4,   71,
-       71,   71,   72,   72,   72,   73,   73,   74,   60,   74,
-       75,   59,   75,   58,   57,   56,   54,   53,   52,   51,
-       50,   49,   48,   47,   46,   42,   41,   40,   39,   38,
-       37,   36,   35,   34,   33,   32,   31,   25,   22,   21,
-       20,   14,    9,    7,    6,    5,   70,   70,   70,   70,
-
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70
-    } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int Error_flex_debug;
-int Error_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-static int yy_more_flag = 0;
-static int yy_more_len = 0;
-#define yymore() ((yy_more_flag) = 1)
-#define YY_MORE_ADJ (yy_more_len)
-#define YY_RESTORE_YY_MORE_OFFSET
-char *Errortext;
-#line 1 "Error.lex"
-/*
- -*- mode: c++; c-basic-offset:4 -*-
-
- This file is part of libdap, A C++ implementation of the OPeNDAP Data
- Access Protocol.
-
- Copyright (c) 2002,2003 OPeNDAP, Inc.
- Author: James Gallagher <jgallagher at opendap.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- 
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
-
- (c) COPYRIGHT URI/MIT 1994-1996,1998,1999
-*/ 
-/*
-  Scanner for the Error object. It recognizes the five keywords in the
-  persistent representation of the Error object plus some syntactic sugar
-  (`=', `{', ...). The object's persistent representation uses a keyword =
-  value notation, where the values are quoted strings or integers.
-
-  The scanner is not reentrant, but can share name spaces with other
-  scanners. It must be processed by GNU's flex scanner generator.
-*/
-#line 41 "Error.lex"
-
-#include "config_dap.h"
-
-static char rcsid[] not_used = {"$Id$"};
-
-#include <cstdlib>
-#include <cassert>
-#include <cstring>
-
-#include <string>
-
-#include "parser.h"
-#include "Error.tab.hh"
-
-using namespace libdap;
-
-#ifndef YY_PROTO
-#define YY_PROTO(proto) proto
-#endif
-
-//#define YY_NO_UNPUT
-#define YY_DECL int Errorlex YY_PROTO(( void ))
-
-#define YY_FATAL_ERROR(msg) {\
-    throw(Error(string("Error scanning the error response: ") + string(msg))); \
-    yy_fatal_error(msg); /* see das.lex */ \
-}
-
-int error_line_num = 1;
-static int start_line;		/* used in quote and comment error handlers */
-
-void store_integer();
-void store_string();
-
-#define YY_NO_INPUT 1
-
-
-#line 598 "lex.Error.cc"
-
-#define INITIAL 0
-#define quote 1
-#define comment 2
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int Errorlex_destroy (void );
-
-int Errorget_debug (void );
-
-void Errorset_debug (int debug_flag  );
-
-YY_EXTRA_TYPE Errorget_extra (void );
-
-void Errorset_extra (YY_EXTRA_TYPE user_defined  );
-
-FILE *Errorget_in (void );
-
-void Errorset_in  (FILE * in_str  );
-
-FILE *Errorget_out (void );
-
-void Errorset_out  (FILE * out_str  );
-
-yy_size_t Errorget_leng (void );
-
-char *Errorget_text (void );
-
-int Errorget_lineno (void );
-
-void Errorset_lineno (int line_number  );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int Errorwrap (void );
-#else
-extern int Errorwrap (void );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO fwrite( Errortext, Errorleng, 1, Errorout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		yy_size_t n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( Errorin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( Errorin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, Errorin))==0 && ferror(Errorin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(Errorin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int Errorlex (void);
-
-#define YY_DECL int Errorlex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after Errortext and Errorleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    
-#line 96 "Error.lex"
-
-
-
-#line 784 "lex.Error.cc"
-
-	if ( !(yy_init) )
-		{
-		(yy_init) = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
-
-		if ( ! Errorin )
-			Errorin = stdin;
-
-		if ( ! Errorout )
-			Errorout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			Errorensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				Error_create_buffer(Errorin,YY_BUF_SIZE );
-		}
-
-		Error_load_buffer_state( );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		(yy_more_len) = 0;
-		if ( (yy_more_flag) )
-			{
-			(yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
-			(yy_more_flag) = 0;
-			}
-		yy_cp = (yy_c_buf_p);
-
-		/* Support of Errortext. */
-		*yy_cp = (yy_hold_char);
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = (yy_start);
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 71 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_base[yy_current_state] != 97 );
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-		if ( yy_act == 0 )
-			{ /* have to back up */
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			yy_act = yy_accept[yy_current_state];
-			}
-
-		YY_DO_BEFORE_ACTION;
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 99 "Error.lex"
-store_string(); return SCAN_ERROR;
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 101 "Error.lex"
-store_string(); return SCAN_CODE;
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 102 "Error.lex"
-store_string(); return SCAN_MSG;
-	YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 104 "Error.lex"
-store_integer(); return SCAN_INT;
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 106 "Error.lex"
-return (int)*Errortext;
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 107 "Error.lex"
-return (int)*Errortext;
-	YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 108 "Error.lex"
-return (int)*Errortext;
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 109 "Error.lex"
-return (int)*Errortext;
-	YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 111 "Error.lex"
-
-	YY_BREAK
-case 10:
-/* rule 10 can match eol */
-YY_RULE_SETUP
-#line 112 "Error.lex"
-++error_line_num;
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-#line 113 "Error.lex"
-yy_init = 1; error_line_num = 1; yyterminate();
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 115 "Error.lex"
-BEGIN(comment);
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 116 "Error.lex"
-
-	YY_BREAK
-case 13:
-/* rule 13 can match eol */
-YY_RULE_SETUP
-#line 117 "Error.lex"
-++error_line_num; BEGIN(INITIAL);
-	YY_BREAK
-case YY_STATE_EOF(comment):
-#line 118 "Error.lex"
-yy_init = 1; error_line_num = 1; yyterminate();
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 120 "Error.lex"
-BEGIN(quote); start_line = error_line_num; yymore();
-	YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 121 "Error.lex"
-yymore();
-	YY_BREAK
-case 16:
-/* rule 16 can match eol */
-YY_RULE_SETUP
-#line 122 "Error.lex"
-yymore(); ++error_line_num;
-	YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 123 "Error.lex"
-yymore();
-	YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 124 "Error.lex"
-{ 
-    			  BEGIN(INITIAL); 
-			  store_string();
-			  return SCAN_STR;
-                        }
-	YY_BREAK
-case YY_STATE_EOF(quote):
-#line 129 "Error.lex"
-{
-                          char msg[256];
-			  snprintf(msg, 255,
-				  "Unterminated quote (starts on line %d)\n",
-				  start_line);
-			  YY_FATAL_ERROR(msg);
-                        }
-	YY_BREAK
-case 19:
-/* rule 19 can match eol */
-YY_RULE_SETUP
-#line 137 "Error.lex"
-{
-                          if (Errortext) {	/* suppress msgs about `' chars */
-                            fprintf(stderr, "Character `%c' is not", *Errortext);
-                            fprintf(stderr, " allowed (except within");
-			    fprintf(stderr, " quotes) and has been ignored\n");
-			  }
-			}
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 144 "Error.lex"
-ECHO;
-	YY_BREAK
-#line 1005 "lex.Error.cc"
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed Errorin at a new source and called
-			 * Errorlex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = Errorin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state(  );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = (yy_c_buf_p);
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer(  ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				(yy_did_buffer_switch_on_eof) = 0;
-
-				if ( Errorwrap( ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * Errortext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of Errorlex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-	else
-		{
-			yy_size_t num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				yy_size_t new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					Errorrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	if ( (yy_n_chars) == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			Errorrestart(Errorin  );
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Errorrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (void)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
-
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 71 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 71 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 70);
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
-
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
-
-		else
-			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
-
-			switch ( yy_get_next_buffer(  ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					Errorrestart(Errorin );
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( Errorwrap( ) )
-						return 0;
-
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput();
-#else
-					return input();
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve Errortext */
-	(yy_hold_char) = *++(yy_c_buf_p);
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void Errorrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        Errorensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            Error_create_buffer(Errorin,YY_BUF_SIZE );
-	}
-
-	Error_init_buffer(YY_CURRENT_BUFFER,input_file );
-	Error_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void Error_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		Errorpop_buffer_state();
-	 *		Errorpush_buffer_state(new_buffer);
-     */
-	Errorensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	Error_load_buffer_state( );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (Errorwrap()) processing, but the only time this flag
-	 * is looked at is after Errorwrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void Error_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	Errorin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE Error_create_buffer  (FILE * file, int  size )
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) Erroralloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in Error_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) Erroralloc(b->yy_buf_size + 2  );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in Error_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	Error_init_buffer(b,file );
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with Error_create_buffer()
- * 
- */
-    void Error_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		Errorfree((void *) b->yy_ch_buf  );
-
-	Errorfree((void *) b  );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-    
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a Errorrestart() or at EOF.
- */
-    static void Error_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-	int oerrno = errno;
-    
-	Error_flush_buffer(b );
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then Error_init_buffer was _probably_
-     * called from Errorrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void Error_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		Error_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void Errorpush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	Errorensure_buffer_stack();
-
-	/* This block is copied from Error_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from Error_switch_to_buffer. */
-	Error_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void Errorpop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	Error_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		Error_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void Errorensure_buffer_stack (void)
-{
-	yy_size_t num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)Erroralloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in Errorensure_buffer_stack()" );
-								  
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)Errorrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in Errorensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE Error_scan_buffer  (char * base, yy_size_t  size )
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) Erroralloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in Error_scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	Error_switch_to_buffer(b  );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to Errorlex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       Error_scan_bytes() instead.
- */
-YY_BUFFER_STATE Error_scan_string (yyconst char * yystr )
-{
-    
-	return Error_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to Errorlex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE Error_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n, i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) Erroralloc(n  );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in Error_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = Error_scan_buffer(buf,n );
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in Error_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up Errortext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		Errortext[Errorleng] = (yy_hold_char); \
-		(yy_c_buf_p) = Errortext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		Errorleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- * 
- */
-int Errorget_lineno  (void)
-{
-        
-    return Errorlineno;
-}
-
-/** Get the input stream.
- * 
- */
-FILE *Errorget_in  (void)
-{
-        return Errorin;
-}
-
-/** Get the output stream.
- * 
- */
-FILE *Errorget_out  (void)
-{
-        return Errorout;
-}
-
-/** Get the length of the current token.
- * 
- */
-yy_size_t Errorget_leng  (void)
-{
-        return Errorleng;
-}
-
-/** Get the current token.
- * 
- */
-
-char *Errorget_text  (void)
-{
-        return Errortext;
-}
-
-/** Set the current line number.
- * @param line_number
- * 
- */
-void Errorset_lineno (int  line_number )
-{
-    
-    Errorlineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see Error_switch_to_buffer
- */
-void Errorset_in (FILE *  in_str )
-{
-        Errorin = in_str ;
-}
-
-void Errorset_out (FILE *  out_str )
-{
-        Errorout = out_str ;
-}
-
-int Errorget_debug  (void)
-{
-        return Error_flex_debug;
-}
-
-void Errorset_debug (int  bdebug )
-{
-        Error_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from Errorlex_destroy(), so don't allocate here.
-     */
-
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    Errorin = stdin;
-    Errorout = stdout;
-#else
-    Errorin = (FILE *) 0;
-    Errorout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * Errorlex_init()
-     */
-    return 0;
-}
-
-/* Errorlex_destroy is for both reentrant and non-reentrant scanners. */
-int Errorlex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		Error_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		Errorpop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	Errorfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * Errorlex() is called, initialization will occur. */
-    yy_init_globals( );
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *Erroralloc (yy_size_t  size )
-{
-	return (void *) malloc( size );
-}
-
-void *Errorrealloc  (void * ptr, yy_size_t  size )
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void Errorfree (void * ptr )
-{
-	free( (char *) ptr );	/* see Errorrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 144 "Error.lex"
-
-
-
-// These three glue routines enable DDS to reclaim the memory used to parse a
-// DDS off the wire. They are here because this file can see the YY_*
-// symbols; the file DDS.cc cannot.
-
-void *
-Error_buffer(FILE *fp)
-{
-    return (void *)Error_create_buffer(fp, YY_BUF_SIZE);
-}
-
-void
-Error_switch_to_buffer(void *buf)
-{
-    Error_switch_to_buffer((YY_BUFFER_STATE)buf);
-}
-
-void
-Error_delete_buffer(void *buf)
-{
-    Error_delete_buffer((YY_BUFFER_STATE)buf);
-}
-
-void
-store_integer()
-{
-    Errorlval.integer = atoi(Errortext);
-}
-
-void
-store_string()
-{
-    Errorlval.string = Errortext;
-}
-
-
diff --git a/lex.ce_expr.cc b/lex.ce_expr.cc
deleted file mode 100644
index f4e2fad..0000000
--- a/lex.ce_expr.cc
+++ /dev/null
@@ -1,2089 +0,0 @@
-#line 2 "lex.ce_expr.cc"
-
-#line 4 "lex.ce_expr.cc"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define yy_create_buffer ce_expr_create_buffer
-#define yy_delete_buffer ce_expr_delete_buffer
-#define yy_flex_debug ce_expr_flex_debug
-#define yy_init_buffer ce_expr_init_buffer
-#define yy_flush_buffer ce_expr_flush_buffer
-#define yy_load_buffer_state ce_expr_load_buffer_state
-#define yy_switch_to_buffer ce_expr_switch_to_buffer
-#define yyin ce_exprin
-#define yyleng ce_exprleng
-#define yylex ce_exprlex
-#define yylineno ce_exprlineno
-#define yyout ce_exprout
-#define yyrestart ce_exprrestart
-#define yytext ce_exprtext
-#define yywrap ce_exprwrap
-#define yyalloc ce_expralloc
-#define yyrealloc ce_exprrealloc
-#define yyfree ce_exprfree
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE ce_exprrestart(ce_exprin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern yy_size_t ce_exprleng;
-
-extern FILE *ce_exprin, *ce_exprout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up ce_exprtext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
-		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up ce_exprtext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	yy_size_t yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via ce_exprrestart()), so that the user can continue scanning by
-	 * just pointing ce_exprin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when ce_exprtext is formed. */
-static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t ce_exprleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
-static int yy_start = 0;	/* start state number */
-
-/* Flag which is used to allow ce_exprwrap()'s to do buffer switches
- * instead of setting up a fresh ce_exprin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void ce_exprrestart (FILE *input_file  );
-void ce_expr_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE ce_expr_create_buffer (FILE *file,int size  );
-void ce_expr_delete_buffer (YY_BUFFER_STATE b  );
-void ce_expr_flush_buffer (YY_BUFFER_STATE b  );
-void ce_exprpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void ce_exprpop_buffer_state (void );
-
-static void ce_exprensure_buffer_stack (void );
-static void ce_expr_load_buffer_state (void );
-static void ce_expr_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER ce_expr_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE ce_expr_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE ce_expr_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE ce_expr_scan_bytes (yyconst char *bytes,yy_size_t len  );
-
-void *ce_expralloc (yy_size_t  );
-void *ce_exprrealloc (void *,yy_size_t  );
-void ce_exprfree (void *  );
-
-#define yy_new_buffer ce_expr_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        ce_exprensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            ce_expr_create_buffer(ce_exprin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        ce_exprensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            ce_expr_create_buffer(ce_exprin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define ce_exprwrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-FILE *ce_exprin = (FILE *) 0, *ce_exprout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int ce_exprlineno;
-
-int ce_exprlineno = 1;
-
-extern char *ce_exprtext;
-#define yytext_ptr ce_exprtext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up ce_exprtext.
- */
-#define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	(yytext_ptr) -= (yy_more_len); \
-	ce_exprleng = (yy_size_t) (yy_cp - (yytext_ptr)); \
-	(yy_hold_char) = *yy_cp; \
-	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 32
-#define YY_END_OF_BUFFER 33
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[66] =
-    {   0,
-        0,    0,   28,   28,   33,   31,   26,   31,   27,   31,
-       10,    5,    6,    7,   18,    4,    3,   15,   11,   13,
-        1,    2,    8,    9,   32,   28,   30,   32,   26,   12,
-        0,    0,    0,    0,   10,   16,   17,   14,   28,   29,
-        0,    0,    0,    0,    0,    0,    0,    0,   19,    0,
-        0,    0,    0,    0,   20,   22,    0,    0,    0,    0,
-       21,   23,   24,   25,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    4,    5,    6,    7,    8,    9,    1,   10,
-       11,   12,    8,   13,    8,    8,    8,    8,   14,   15,
-       16,   17,    8,   18,    8,    8,    8,   19,    1,   20,
-       21,   22,    1,    1,    8,   23,    8,    8,    8,   24,
-        8,    8,   25,    8,    8,    8,    8,    8,    8,    8,
-        8,    8,    8,    8,   26,    8,    8,    8,    8,    8,
-       27,   28,   29,    1,    8,    1,   30,    8,    8,    8,
-
-       31,    8,    8,    8,    8,    8,    8,   32,    8,   33,
-       34,    8,    8,    8,    8,   35,    8,    8,    8,    8,
-       36,    8,   37,    1,   38,   39,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[40] =
-    {   0,
-        1,    1,    2,    1,    3,    4,    1,    4,    1,    1,
-        1,    1,    1,    4,    4,    4,    4,    4,    1,    1,
-        1,    1,    4,    4,    4,    4,    1,    5,    1,    4,
-        4,    4,    4,    4,    4,    4,    1,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[70] =
-    {   0,
-        0,    0,   35,   36,   94,   95,   40,   72,   95,   21,
-        0,   95,   95,   95,   95,   95,   95,   71,   52,   69,
-       95,   95,   95,   95,   95,    0,   95,    0,   46,   95,
-       53,   56,   54,   61,    0,   95,   95,   95,    0,   95,
-       50,   50,   48,   49,   50,   47,   36,   39,   95,   27,
-       43,   45,   37,   38,   95,   95,   41,   43,   42,   38,
-       95,   95,   95,   95,   95,   64,   66,   71,   75
-    } ;
-
-static yyconst flex_int16_t yy_def[70] =
-    {   0,
-       65,    1,   66,   66,   65,   65,   65,   65,   65,   65,
-       67,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,   65,   68,   65,   69,   65,   65,
-       65,   65,   65,   65,   67,   65,   65,   65,   68,   65,
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,    0,   65,   65,   65,   65
-    } ;
-
-static yyconst flex_int16_t yy_nxt[135] =
-    {   0,
-        6,    7,    7,    8,    9,    6,   10,   11,   12,   13,
-       14,   15,   16,   11,   11,   11,   11,   11,   17,   18,
-       19,   20,   11,   11,   11,   11,   21,   11,   22,   11,
-       11,   11,   11,   11,   11,   11,   23,   24,   25,   27,
-       27,   29,   29,   31,   32,   33,   34,   29,   29,   51,
-       57,   52,   58,   59,   64,   60,   63,   62,   61,   56,
-       55,   54,   28,   28,   26,   26,   26,   26,   26,   35,
-       35,   39,   39,   53,   39,   40,   50,   40,   40,   40,
-       49,   48,   47,   46,   45,   44,   43,   42,   41,   38,
-       37,   36,   30,   65,    5,   65,   65,   65,   65,   65,
-
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65
-    } ;
-
-static yyconst flex_int16_t yy_chk[135] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
-        4,    7,    7,   10,   10,   10,   10,   29,   29,   47,
-       53,   47,   53,   54,   60,   54,   59,   58,   57,   52,
-       51,   50,    3,    4,   66,   66,   66,   66,   66,   67,
-       67,   68,   68,   48,   68,   69,   46,   69,   69,   69,
-       45,   44,   43,   42,   41,   34,   33,   32,   31,   20,
-       19,   18,    8,    5,   65,   65,   65,   65,   65,   65,
-
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   65
-    } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int ce_expr_flex_debug;
-int ce_expr_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-static int yy_more_flag = 0;
-static int yy_more_len = 0;
-#define yymore() ((yy_more_flag) = 1)
-#define YY_MORE_ADJ (yy_more_len)
-#define YY_RESTORE_YY_MORE_OFFSET
-char *ce_exprtext;
-#line 1 "ce_expr.lex"
-/*
- -*- mode: c++; c-basic-offset:4 -*-
-
- This file is part of libdap, A C++ implementation of the OPeNDAP Data
- Access Protocol.
-
- Copyright (c) 2002,2003 OPeNDAP, Inc.
- Author: James Gallagher <jgallagher at opendap.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- 
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
-
- (c) COPYRIGHT URI/MIT 1994-1999
-*/ 
-/*
-  Scanner for constraint expressions. The scanner returns tokens for each of
-  the relational and selection operators. It requires GNU flex version 2.5.2
-  or newer.
-
-  The scanner is not reentrant, but can share a name space with other
-  scanners. 
-
-   Note:
-   1) The `defines' file expr.tab.h is built using `bison -d'.
-   2) Define YY_DECL such that the scanner is called `exprlex'.
-   3) When bison builds the expr.tab.h file, it uses `expr' instead of `yy'
-   for variable name prefixes (e.g., yylval --> exprlval).
-
-  jhrg 9/5/95
-*/
-#line 48 "ce_expr.lex"
-
-#include "config.h"
-
-#include <cstdio>
-#include <string>
-#include <cstring>
-
-#ifndef YY_PROTO
-#define YY_PROTO(proto) proto
-#endif
-
-#define YY_DECL int ce_exprlex YY_PROTO(( void ))
-#define YY_FATAL_ERROR(msg) {\
-    throw(Error(string("Error scanning constraint expression text: ") + string(msg))); \
-    yy_fatal_error(msg); /* see das.lex */ \
-}
-
-#include "Error.h"
-#include "parser.h"
-#include "expr.h"
-#include "RValue.h"
-#include "ce_expr.tab.hh"
-#include "escaping.h"
-
-using namespace libdap ;
-
-static void store_id();
-static void store_str();
-static void store_op(int op);
-
-#define YY_NO_INPUT 1
-
-/* In the DAS and DDS parsers I removed the INT and FLOAT lexemes. However,
-   not having them here complicates parsing since you must check to see if a
-   word is a number (like 2.3) or a variable called `2.3.' I'm assuming that
-   people will always put some characters in variable names (e.g., they'll
-   use `2300.7%20MHz' and not just `2300.7'). If that turns out to be a bad
-   assumption, the we'll have to put more code in the parser to figure out
-   what exactly each word is; is it a constant or a variable name. Time will
-   tell. 10/31/2001 jhrg */
-/* See das.lex for comments about the characters allowed in a WORD.
-   10/31/2001 jhrg 
-
-   I've added '*' to the set of characters in a WORD for both the DDS and DAS
-   scanners, but not here because it'll conflict with the url dereference
-   operator. 6/10/2002 jhrg
-*/
-#line 616 "lex.ce_expr.cc"
-
-#define INITIAL 0
-#define quote 1
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int ce_exprlex_destroy (void );
-
-int ce_exprget_debug (void );
-
-void ce_exprset_debug (int debug_flag  );
-
-YY_EXTRA_TYPE ce_exprget_extra (void );
-
-void ce_exprset_extra (YY_EXTRA_TYPE user_defined  );
-
-FILE *ce_exprget_in (void );
-
-void ce_exprset_in  (FILE * in_str  );
-
-FILE *ce_exprget_out (void );
-
-void ce_exprset_out  (FILE * out_str  );
-
-yy_size_t ce_exprget_leng (void );
-
-char *ce_exprget_text (void );
-
-int ce_exprget_lineno (void );
-
-void ce_exprset_lineno (int line_number  );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int ce_exprwrap (void );
-#else
-extern int ce_exprwrap (void );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO fwrite( ce_exprtext, ce_exprleng, 1, ce_exprout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		yy_size_t n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( ce_exprin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( ce_exprin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, ce_exprin))==0 && ferror(ce_exprin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(ce_exprin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int ce_exprlex (void);
-
-#define YY_DECL int ce_exprlex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after ce_exprtext and ce_exprleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    
-#line 130 "ce_expr.lex"
-
-
-#line 800 "lex.ce_expr.cc"
-
-	if ( !(yy_init) )
-		{
-		(yy_init) = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
-
-		if ( ! ce_exprin )
-			ce_exprin = stdin;
-
-		if ( ! ce_exprout )
-			ce_exprout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			ce_exprensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				ce_expr_create_buffer(ce_exprin,YY_BUF_SIZE );
-		}
-
-		ce_expr_load_buffer_state( );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		(yy_more_len) = 0;
-		if ( (yy_more_flag) )
-			{
-			(yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
-			(yy_more_flag) = 0;
-			}
-		yy_cp = (yy_c_buf_p);
-
-		/* Support of ce_exprtext. */
-		*yy_cp = (yy_hold_char);
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = (yy_start);
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 66 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_base[yy_current_state] != 95 );
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-		if ( yy_act == 0 )
-			{ /* have to back up */
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			yy_act = yy_accept[yy_current_state];
-			}
-
-		YY_DO_BEFORE_ACTION;
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 132 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 133 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 134 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 135 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 136 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 137 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 138 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 139 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 140 "ce_expr.lex"
-return (int)*ce_exprtext;
-	YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 142 "ce_expr.lex"
-store_id(); return SCAN_WORD;
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 144 "ce_expr.lex"
-store_op(SCAN_EQUAL); return SCAN_EQUAL;
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 145 "ce_expr.lex"
-store_op(SCAN_NOT_EQUAL); return SCAN_NOT_EQUAL;
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 146 "ce_expr.lex"
-store_op(SCAN_GREATER); return SCAN_GREATER;
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 147 "ce_expr.lex"
-store_op(SCAN_GREATER_EQL); return SCAN_GREATER_EQL;
-	YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 148 "ce_expr.lex"
-store_op(SCAN_LESS); return SCAN_LESS;
-	YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 149 "ce_expr.lex"
-store_op(SCAN_LESS_EQL); return SCAN_LESS_EQL;
-	YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 150 "ce_expr.lex"
-store_op(SCAN_REGEXP); return SCAN_REGEXP;
-	YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 152 "ce_expr.lex"
-store_op(SCAN_STAR); return SCAN_STAR;
-	YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 154 "ce_expr.lex"
-return SCAN_HASH_BYTE;
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 155 "ce_expr.lex"
-return SCAN_HASH_INT16;
-	YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 156 "ce_expr.lex"
-return SCAN_HASH_UINT16;
-	YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 157 "ce_expr.lex"
-return SCAN_HASH_INT32;
-	YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 158 "ce_expr.lex"
-return SCAN_HASH_UINT32;
-	YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 159 "ce_expr.lex"
-return SCAN_HASH_FLOAT32;
-	YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 160 "ce_expr.lex"
-return SCAN_HASH_FLOAT64;
-	YY_BREAK
-case 26:
-/* rule 26 can match eol */
-YY_RULE_SETUP
-#line 162 "ce_expr.lex"
-
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-#line 163 "ce_expr.lex"
-yy_init = 1; yyterminate();
-	YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 165 "ce_expr.lex"
-BEGIN(quote); yymore();
-	YY_BREAK
-case 28:
-/* rule 28 can match eol */
-YY_RULE_SETUP
-#line 167 "ce_expr.lex"
-yymore(); /*"*/
-	YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 169 "ce_expr.lex"
-yymore();
-	YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 171 "ce_expr.lex"
-{ 
-    		  BEGIN(INITIAL); 
-              store_str();
-              return SCAN_STR;
-            }
-	YY_BREAK
-case YY_STATE_EOF(quote):
-#line 177 "ce_expr.lex"
-{
-                  BEGIN(INITIAL);   /* resetting the state is needed for reentrant parsers */
-                  char msg[256];
-                  sprintf(msg, "Unterminated quote\n");
-                  YY_FATAL_ERROR(msg);
-                }
-	YY_BREAK
-case 31:
-/* rule 31 can match eol */
-YY_RULE_SETUP
-#line 184 "ce_expr.lex"
-{
-                  if (ce_exprtext) {	/* suppress msgs about `' chars */
-                    fprintf(stderr, "Character `%c' is not", *ce_exprtext);
-                    fprintf(stderr, " allowed and has been ignored\n");
-                  }
-		        }
-	YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 190 "ce_expr.lex"
-ECHO;
-	YY_BREAK
-#line 1074 "lex.ce_expr.cc"
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed ce_exprin at a new source and called
-			 * ce_exprlex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = ce_exprin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state(  );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = (yy_c_buf_p);
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer(  ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				(yy_did_buffer_switch_on_eof) = 0;
-
-				if ( ce_exprwrap( ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * ce_exprtext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of ce_exprlex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-	else
-		{
-			yy_size_t num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				yy_size_t new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					ce_exprrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	if ( (yy_n_chars) == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			ce_exprrestart(ce_exprin  );
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ce_exprrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (void)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
-
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 66 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 66 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 65);
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
-
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
-
-		else
-			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
-
-			switch ( yy_get_next_buffer(  ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					ce_exprrestart(ce_exprin );
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( ce_exprwrap( ) )
-						return 0;
-
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput();
-#else
-					return input();
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve ce_exprtext */
-	(yy_hold_char) = *++(yy_c_buf_p);
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void ce_exprrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        ce_exprensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            ce_expr_create_buffer(ce_exprin,YY_BUF_SIZE );
-	}
-
-	ce_expr_init_buffer(YY_CURRENT_BUFFER,input_file );
-	ce_expr_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void ce_expr_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		ce_exprpop_buffer_state();
-	 *		ce_exprpush_buffer_state(new_buffer);
-     */
-	ce_exprensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	ce_expr_load_buffer_state( );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (ce_exprwrap()) processing, but the only time this flag
-	 * is looked at is after ce_exprwrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void ce_expr_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	ce_exprin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE ce_expr_create_buffer  (FILE * file, int  size )
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) ce_expralloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in ce_expr_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) ce_expralloc(b->yy_buf_size + 2  );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in ce_expr_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	ce_expr_init_buffer(b,file );
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with ce_expr_create_buffer()
- * 
- */
-    void ce_expr_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		ce_exprfree((void *) b->yy_ch_buf  );
-
-	ce_exprfree((void *) b  );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-    
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a ce_exprrestart() or at EOF.
- */
-    static void ce_expr_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-	int oerrno = errno;
-    
-	ce_expr_flush_buffer(b );
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then ce_expr_init_buffer was _probably_
-     * called from ce_exprrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void ce_expr_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		ce_expr_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void ce_exprpush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	ce_exprensure_buffer_stack();
-
-	/* This block is copied from ce_expr_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from ce_expr_switch_to_buffer. */
-	ce_expr_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void ce_exprpop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	ce_expr_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		ce_expr_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void ce_exprensure_buffer_stack (void)
-{
-	yy_size_t num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)ce_expralloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in ce_exprensure_buffer_stack()" );
-								  
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)ce_exprrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in ce_exprensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE ce_expr_scan_buffer  (char * base, yy_size_t  size )
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) ce_expralloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in ce_expr_scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	ce_expr_switch_to_buffer(b  );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to ce_exprlex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       ce_expr_scan_bytes() instead.
- */
-YY_BUFFER_STATE ce_expr_scan_string (yyconst char * yystr )
-{
-    
-	return ce_expr_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to ce_exprlex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE ce_expr_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n, i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) ce_expralloc(n  );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in ce_expr_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = ce_expr_scan_buffer(buf,n );
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in ce_expr_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up ce_exprtext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		ce_exprtext[ce_exprleng] = (yy_hold_char); \
-		(yy_c_buf_p) = ce_exprtext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		ce_exprleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- * 
- */
-int ce_exprget_lineno  (void)
-{
-        
-    return ce_exprlineno;
-}
-
-/** Get the input stream.
- * 
- */
-FILE *ce_exprget_in  (void)
-{
-        return ce_exprin;
-}
-
-/** Get the output stream.
- * 
- */
-FILE *ce_exprget_out  (void)
-{
-        return ce_exprout;
-}
-
-/** Get the length of the current token.
- * 
- */
-yy_size_t ce_exprget_leng  (void)
-{
-        return ce_exprleng;
-}
-
-/** Get the current token.
- * 
- */
-
-char *ce_exprget_text  (void)
-{
-        return ce_exprtext;
-}
-
-/** Set the current line number.
- * @param line_number
- * 
- */
-void ce_exprset_lineno (int  line_number )
-{
-    
-    ce_exprlineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see ce_expr_switch_to_buffer
- */
-void ce_exprset_in (FILE *  in_str )
-{
-        ce_exprin = in_str ;
-}
-
-void ce_exprset_out (FILE *  out_str )
-{
-        ce_exprout = out_str ;
-}
-
-int ce_exprget_debug  (void)
-{
-        return ce_expr_flex_debug;
-}
-
-void ce_exprset_debug (int  bdebug )
-{
-        ce_expr_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from ce_exprlex_destroy(), so don't allocate here.
-     */
-
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    ce_exprin = stdin;
-    ce_exprout = stdout;
-#else
-    ce_exprin = (FILE *) 0;
-    ce_exprout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * ce_exprlex_init()
-     */
-    return 0;
-}
-
-/* ce_exprlex_destroy is for both reentrant and non-reentrant scanners. */
-int ce_exprlex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		ce_expr_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		ce_exprpop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	ce_exprfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * ce_exprlex() is called, initialization will occur. */
-    yy_init_globals( );
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *ce_expralloc (yy_size_t  size )
-{
-	return (void *) malloc( size );
-}
-
-void *ce_exprrealloc  (void * ptr, yy_size_t  size )
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void ce_exprfree (void * ptr )
-{
-	free( (char *) ptr );	/* see ce_exprrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 190 "ce_expr.lex"
-
-
-
-// Three glue routines for string scanning. These are not declared in the
-// header expr.tab.h nor is YY_BUFFER_STATE. Including these here allows them
-// to see the type definitions in lex.expr.c (where YY_BUFFER_STATE is
-// defined) and allows callers to declare them (since callers outside of this
-// file cannot declare the YY_BUFFER_STATE variable). Note that I changed the
-// name of the expr_scan_string function to expr_string because C++ cannot
-// distinguish by return type. 1/12/99 jhrg
-
-void *
-ce_expr_string(const char *str)
-{
-    return (void *)ce_expr_scan_string(str);
-}
-
-void
-ce_expr_switch_to_buffer(void *buf)
-{
-    ce_expr_switch_to_buffer((YY_BUFFER_STATE)buf);
-}
-
-void
-ce_expr_delete_buffer(void *buf)
-{
-    ce_expr_delete_buffer((YY_BUFFER_STATE)buf);
-}
-
-static void
-store_id()
-{
-    strncpy(ce_exprlval.id, ce_exprtext, ID_MAX-1);
-    ce_exprlval.id[ID_MAX-1] = '\0';
-}
-
-static void
-store_str()
-{
-    // transform %20 to a space. 7/11/2001 jhrg
-    string *s = new string(ce_exprtext); // move all calls of www2id into the parser. jhrg 7/5/13 www2id(string(ce_exprtext)));
-
-    if (*s->begin() == '\"' && *(s->end()-1) == '\"') {
-	s->erase(s->begin());
-	s->erase(s->end()-1);
-    }
-
-    ce_exprlval.val.type = dods_str_c;
-    ce_exprlval.val.v.s = s;
-}
-
-static void
-store_op(int op)
-{
-    ce_exprlval.op = op;
-}
-
-
diff --git a/lex.das.cc b/lex.das.cc
deleted file mode 100644
index c4259c1..0000000
--- a/lex.das.cc
+++ /dev/null
@@ -1,2171 +0,0 @@
-#line 2 "lex.das.cc"
-
-#line 4 "lex.das.cc"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define yy_create_buffer das_create_buffer
-#define yy_delete_buffer das_delete_buffer
-#define yy_flex_debug das_flex_debug
-#define yy_init_buffer das_init_buffer
-#define yy_flush_buffer das_flush_buffer
-#define yy_load_buffer_state das_load_buffer_state
-#define yy_switch_to_buffer das_switch_to_buffer
-#define yyin dasin
-#define yyleng dasleng
-#define yylex daslex
-#define yylineno daslineno
-#define yyout dasout
-#define yyrestart dasrestart
-#define yytext dastext
-#define yywrap daswrap
-#define yyalloc dasalloc
-#define yyrealloc dasrealloc
-#define yyfree dasfree
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE dasrestart(dasin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern yy_size_t dasleng;
-
-extern FILE *dasin, *dasout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up dastext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
-		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up dastext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	yy_size_t yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via dasrestart()), so that the user can continue scanning by
-	 * just pointing dasin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when dastext is formed. */
-static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t dasleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
-static int yy_start = 0;	/* start state number */
-
-/* Flag which is used to allow daswrap()'s to do buffer switches
- * instead of setting up a fresh dasin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void dasrestart (FILE *input_file  );
-void das_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE das_create_buffer (FILE *file,int size  );
-void das_delete_buffer (YY_BUFFER_STATE b  );
-void das_flush_buffer (YY_BUFFER_STATE b  );
-void daspush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void daspop_buffer_state (void );
-
-static void dasensure_buffer_stack (void );
-static void das_load_buffer_state (void );
-static void das_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER das_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE das_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE das_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE das_scan_bytes (yyconst char *bytes,yy_size_t len  );
-
-void *dasalloc (yy_size_t  );
-void *dasrealloc (void *,yy_size_t  );
-void dasfree (void *  );
-
-#define yy_new_buffer das_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        dasensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            das_create_buffer(dasin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        dasensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            das_create_buffer(dasin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define daswrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-FILE *dasin = (FILE *) 0, *dasout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int daslineno;
-
-int daslineno = 1;
-
-extern char *dastext;
-#define yytext_ptr dastext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up dastext.
- */
-#define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	(yytext_ptr) -= (yy_more_len); \
-	dasleng = (yy_size_t) (yy_cp - (yytext_ptr)); \
-	(yy_hold_char) = *yy_cp; \
-	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 31
-#define YY_END_OF_BUFFER 32
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[188] =
-    {   0,
-        0,    0,   25,   25,   21,   21,    0,    0,   32,   30,
-       18,   19,   24,   20,   13,   13,   17,   16,   13,   13,
-       13,   13,   13,   13,   13,   31,   13,   13,   13,   13,
-       13,   13,   13,   14,   15,   25,   26,   31,   29,   31,
-       21,   22,   31,   18,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   25,   26,    0,   27,   28,   21,   23,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   11,   13,   13,   13,   13,
-
-       13,   13,   13,   13,   13,   13,   13,   13,   13,    3,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,    2,   13,   13,   13,   13,    4,    6,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   10,    5,    7,   13,   13,   13,   13,   13,
-       13,    8,    9,   13,   13,   13,   13,   13,   13,   13,
-       12,   13,   13,   13,   13,    1,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    5,    6,    1,    7,    1,    1,    7,
-        7,    8,    7,    9,    7,    7,    7,    7,   10,   11,
-       12,   13,    7,   14,    7,    7,    7,    7,   15,    1,
-        1,    1,    1,    1,   16,   17,    7,    7,   18,   19,
-       20,   21,   22,    7,    7,   23,   24,   25,   26,    7,
-        7,   27,   28,   29,   30,    7,    7,   31,   32,    7,
-       33,   34,   33,    1,    7,    1,   35,   36,    7,    7,
-
-       37,   38,   39,   40,   41,    7,    7,   42,   43,   44,
-       45,    7,    7,   46,   47,   48,   49,    7,    7,   50,
-       51,    7,   52,    1,   53,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[54] =
-    {   0,
-        1,    1,    2,    3,    4,    5,    5,    5,    1,    5,
-        5,    5,    5,    5,    1,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    1,    6,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[195] =
-    {   0,
-        0,    0,   51,   54,   57,   59,    0,    0,  271,  272,
-       62,  272,  272,  272,    0,    0,  272,  272,   42,   35,
-       45,   45,   43,   44,   52,  272,   27,  219,  227,  224,
-      219,  218,   35,  272,  272,   74,  272,  262,  272,    0,
-        0,  272,  261,   78,    0,  241,  233,  220,  212,  230,
-      210,  231,  211,  226,  206,  232,  212,  224,  204,   58,
-      226,  204,  205,  205,  197,  196,  198,  194,  201,  194,
-      195,  196,   91,  272,  234,  272,  272,    0,  272,  220,
-      208,  199,  187,  214,  194,  214,  194,   87,   91,  210,
-      190,  204,  184,  195,  175,    0,  174,  186,  174,  182,
-
-      183,   94,  180,  175,  167,  186,  191,  165,  170,    0,
-      181,  161,  194,  196,  192,  194,  177,  157,  177,  157,
-       95,   98,   99,  153,  158,  150,  183,  185,  149,  150,
-      102,    0,  176,  156,  101,  104,    0,    0,  160,  159,
-      169,  149,  173,  175,  171,  173,  169,  171,  145,  105,
-      130,  140,  164,  166,  143,  123,  155,  150,  127,  124,
-      112,   96,    0,    0,    0,   86,  123,  120,   89,  102,
-       82,    0,    0,  106,  105,   85,   78,   83,  106,   86,
-        0,   85,   93,   53,   49,    0,  272,  139,  145,  151,
-      153,  159,  164,  170
-
-    } ;
-
-static yyconst flex_int16_t yy_def[195] =
-    {   0,
-      187,    1,  188,  188,  189,  189,  190,  190,  187,  187,
-      187,  187,  187,  187,  191,  191,  187,  187,  191,  191,
-      191,  191,  191,  191,  191,  187,  191,  191,  191,  191,
-      191,  191,  191,  187,  187,  192,  187,  187,  187,  193,
-      194,  187,  187,  187,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  192,  187,  187,  187,  187,  194,  187,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
-      191,  191,  191,  191,  191,  191,    0,  187,  187,  187,
-      187,  187,  187,  187
-
-    } ;
-
-static yyconst flex_int16_t yy_nxt[326] =
-    {   0,
-       10,   11,   12,   11,   13,   14,   15,   16,   17,   15,
-       15,   15,   15,   15,   18,   19,   20,   15,   21,   15,
-       15,   22,   15,   15,   15,   23,   15,   24,   15,   25,
-       15,   15,   26,   15,   27,   28,   15,   29,   15,   15,
-       30,   15,   15,   15,   31,   15,   32,   15,   33,   15,
-       15,   34,   35,   37,   38,   39,   37,   38,   39,   42,
-       43,   42,   43,   44,   46,   44,   50,   52,   64,   54,
-       47,   56,   58,   60,   65,   71,   74,   75,   61,   44,
-       72,   44,   94,   48,   40,   51,   53,   40,   55,   49,
-       57,   59,   62,   74,   75,  186,  113,   63,  114,  186,
-
-      115,   95,  116,  127,  143,  128,  144,  145,  147,  146,
-      148,  153,  157,  154,  158,  159,  167,  160,  168,  175,
-      186,  185,  184,  183,  181,  182,  181,  181,  181,  180,
-      179,  178,  173,  172,  177,  174,  173,  172,  176,   36,
-       36,   36,   36,   36,   36,   41,   41,   41,   41,   41,
-       41,   26,   26,   26,   26,   26,   26,   45,   45,   73,
-       73,   73,  173,   73,   77,  172,   77,   77,   77,   77,
-       78,  171,  170,   78,   78,   78,  165,  164,  163,  169,
-      166,  165,  164,  165,  164,  165,  164,  163,  163,  162,
-      161,  156,  155,  152,  151,  138,  137,  150,  149,  132,
-
-      142,  141,  140,  139,  138,  137,  138,  137,  136,  135,
-      134,  132,  133,  132,  131,  130,  129,  126,  110,  125,
-      124,  123,  122,  121,  120,  119,  118,  117,  112,  111,
-      110,  110,  109,  108,  107,  106,   76,   96,  105,  104,
-      103,  102,  101,  100,   99,   98,   96,   97,   96,   93,
-       92,   91,   90,   89,   88,   87,   86,   85,   84,   83,
-       82,   81,   80,   79,   76,   70,   69,   68,   67,   66,
-      187,    9,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187
-    } ;
-
-static yyconst flex_int16_t yy_chk[326] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    3,    3,    3,    4,    4,    4,    5,
-        5,    6,    6,   11,   19,   11,   20,   21,   27,   22,
-       19,   23,   24,   25,   27,   33,   36,   36,   25,   44,
-       33,   44,   60,   19,    3,   20,   21,    4,   22,   19,
-       23,   24,   25,   73,   73,  185,   88,   25,   88,  184,
-
-       89,   60,   89,  102,  121,  102,  121,  122,  123,  122,
-      123,  131,  135,  131,  135,  136,  150,  136,  150,  162,
-      183,  182,  180,  179,  178,  177,  176,  175,  174,  171,
-      170,  169,  168,  167,  166,  161,  160,  159,  162,  188,
-      188,  188,  188,  188,  188,  189,  189,  189,  189,  189,
-      189,  190,  190,  190,  190,  190,  190,  191,  191,  192,
-      192,  192,  158,  192,  193,  157,  193,  193,  193,  193,
-      194,  156,  155,  194,  194,  194,  154,  153,  152,  151,
-      149,  148,  147,  146,  145,  144,  143,  142,  141,  140,
-      139,  134,  133,  130,  129,  128,  127,  126,  125,  124,
-
-      120,  119,  118,  117,  116,  115,  114,  113,  112,  111,
-      109,  108,  107,  106,  105,  104,  103,  101,  100,   99,
-       98,   97,   95,   94,   93,   92,   91,   90,   87,   86,
-       85,   84,   83,   82,   81,   80,   75,   72,   71,   70,
-       69,   68,   67,   66,   65,   64,   63,   62,   61,   59,
-       58,   57,   56,   55,   54,   53,   52,   51,   50,   49,
-       48,   47,   46,   43,   38,   32,   31,   30,   29,   28,
-        9,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187
-    } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int das_flex_debug;
-int das_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-static int yy_more_flag = 0;
-static int yy_more_len = 0;
-#define yymore() ((yy_more_flag) = 1)
-#define YY_MORE_ADJ (yy_more_len)
-#define YY_RESTORE_YY_MORE_OFFSET
-char *dastext;
-#line 1 "das.lex"
-/*
- -*- mode: c++; c-basic-offset:4 -*-
-
- This file is part of libdap, A C++ implementation of the OPeNDAP Data
- Access Protocol.
-
- Copyright (c) 2002,2003 OPeNDAP, Inc.
- Author: James Gallagher <jgallagher at opendap.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- 
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
-
- (c) COPYRIGHT URI/MIT 1994-2000
-*/ 
-/*
-   Scanner for the DAS. This file works with gnu's flex scanner generator. It
-   returns either ATTR, ID, VAL, TYPE or one of the single character tokens
-   `{', `}', `;', `,' or `\n' as integers. In the case of an ID or VAL, the
-   scanner stores a pointer to the lexeme in yylval (whose type is char *).
-
-   The scanner discards all comment text.
-
-   The scanner returns quoted strings as VALs. Any characters may appear in a
-   quoted string except backslash (\) and quote("). To include these escape
-   them with a backslash.
-   
-   The scanner is not reentrant, but can share name spaces with other
-   scanners.
-   
-   Note:
-   1) The `defines' file das.tab.h is built using `bison -d'.
-   2) Define YY_DECL such that the scanner is called `daslex'.
-   3) When bison builds the das.tab.h file, it uses `das' instead of `yy' for
-   variable name prefixes (e.g., yylval --> daslval).
-   4) The quote stuff is very complicated because we want backslash (\)
-   escapes to work and because we want line counts to work too. In order to
-   properly scan a quoted string two C functions are used: one to remove the
-   escape characters from escape sequences and one to remove the trailing
-   quote on the end of the string. 
-
-   jhrg 7/12/94 
-
-   NB: We don't remove the \'s or ending quotes any more -- that way the
-   printed das can be re-parsed. 9/28/94. 
-*/
-#line 63 "das.lex"
-#include "config_dap.h"
-
-#include <cstdio>
-
-static char rcsid[] not_used ={"$Id$"};
-
-#ifndef _MSC_VER
-#include <string.h>
-#else
-#include <string>
-#endif
-
-using namespace std;
-
-#include "debug.h"
-#include "parser.h"
-
-using namespace libdap ;
-
-#ifndef YY_PROTO
-#define YY_PROTO(proto) proto
-#endif
-
-/* These defines must precede the das.tab.h include. */
-#define YYSTYPE char *
-#define YY_DECL int daslex YY_PROTO(( void ))
-#define YY_FATAL_ERROR(msg) {\
-    throw(Error(string("Error scanning DAS object text: ") + string(msg))); \
-    yy_fatal_error(msg); /* This will never be run but putting it here removes a warning that the funtion is never used. */ \
-}
-
-#include "das.tab.hh"
-
-int das_line_num = 1;
-static int start_line;		/* used in quote and comment error handlers */
-
-#define YY_NO_INPUT 1
-
-
-
-/* Comment chars (#) are treated specially. Lets hope nobody wants to start
-   A variable name with one... Note that the DAS allows Identifiers to have 
-   parens and colons while the DDS and expr scanners don't. It's too hard to
-   disambiguate functions when IDs have parens in them and adding colons
-   makes parsing the array projections hard. 10/31/2001 jhrg */
-#line 716 "lex.das.cc"
-
-#define INITIAL 0
-#define quote 1
-#define comment 2
-#define xml 3
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int daslex_destroy (void );
-
-int dasget_debug (void );
-
-void dasset_debug (int debug_flag  );
-
-YY_EXTRA_TYPE dasget_extra (void );
-
-void dasset_extra (YY_EXTRA_TYPE user_defined  );
-
-FILE *dasget_in (void );
-
-void dasset_in  (FILE * in_str  );
-
-FILE *dasget_out (void );
-
-void dasset_out  (FILE * out_str  );
-
-yy_size_t dasget_leng (void );
-
-char *dasget_text (void );
-
-int dasget_lineno (void );
-
-void dasset_lineno (int line_number  );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int daswrap (void );
-#else
-extern int daswrap (void );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO fwrite( dastext, dasleng, 1, dasout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		yy_size_t n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( dasin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( dasin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, dasin))==0 && ferror(dasin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(dasin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int daslex (void);
-
-#define YY_DECL int daslex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after dastext and dasleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    
-#line 136 "das.lex"
-
-
-#line 902 "lex.das.cc"
-
-	if ( !(yy_init) )
-		{
-		(yy_init) = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
-
-		if ( ! dasin )
-			dasin = stdin;
-
-		if ( ! dasout )
-			dasout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			dasensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				das_create_buffer(dasin,YY_BUF_SIZE );
-		}
-
-		das_load_buffer_state( );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		(yy_more_len) = 0;
-		if ( (yy_more_flag) )
-			{
-			(yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
-			(yy_more_flag) = 0;
-			}
-		yy_cp = (yy_c_buf_p);
-
-		/* Support of dastext. */
-		*yy_cp = (yy_hold_char);
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = (yy_start);
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 188 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_base[yy_current_state] != 272 );
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-		if ( yy_act == 0 )
-			{ /* have to back up */
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			yy_act = yy_accept[yy_current_state];
-			}
-
-		YY_DO_BEFORE_ACTION;
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 138 "das.lex"
-daslval = dastext; return SCAN_ATTR;
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 140 "das.lex"
-daslval = dastext; return SCAN_ALIAS;
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 141 "das.lex"
-daslval = dastext; return SCAN_BYTE;
-	YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 142 "das.lex"
-daslval = dastext; return SCAN_INT16;
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 143 "das.lex"
-daslval = dastext; return SCAN_UINT16;
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 144 "das.lex"
-daslval = dastext; return SCAN_INT32;
-	YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 145 "das.lex"
-daslval = dastext; return SCAN_UINT32;
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 146 "das.lex"
-daslval = dastext; return SCAN_FLOAT32;
-	YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 147 "das.lex"
-daslval = dastext; return SCAN_FLOAT64;
-	YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 148 "das.lex"
-daslval = dastext; return SCAN_STRING;
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 149 "das.lex"
-daslval = dastext; return SCAN_URL;
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 150 "das.lex"
-daslval = dastext; return SCAN_XML;
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 152 "das.lex"
-{
-			    daslval = dastext; 
-			    DBG(cerr << "WORD: " << dastext << endl); 
-			    return SCAN_WORD;
-			}
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 158 "das.lex"
-return (int)*dastext;
-	YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 159 "das.lex"
-return (int)*dastext;
-	YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 160 "das.lex"
-return (int)*dastext;
-	YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 161 "das.lex"
-return (int)*dastext;
-	YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 163 "das.lex"
-
-	YY_BREAK
-case 19:
-/* rule 19 can match eol */
-YY_RULE_SETUP
-#line 164 "das.lex"
-++das_line_num;
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-#line 165 "das.lex"
-yy_init = 1; das_line_num = 1; yyterminate();
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 167 "das.lex"
-BEGIN(comment);
-	YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 168 "das.lex"
-
-	YY_BREAK
-case 22:
-/* rule 22 can match eol */
-YY_RULE_SETUP
-#line 169 "das.lex"
-++das_line_num; BEGIN(INITIAL);
-	YY_BREAK
-case 23:
-/* rule 23 can match eol */
-YY_RULE_SETUP
-#line 170 "das.lex"
-++das_line_num; BEGIN(INITIAL);
-	YY_BREAK
-case YY_STATE_EOF(comment):
-#line 171 "das.lex"
-yy_init = 1; das_line_num = 1; yyterminate();
-	YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 173 "das.lex"
-BEGIN(quote); start_line = das_line_num; yymore();
-	YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 174 "das.lex"
-yymore();
-	YY_BREAK
-case 26:
-/* rule 26 can match eol */
-YY_RULE_SETUP
-#line 175 "das.lex"
-yymore(); ++das_line_num;
-	YY_BREAK
-case 27:
-/* rule 27 can match eol */
-YY_RULE_SETUP
-#line 176 "das.lex"
-yymore(); ++das_line_num;
-	YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 177 "das.lex"
-yymore();
-	YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 178 "das.lex"
-{ 
-                          BEGIN(INITIAL); 
-
-                          daslval = dastext;
-
-                          return SCAN_WORD;
-                        }
-	YY_BREAK
-case YY_STATE_EOF(quote):
-#line 185 "das.lex"
-{
-                          char msg[256];
-                          sprintf(msg,
-                                  "Unterminated quote (starts on line %d)\n",
-                                  start_line);
-                          YY_FATAL_ERROR(msg);
-                        }
-	YY_BREAK
-case 30:
-/* rule 30 can match eol */
-YY_RULE_SETUP
-#line 193 "das.lex"
-{
-                          if (dastext) {
-                            fprintf(stderr, "Character '%c' (%d) is not",
-                            	    *dastext, *dastext);
-                            fprintf(stderr, " allowed.");
-			  }
-			}
-	YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 200 "das.lex"
-ECHO;
-	YY_BREAK
-#line 1186 "lex.das.cc"
-case YY_STATE_EOF(xml):
-	yyterminate();
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed dasin at a new source and called
-			 * daslex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = dasin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state(  );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = (yy_c_buf_p);
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer(  ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				(yy_did_buffer_switch_on_eof) = 0;
-
-				if ( daswrap( ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * dastext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of daslex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-	else
-		{
-			yy_size_t num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				yy_size_t new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					dasrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	if ( (yy_n_chars) == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			dasrestart(dasin  );
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) dasrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (void)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
-
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 188 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 188 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 187);
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
-
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
-
-		else
-			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
-
-			switch ( yy_get_next_buffer(  ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					dasrestart(dasin );
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( daswrap( ) )
-						return 0;
-
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput();
-#else
-					return input();
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve dastext */
-	(yy_hold_char) = *++(yy_c_buf_p);
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void dasrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        dasensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            das_create_buffer(dasin,YY_BUF_SIZE );
-	}
-
-	das_init_buffer(YY_CURRENT_BUFFER,input_file );
-	das_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void das_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		daspop_buffer_state();
-	 *		daspush_buffer_state(new_buffer);
-     */
-	dasensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	das_load_buffer_state( );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (daswrap()) processing, but the only time this flag
-	 * is looked at is after daswrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void das_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	dasin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE das_create_buffer  (FILE * file, int  size )
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) dasalloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in das_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) dasalloc(b->yy_buf_size + 2  );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in das_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	das_init_buffer(b,file );
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with das_create_buffer()
- * 
- */
-    void das_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		dasfree((void *) b->yy_ch_buf  );
-
-	dasfree((void *) b  );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-    
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a dasrestart() or at EOF.
- */
-    static void das_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-	int oerrno = errno;
-    
-	das_flush_buffer(b );
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then das_init_buffer was _probably_
-     * called from dasrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void das_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		das_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void daspush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	dasensure_buffer_stack();
-
-	/* This block is copied from das_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from das_switch_to_buffer. */
-	das_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void daspop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	das_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		das_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void dasensure_buffer_stack (void)
-{
-	yy_size_t num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)dasalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in dasensure_buffer_stack()" );
-								  
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)dasrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in dasensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE das_scan_buffer  (char * base, yy_size_t  size )
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) dasalloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in das_scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	das_switch_to_buffer(b  );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to daslex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       das_scan_bytes() instead.
- */
-YY_BUFFER_STATE das_scan_string (yyconst char * yystr )
-{
-    
-	return das_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to daslex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE das_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n, i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) dasalloc(n  );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in das_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = das_scan_buffer(buf,n );
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in das_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up dastext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		dastext[dasleng] = (yy_hold_char); \
-		(yy_c_buf_p) = dastext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		dasleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- * 
- */
-int dasget_lineno  (void)
-{
-        
-    return daslineno;
-}
-
-/** Get the input stream.
- * 
- */
-FILE *dasget_in  (void)
-{
-        return dasin;
-}
-
-/** Get the output stream.
- * 
- */
-FILE *dasget_out  (void)
-{
-        return dasout;
-}
-
-/** Get the length of the current token.
- * 
- */
-yy_size_t dasget_leng  (void)
-{
-        return dasleng;
-}
-
-/** Get the current token.
- * 
- */
-
-char *dasget_text  (void)
-{
-        return dastext;
-}
-
-/** Set the current line number.
- * @param line_number
- * 
- */
-void dasset_lineno (int  line_number )
-{
-    
-    daslineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see das_switch_to_buffer
- */
-void dasset_in (FILE *  in_str )
-{
-        dasin = in_str ;
-}
-
-void dasset_out (FILE *  out_str )
-{
-        dasout = out_str ;
-}
-
-int dasget_debug  (void)
-{
-        return das_flex_debug;
-}
-
-void dasset_debug (int  bdebug )
-{
-        das_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from daslex_destroy(), so don't allocate here.
-     */
-
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    dasin = stdin;
-    dasout = stdout;
-#else
-    dasin = (FILE *) 0;
-    dasout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * daslex_init()
-     */
-    return 0;
-}
-
-/* daslex_destroy is for both reentrant and non-reentrant scanners. */
-int daslex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		das_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		daspop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	dasfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * daslex() is called, initialization will occur. */
-    yy_init_globals( );
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *dasalloc (yy_size_t  size )
-{
-	return (void *) malloc( size );
-}
-
-void *dasrealloc  (void * ptr, yy_size_t  size )
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void dasfree (void * ptr )
-{
-	free( (char *) ptr );	/* see dasrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 200 "das.lex"
-
-
-
-// These three glue routines enable DDS to reclaim the memory used to parse a
-// DDS off the wire. They are here because this file can see the YY_*
-// symbols; the file DDS.cc cannot.
-
-void *
-das_buffer(FILE *fp)
-{
-    return (void *)das_create_buffer(fp, YY_BUF_SIZE);
-}
-
-void
-das_switch_to_buffer(void *buf)
-{
-    das_switch_to_buffer((YY_BUFFER_STATE)buf);
-}
-
-void
-das_delete_buffer(void *buf)
-{
-    das_delete_buffer((YY_BUFFER_STATE)buf);
-}
-
-
diff --git a/lex.dds.cc b/lex.dds.cc
deleted file mode 100644
index f02a51b..0000000
--- a/lex.dds.cc
+++ /dev/null
@@ -1,2119 +0,0 @@
-#line 2 "lex.dds.cc"
-
-#line 4 "lex.dds.cc"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define yy_create_buffer dds_create_buffer
-#define yy_delete_buffer dds_delete_buffer
-#define yy_flex_debug dds_flex_debug
-#define yy_init_buffer dds_init_buffer
-#define yy_flush_buffer dds_flush_buffer
-#define yy_load_buffer_state dds_load_buffer_state
-#define yy_switch_to_buffer dds_switch_to_buffer
-#define yyin ddsin
-#define yyleng ddsleng
-#define yylex ddslex
-#define yylineno ddslineno
-#define yyout ddsout
-#define yyrestart ddsrestart
-#define yytext ddstext
-#define yywrap ddswrap
-#define yyalloc ddsalloc
-#define yyrealloc ddsrealloc
-#define yyfree ddsfree
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE ddsrestart(ddsin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern yy_size_t ddsleng;
-
-extern FILE *ddsin, *ddsout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up ddstext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
-		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up ddstext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	yy_size_t yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via ddsrestart()), so that the user can continue scanning by
-	 * just pointing ddsin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when ddstext is formed. */
-static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t ddsleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
-static int yy_start = 0;	/* start state number */
-
-/* Flag which is used to allow ddswrap()'s to do buffer switches
- * instead of setting up a fresh ddsin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void ddsrestart (FILE *input_file  );
-void dds_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE dds_create_buffer (FILE *file,int size  );
-void dds_delete_buffer (YY_BUFFER_STATE b  );
-void dds_flush_buffer (YY_BUFFER_STATE b  );
-void ddspush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void ddspop_buffer_state (void );
-
-static void ddsensure_buffer_stack (void );
-static void dds_load_buffer_state (void );
-static void dds_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER dds_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE dds_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE dds_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE dds_scan_bytes (yyconst char *bytes,yy_size_t len  );
-
-void *ddsalloc (yy_size_t  );
-void *ddsrealloc (void *,yy_size_t  );
-void ddsfree (void *  );
-
-#define yy_new_buffer dds_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        ddsensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            dds_create_buffer(ddsin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        ddsensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            dds_create_buffer(ddsin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define ddswrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-FILE *ddsin = (FILE *) 0, *ddsout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int ddslineno;
-
-int ddslineno = 1;
-
-extern char *ddstext;
-#define yytext_ptr ddstext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up ddstext.
- */
-#define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	ddsleng = (yy_size_t) (yy_cp - yy_bp); \
-	(yy_hold_char) = *yy_cp; \
-	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 31
-#define YY_END_OF_BUFFER 32
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[185] =
-    {   0,
-        0,    0,   26,   26,   32,   30,   23,   24,   25,   22,
-       31,   22,    5,    6,    7,   22,   22,   22,   22,   22,
-       22,   22,   22,    3,    4,   22,   22,   22,   22,   22,
-       22,   22,   22,    1,    2,   26,   27,   23,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   26,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   21,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   13,   22,   22,
-
-       22,   22,   12,   22,   22,   22,   22,    9,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,    0,   22,   22,   22,   14,
-       16,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,   22,   28,
-        0,   22,   22,   22,   22,   22,   22,   20,   22,   22,
-       22,   15,   17,   22,   22,   22,   22,   22,    8,   29,
-       18,   19,   22,   22,   22,   22,   22,   22,   10,   22,
-       22,   22,   11,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    1,    5,    1,    6,    1,    1,    7,
-        7,    8,    6,    7,    6,    6,    6,    6,    9,   10,
-       11,   12,    6,   13,    6,    6,    6,   14,   15,    1,
-       16,    1,    1,    1,   17,   18,   19,   20,   21,   22,
-       23,    6,   24,    6,    6,   25,    6,   26,   27,    6,
-       28,   29,   30,   31,   32,    6,    6,    6,   33,    6,
-       34,    6,   35,    1,    6,    1,   36,   37,   38,   39,
-
-       40,   41,   42,    6,   43,    6,    6,   44,    6,   45,
-       46,    6,   47,   48,   49,   50,   51,    6,    6,    6,
-       52,    6,   53,    1,   54,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[55] =
-    {   0,
-        1,    1,    2,    1,    3,    3,    1,    3,    3,    3,
-        3,    3,    3,    1,    1,    1,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    1,    1,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[188] =
-    {   0,
-        0,    0,  235,  234,  236,  239,   53,  239,  239,    0,
-      239,    0,  239,  239,  239,   23,   41,   34,   31,   35,
-       38,   42,   40,  239,  239,  183,  198,  189,  184,  186,
-      187,   26,   22,  239,  239,    0,  239,   70,    0,  198,
-      178,  196,  176,  198,  178,  199,  179,  190,  170,  189,
-      169,  189,  187,  168,  166,   41,  188,  168,  161,  160,
-      163,  165,  157,  157,  158,  156,  158,  158,    0,  180,
-      160,  182,  162,  180,  160,  175,  155,   74,   78,  162,
-      142,  159,   66,  139,   48,  158,  138,    0,  147,  150,
-      149,  145,   84,  133,  131,   51,  131,    0,  150,   54,
-
-      148,  128,    0,  164,  166,  162,  164,    0,  152,  146,
-      152,  130,  124,  130,   95,   96,  118,  116,  152,  154,
-      123,  117,  123,   99,  139,   93,  119,   98,  101,    0,
-        0,  132,  134,  125,  110,  112,  103,  139,  141,  137,
-      139,  108,  102,  102,  104,   95,  131,  133,  111,  239,
-      138,   90,  129,  126,  127,  124,  116,    0,  102,   95,
-       81,    0,    0,   81,  120,  117,   90,   76,    0,  239,
-        0,    0,  105,   96,   84,   75,   82,   72,    0,   80,
-       60,   44,    0,  239,  115,   68,  118
-    } ;
-
-static yyconst flex_int16_t yy_def[188] =
-    {   0,
-      184,    1,  185,  185,  184,  184,  184,  184,  184,  186,
-      184,  186,  184,  184,  184,  186,  186,  186,  186,  186,
-      186,  186,  186,  184,  184,  186,  186,  186,  186,  186,
-      186,  186,  186,  184,  184,  187,  184,  184,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  187,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  184,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  184,
-      184,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  184,
-      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      186,  186,  186,    0,  184,  184,  184
-    } ;
-
-static yyconst flex_int16_t yy_nxt[294] =
-    {   0,
-        6,    7,    8,    7,    9,   10,   11,   12,   10,   10,
-       10,   10,   10,   13,   14,   15,   10,   16,   10,   17,
-       10,   18,   19,   20,   21,   10,   10,   10,   10,   22,
-       10,   23,   10,   24,   25,   10,   26,   10,   27,   10,
-       28,   29,   30,   31,   10,   10,   10,   10,   32,   10,
-       33,   10,   34,   35,   38,   40,   38,   42,   44,   46,
-       48,   50,   52,   56,   67,   65,   86,  126,   57,   68,
-       39,   38,   53,   38,   41,   66,   43,   45,   47,   49,
-       51,   54,  104,  183,  105,   87,  106,   58,  107,  110,
-      113,   55,  119,  122,  120,  150,  151,  111,  114,  183,
-
-      183,  123,  127,  138,  140,  139,  141,  147,  153,  148,
-      154,  155,  165,  156,  166,   36,   36,   36,   69,  182,
-       69,  179,  181,  179,  180,  179,  178,  177,  172,  171,
-      169,  176,  175,  174,  173,  172,  171,  172,  171,  169,
-      170,  169,  163,  162,  168,  158,  167,  164,  163,  162,
-      163,  162,  161,  158,  160,  159,  158,  157,  152,  149,
-      146,  145,  144,  131,  130,  143,  142,  137,  136,  135,
-      134,  133,  132,  131,  130,  131,  130,  129,  128,  125,
-      124,  121,  108,  103,  118,  117,   98,  116,  115,  112,
-      109,  108,  108,  103,  103,  102,  101,  100,   99,   98,
-
-       98,   88,   97,   96,   95,   94,   93,   92,   91,   90,
-       89,   88,   88,   85,   84,   83,   82,   81,   80,   79,
-       78,   77,   76,   75,   74,   73,   72,   71,   70,   64,
-       63,   62,   61,   60,   59,  184,   37,   37,    5,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184
-
-    } ;
-
-static yyconst flex_int16_t yy_chk[294] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    7,   16,    7,   17,   18,   19,
-       20,   21,   22,   23,   33,   32,   56,  100,   23,   33,
-      186,   38,   22,   38,   16,   32,   17,   18,   19,   20,
-       21,   22,   78,  182,   78,   56,   79,   23,   79,   83,
-       85,   22,   93,   96,   93,  126,  126,   83,   85,  181,
-
-      180,   96,  100,  115,  116,  115,  116,  124,  128,  124,
-      128,  129,  143,  129,  143,  185,  185,  185,  187,  178,
-      187,  177,  176,  175,  174,  173,  168,  167,  166,  165,
-      164,  161,  160,  159,  157,  156,  155,  154,  153,  152,
-      151,  149,  148,  147,  146,  145,  144,  142,  141,  140,
-      139,  138,  137,  136,  135,  134,  133,  132,  127,  125,
-      123,  122,  121,  120,  119,  118,  117,  114,  113,  112,
-      111,  110,  109,  107,  106,  105,  104,  102,  101,   99,
-       97,   95,   94,   92,   91,   90,   89,   87,   86,   84,
-       82,   81,   80,   77,   76,   75,   74,   73,   72,   71,
-
-       70,   68,   67,   66,   65,   64,   63,   62,   61,   60,
-       59,   58,   57,   55,   54,   53,   52,   51,   50,   49,
-       48,   47,   46,   45,   44,   43,   42,   41,   40,   31,
-       30,   29,   28,   27,   26,    5,    4,    3,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
-      184,  184,  184
-
-    } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int dds_flex_debug;
-int dds_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *ddstext;
-#line 1 "dds.lex"
-/*
- -*- mode: c++; c-basic-offset:4 -*-
-
- This file is part of libdap, A C++ implementation of the OPeNDAP Data
- Access Protocol.
-
- Copyright (c) 2002,2003 OPeNDAP, Inc.
- Author: James Gallagher <jgallagher at opendap.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
- You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
-
- (c) COPYRIGHT URI/MIT 1994-1999
-
-*/
-/*
-   Scanner for the DDS. This file works with gnu's flex scanner generator. It
-   returns either DATASET, INDEPENDENT, DEPENDENT, ARRAY, MAPS, LIST,
-   SEQUENCE, STRUCTURE, FUNCTION, GRID, BYTE, INT32, FLOAT64, STRING, URL, ID
-   or one of the single character tokens `{', `}', `;', `=' or `\n' as
-   integers. In the case of an ID, the scanner stores a pointer to the lexeme
-   in yylval (whose type is char *).
-
-   The scanner discards all comment text.
-
-   The scanner is not reentrant, but can share name spaces with other
-   scanners.
-
-   Note:
-   1) The `defines' file dds.tab.h is built using `bison -d'.
-   2) Define YY_DECL such that the scanner is called `ddslex'.
-   3) When bison builds the dds.tab.h file, it uses `dds' instead of `yy' for
-   variable name prefixes (e.g., yylval --> ddslval).
-
-   jhrg 8/29/94
-*/
-#line 53 "dds.lex"
-
-#include "config_dap.h"
-
-#include <cstdio>
-#include <cstring>
-
-#include "parser.h"
-#include "dds.tab.hh"
-#include "escaping.h"
-
-using namespace libdap ;
-
-#ifndef YY_PROTO
-#define YY_PROTO(proto) proto
-#endif
-
-#define YY_DECL int ddslex YY_PROTO(( void ))
-
-#define YY_INPUT(buf,result,max_size) { \
-    if (fgets((buf), (max_size), (ddsin)) == NULL) { \
-      *buf = '\0'; \
-    } \
-    result = (feof(ddsin) || *buf == '\0' || strncmp(buf, "Data:\n", 6) == 0) \
-             ? YY_NULL : strlen(buf); \
-}
-
-#define YY_FATAL_ERROR(msg) {\
-    throw(Error(string("Error scanning DDS object text: ") + string(msg))); \
-    yy_fatal_error(msg); /* see das.lex */ \
-}
-
-int dds_line_num = 1;
-
-static void store_word();
-
-#define YY_NO_INPUT 1
-
-/* See das.lex for comments about the characters allowed in a WORD.
-   10/31/2001 jhrg */
-#line 688 "lex.dds.cc"
-
-#define INITIAL 0
-#define comment 1
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int ddslex_destroy (void );
-
-int ddsget_debug (void );
-
-void ddsset_debug (int debug_flag  );
-
-YY_EXTRA_TYPE ddsget_extra (void );
-
-void ddsset_extra (YY_EXTRA_TYPE user_defined  );
-
-FILE *ddsget_in (void );
-
-void ddsset_in  (FILE * in_str  );
-
-FILE *ddsget_out (void );
-
-void ddsset_out  (FILE * out_str  );
-
-yy_size_t ddsget_leng (void );
-
-char *ddsget_text (void );
-
-int ddsget_lineno (void );
-
-void ddsset_lineno (int line_number  );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int ddswrap (void );
-#else
-extern int ddswrap (void );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO fwrite( ddstext, ddsleng, 1, ddsout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		yy_size_t n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( ddsin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( ddsin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, ddsin))==0 && ferror(ddsin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(ddsin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int ddslex (void);
-
-#define YY_DECL int ddslex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after ddstext and ddsleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    
-#line 120 "dds.lex"
-
-
-#line 872 "lex.dds.cc"
-
-	if ( !(yy_init) )
-		{
-		(yy_init) = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
-
-		if ( ! ddsin )
-			ddsin = stdin;
-
-		if ( ! ddsout )
-			ddsout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			ddsensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				dds_create_buffer(ddsin,YY_BUF_SIZE );
-		}
-
-		dds_load_buffer_state( );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		yy_cp = (yy_c_buf_p);
-
-		/* Support of ddstext. */
-		*yy_cp = (yy_hold_char);
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = (yy_start);
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 185 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_base[yy_current_state] != 239 );
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-		if ( yy_act == 0 )
-			{ /* have to back up */
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			yy_act = yy_accept[yy_current_state];
-			}
-
-		YY_DO_BEFORE_ACTION;
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 122 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 123 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 124 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 125 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 126 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 127 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 128 "dds.lex"
-return (int)*ddstext;
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 130 "dds.lex"
-store_word(); return SCAN_DATASET;
-	YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 131 "dds.lex"
-store_word(); return SCAN_LIST;
-	YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 132 "dds.lex"
-store_word(); return SCAN_SEQUENCE;
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 133 "dds.lex"
-store_word(); return SCAN_STRUCTURE;
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 134 "dds.lex"
-store_word(); return SCAN_GRID;
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 135 "dds.lex"
-store_word(); return SCAN_BYTE;
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 136 "dds.lex"
-store_word(); return SCAN_INT16;
-	YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 137 "dds.lex"
-store_word(); return SCAN_UINT16;
-	YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 138 "dds.lex"
-store_word(); return SCAN_INT32;
-	YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 139 "dds.lex"
-store_word(); return SCAN_UINT32;
-	YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 140 "dds.lex"
-store_word(); return SCAN_FLOAT32;
-	YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 141 "dds.lex"
-store_word(); return SCAN_FLOAT64;
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 142 "dds.lex"
-store_word(); return SCAN_STRING;
-	YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 143 "dds.lex"
-store_word(); return SCAN_URL;
-	YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 145 "dds.lex"
-store_word(); return SCAN_WORD;
-	YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 147 "dds.lex"
-
-	YY_BREAK
-case 24:
-/* rule 24 can match eol */
-YY_RULE_SETUP
-#line 148 "dds.lex"
-++dds_line_num;
-	YY_BREAK
-case YY_STATE_EOF(INITIAL):
-#line 149 "dds.lex"
-yy_init = 1; dds_line_num = 1; yyterminate();
-	YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 151 "dds.lex"
-BEGIN(comment);
-	YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 152 "dds.lex"
-
-	YY_BREAK
-case 27:
-/* rule 27 can match eol */
-YY_RULE_SETUP
-#line 153 "dds.lex"
-++dds_line_num; BEGIN(INITIAL);
-	YY_BREAK
-case YY_STATE_EOF(comment):
-#line 154 "dds.lex"
-yy_init = 1; dds_line_num = 1; yyterminate();
-	YY_BREAK
-case 28:
-/* rule 28 can match eol */
-YY_RULE_SETUP
-#line 156 "dds.lex"
-yyterminate();
-	YY_BREAK
-case 29:
-/* rule 29 can match eol */
-YY_RULE_SETUP
-#line 157 "dds.lex"
-yyterminate();
-	YY_BREAK
-case 30:
-/* rule 30 can match eol */
-YY_RULE_SETUP
-#line 159 "dds.lex"
-{
-            if (ddstext) {	/* suppress msgs about `' chars */
-                fprintf(stderr, "Character `%c' is not", *ddstext);
-                fprintf(stderr, " allowed and has been ignored\n");
-	    }
-	}
-	YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 165 "dds.lex"
-ECHO;
-	YY_BREAK
-#line 1128 "lex.dds.cc"
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed ddsin at a new source and called
-			 * ddslex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = ddsin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state(  );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = (yy_c_buf_p);
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer(  ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				(yy_did_buffer_switch_on_eof) = 0;
-
-				if ( ddswrap( ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * ddstext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of ddslex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-	else
-		{
-			yy_size_t num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				yy_size_t new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					ddsrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	if ( (yy_n_chars) == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			ddsrestart(ddsin  );
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ddsrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (void)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
-
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 185 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 185 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 184);
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
-
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
-
-		else
-			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
-
-			switch ( yy_get_next_buffer(  ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					ddsrestart(ddsin );
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( ddswrap( ) )
-						return 0;
-
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput();
-#else
-					return input();
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve ddstext */
-	(yy_hold_char) = *++(yy_c_buf_p);
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void ddsrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        ddsensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            dds_create_buffer(ddsin,YY_BUF_SIZE );
-	}
-
-	dds_init_buffer(YY_CURRENT_BUFFER,input_file );
-	dds_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void dds_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		ddspop_buffer_state();
-	 *		ddspush_buffer_state(new_buffer);
-     */
-	ddsensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	dds_load_buffer_state( );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (ddswrap()) processing, but the only time this flag
-	 * is looked at is after ddswrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void dds_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	ddsin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE dds_create_buffer  (FILE * file, int  size )
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) ddsalloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in dds_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) ddsalloc(b->yy_buf_size + 2  );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in dds_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	dds_init_buffer(b,file );
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with dds_create_buffer()
- * 
- */
-    void dds_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		ddsfree((void *) b->yy_ch_buf  );
-
-	ddsfree((void *) b  );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-    
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a ddsrestart() or at EOF.
- */
-    static void dds_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-	int oerrno = errno;
-    
-	dds_flush_buffer(b );
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then dds_init_buffer was _probably_
-     * called from ddsrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void dds_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		dds_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void ddspush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	ddsensure_buffer_stack();
-
-	/* This block is copied from dds_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from dds_switch_to_buffer. */
-	dds_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void ddspop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	dds_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		dds_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void ddsensure_buffer_stack (void)
-{
-	yy_size_t num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)ddsalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in ddsensure_buffer_stack()" );
-								  
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)ddsrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in ddsensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE dds_scan_buffer  (char * base, yy_size_t  size )
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) ddsalloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in dds_scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	dds_switch_to_buffer(b  );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to ddslex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       dds_scan_bytes() instead.
- */
-YY_BUFFER_STATE dds_scan_string (yyconst char * yystr )
-{
-    
-	return dds_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to ddslex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE dds_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n, i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) ddsalloc(n  );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in dds_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = dds_scan_buffer(buf,n );
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in dds_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up ddstext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		ddstext[ddsleng] = (yy_hold_char); \
-		(yy_c_buf_p) = ddstext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		ddsleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- * 
- */
-int ddsget_lineno  (void)
-{
-        
-    return ddslineno;
-}
-
-/** Get the input stream.
- * 
- */
-FILE *ddsget_in  (void)
-{
-        return ddsin;
-}
-
-/** Get the output stream.
- * 
- */
-FILE *ddsget_out  (void)
-{
-        return ddsout;
-}
-
-/** Get the length of the current token.
- * 
- */
-yy_size_t ddsget_leng  (void)
-{
-        return ddsleng;
-}
-
-/** Get the current token.
- * 
- */
-
-char *ddsget_text  (void)
-{
-        return ddstext;
-}
-
-/** Set the current line number.
- * @param line_number
- * 
- */
-void ddsset_lineno (int  line_number )
-{
-    
-    ddslineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see dds_switch_to_buffer
- */
-void ddsset_in (FILE *  in_str )
-{
-        ddsin = in_str ;
-}
-
-void ddsset_out (FILE *  out_str )
-{
-        ddsout = out_str ;
-}
-
-int ddsget_debug  (void)
-{
-        return dds_flex_debug;
-}
-
-void ddsset_debug (int  bdebug )
-{
-        dds_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from ddslex_destroy(), so don't allocate here.
-     */
-
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    ddsin = stdin;
-    ddsout = stdout;
-#else
-    ddsin = (FILE *) 0;
-    ddsout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * ddslex_init()
-     */
-    return 0;
-}
-
-/* ddslex_destroy is for both reentrant and non-reentrant scanners. */
-int ddslex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		dds_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		ddspop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	ddsfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * ddslex() is called, initialization will occur. */
-    yy_init_globals( );
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *ddsalloc (yy_size_t  size )
-{
-	return (void *) malloc( size );
-}
-
-void *ddsrealloc  (void * ptr, yy_size_t  size )
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void ddsfree (void * ptr )
-{
-	free( (char *) ptr );	/* see ddsrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 165 "dds.lex"
-
-
-
-// These three glue routines enable DDS to reclaim the memory used to parse a
-// DDS off the wire. They are here because this file can see the YY_*
-// symbols; the file DDS.cc cannot.
-
-void *
-dds_buffer(FILE *fp)
-{
-    return (void *)dds_create_buffer(fp, YY_BUF_SIZE);
-}
-
-void
-dds_switch_to_buffer(void *buf)
-{
-    dds_switch_to_buffer((YY_BUFFER_STATE)buf);
-}
-
-void
-dds_delete_buffer(void *buf)
-{
-    dds_delete_buffer((YY_BUFFER_STATE)buf);
-}
-
-static void
-store_word()
-{
-    // dods2id(string(ddstext)).c_str()
-    strncpy(ddslval.word, ddstext, ID_MAX-1);
-    ddslval.word[ID_MAX-1] = '\0'; // for the paranoid...
-}
-
-
diff --git a/libdap.spec b/libdap.spec
index c796680..0b5a755 100644
--- a/libdap.spec
+++ b/libdap.spec
@@ -1,8 +1,6 @@
 Name: libdap
 Summary: The C++ DAP2/DAP4 library from OPeNDAP
-# updated 7/6/15 to match the update in configure.ac for a new source
-# dist. There's not (yet) a  binary dist with this version. jhrg 7/6/15
-Version: 3.15.1
+Version: 3.18.0
 Release: 1%{?dist}
 
 License: LGPLv2+
diff --git a/mime_util.cc b/mime_util.cc
index 64bd908..de62166 100644
--- a/mime_util.cc
+++ b/mime_util.cc
@@ -950,8 +950,7 @@ string read_multipart_boundary(FILE *in, const string &boundary)
     // The value of 'boundary_line' is returned by this function.
     if ((!boundary.empty() && is_boundary(boundary_line.c_str(), boundary))
 	    || boundary_line.find("--") != 0)
-	throw Error(
-		"The DAP4 data response document is broken - missing or malformed boundary.");
+	throw Error(internal_error, "The DAP4 data response document is broken - missing or malformed boundary.");
 
     return boundary_line;
 }
@@ -964,8 +963,7 @@ string read_multipart_boundary(istream &in, const string &boundary)
     // The value of 'boundary_line' is returned by this function.
     if ((!boundary.empty() && is_boundary(boundary_line.c_str(), boundary))
 	    || boundary_line.find("--") != 0)
-	throw Error(
-		"The DAP4 data response document is broken - missing or malformed boundary.");
+	throw Error(internal_error, "The DAP4 data response document is broken - missing or malformed boundary.");
 
     return boundary_line;
 }
@@ -1002,13 +1000,12 @@ void read_multipart_headers(FILE *in, const string &content_type, const ObjectTy
 		if (name == "content-type") {
 			ct = true;
 			if (value.find(content_type) == string::npos)
-				throw Error("Content-Type for this part of a DAP2 data ddx response must be " + content_type + ".");
+				throw Error(internal_error, "Content-Type for this part of a DAP2 data ddx response must be " + content_type + ".");
 		}
 		else if (name == "content-description") {
 			cd = true;
 			if (get_description_type(value) != object_type)
-				throw Error(
-						"Content-Description for this part of a DAP2 data ddx response must be dods-ddx or dods-data-ddx");
+				throw Error(internal_error, "Content-Description for this part of a DAP2 data ddx response must be dods-ddx or dods-data-ddx");
 		}
 		else if (name == "content-id") {
 			ci = true;
@@ -1019,7 +1016,7 @@ void read_multipart_headers(FILE *in, const string &content_type, const ObjectTy
 		header = get_next_mime_header(in);
 	}
 
-	if (!(ct && cd && ci)) throw Error("The DAP4 data response document is broken - missing header.");
+	if (!(ct && cd && ci)) throw Error(internal_error, "The DAP4 data response document is broken - missing header.");
 }
 
 void read_multipart_headers(istream &in, const string &content_type, const ObjectType object_type, const string &cid)
@@ -1034,7 +1031,7 @@ void read_multipart_headers(istream &in, const string &content_type, const Objec
 		if (name == "content-type") {
 			ct = true;
 			if (value.find(content_type) == string::npos)
-				throw Error("Content-Type for this part of a DAP4 data response must be " + content_type + ".");
+				throw Error(internal_error, "Content-Type for this part of a DAP4 data response must be " + content_type + ".");
 		}
 		else if (name == "content-description") {
 			cd = true;
@@ -1050,7 +1047,7 @@ void read_multipart_headers(istream &in, const string &content_type, const Objec
 		header = get_next_mime_header(in);
 	}
 
-	if (!(ct && cd && ci)) throw Error("The DAP4 data response document is broken - missing header.");
+	if (!(ct && cd && ci)) throw Error(internal_error, "The DAP4 data response document is broken - missing header.");
 }
 
 /** Given a Content-Id read from the DDX, return the value to look for in a
@@ -1065,7 +1062,7 @@ string cid_to_header_value(const string &cid)
 {
     string::size_type offset = cid.find("cid:");
     if (offset != 0)
-        throw Error("expected CID to start with 'cid:'");
+        throw Error(internal_error, "expected CID to start with 'cid:'");
 
     string value = "<";
     value.append(cid.substr(offset + 4));
diff --git a/old/D4ResponseBuilder.cc b/old/D4ResponseBuilder.cc
new file mode 100644
index 0000000..c1447a9
--- /dev/null
+++ b/old/D4ResponseBuilder.cc
@@ -0,0 +1,1661 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2011 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <signal.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <uuid/uuid.h>  // used to build CID header value for data ddx
+
+#ifndef WIN32
+#include <sys/wait.h>
+#else
+#include <io.h>
+#include <fcntl.h>
+#include <process.h>
+#endif
+
+#include <iostream>
+#include <string>
+#include <sstream>
+#include <fstream>
+
+#include <cstring>
+#include <ctime>
+
+//#define DODS_DEBUG
+
+#include "DDXParserSAX2.h"
+#include "D4Group.h"
+
+#include "D4ResponseBuilder.h"
+#include "XDRStreamMarshaller.h"
+#include "XDRFileUnMarshaller.h"
+
+#include "DAPCache3.h"
+
+#include "debug.h"
+#include "mime_util.h"	// for last_modified_time() and rfc_822_date()
+#include "escaping.h"
+#include "util.h"
+
+#ifdef DAP4
+#include "D4StreamMarshaller.h"
+#endif
+
+#ifndef WIN32
+#include "SignalHandler.h"
+#include "EventHandler.h"
+#include "AlarmHandler.h"
+#endif
+
+#define CRLF "\r\n"             // Change here, expr-test.cc
+#define FUNCTION_CACHE "/tmp/dap_functions_cache/"
+#define FUNCTION_CACHE_PREFIX "f"
+// Cache size in megabytes; 20,000M -> 20GB
+#define FUNCTION_CACHE_SIZE 20000
+
+using namespace std;
+
+namespace libdap {
+
+D4ResponseBuilder::~D4ResponseBuilder()
+{
+}
+
+/** Called when initializing a D4ResponseBuilder that's not going to be passed
+ command line arguments. */
+void D4ResponseBuilder::initialize()
+{
+    // Set default values. Don't use the C++ constructor initialization so
+    // that a subclass can have more control over this process.
+    d_dataset = "";
+    d_dap4ce = "";
+    d_dap4_btp_func_expr = "";
+    d_timeout = 0;
+
+    d_default_protocol = DAP_PROTOCOL_VERSION;
+
+    // Cache size is given in megabytes and later converted to bytes
+    // for internal use.
+    d_cache = 0;
+
+    // Without this, the directory becomes a low-budget config param since
+    // the cache will only be used if the directory exists.
+    // TODO fix this mess by adding a real config param in bes.conf
+#if 0
+    if (!dir_writable(FUNCTION_CACHE))
+        mkdir(FUNCTION_CACHE, 0777);
+#endif
+
+    if (dir_exists(FUNCTION_CACHE)) {
+        DBG(cerr << "the FUNCTION_CACHE directory (" << FUNCTION_CACHE <<") exists" << endl);
+        d_cache = DAPCache3::get_instance(FUNCTION_CACHE, FUNCTION_CACHE_PREFIX, FUNCTION_CACHE_SIZE);
+    }
+    else {
+        DBG(cerr << "the FUNCTION_CACHE directory (" << FUNCTION_CACHE <<") does not exist - not caching" << endl);
+    }
+
+#ifdef WIN32
+    //  We want serving from win32 to behave in a manner
+    //  similar to the UNIX way - no CR->NL terminated lines
+    //  in files. Hence stdout goes to binary mode.
+    _setmode(_fileno(stdout), _O_BINARY);
+#endif
+}
+
+# if 0
+/** Return the entire constraint expression in a string.  This
+ includes both the projection and selection clauses, but not the
+ question mark.
+
+ @brief Get the constraint expression.
+ @return A string object that contains the constraint expression. */
+string D4ResponseBuilder::get_ce() const
+{
+    return d_dap4ce;
+}
+
+void D4ResponseBuilder::set_ce(string _ce)
+{
+    d_dap4ce = www2id(_ce, "%", "%20");
+}
+
+/** The ``dataset name'' is the filename or other string that the
+ filter program will use to access the data. In some cases this
+ will indicate a disk file containing the data.  In others, it
+ may represent a database query or some other exotic data
+ access method.
+
+ @brief Get the dataset name.
+ @return A string object that contains the name of the dataset. */
+string D4ResponseBuilder::get_dataset_name() const
+{
+    return d_dataset;
+}
+
+void D4ResponseBuilder::set_dataset_name(const string ds)
+{
+    d_dataset = www2id(ds, "%", "%20");
+}
+#endif
+
+#if 0
+/** Set the server's timeout value. A value of zero (the default) means no
+ timeout.
+
+ @param t Server timeout in seconds. Default is zero (no timeout). */
+void D4ResponseBuilder::set_timeout(int t)
+{
+    d_timeout = t;
+}
+
+/** Get the server's timeout value. */
+int D4ResponseBuilder::get_timeout() const
+{
+    return d_timeout;
+}
+#endif
+/** Use values of this instance to establish a timeout alarm for the server.
+ If the timeout value is zero, do nothing.
+
+ @todo When the alarm handler is called, two CRLF pairs are dumped to the
+ stream and then an Error object is sent. Replace this with code that uses
+ the new chunking protocol to insert an error message that can be read. */
+void
+D4ResponseBuilder::establish_timeout(ostream &stream) const
+{
+#ifndef WIN32
+    if (d_timeout > 0) {
+        SignalHandler *sh = SignalHandler::instance();
+        EventHandler *old_eh = sh->register_handler(SIGALRM, new AlarmHandler(stream));
+        delete old_eh;
+
+        alarm(d_timeout);
+    }
+#endif
+}
+
+/** Remove the timeout alarm. */
+void
+D4ResponseBuilder::remove_timeout() const
+{
+#ifndef WIN32
+    alarm(0);
+#endif
+}
+
+/**
+ *  Split the CE so that the server functions that compute new values are
+ *  separated into their own string and can be evaluated separately from
+ *  the rest of the CE (which can contain simple and slicing projection
+ *  as well as other types of function calls).
+ *
+ */
+void
+D4ResponseBuilder::split_ce(ConstraintEvaluator &eval, const string &expr)
+{
+    string ce;
+    if (!expr.empty())
+        ce = expr;
+    else
+        ce = d_dap4ce;
+
+    string btp_function_ce = "";
+    string::size_type pos = 0;
+    DBG(cerr << "ce: " << ce << endl);
+
+    string::size_type first_paren = ce.find("(", pos);
+    string::size_type closing_paren = ce.find(")", pos);
+    while (first_paren != string::npos && closing_paren != string::npos) {
+        // Maybe a BTP function; get the name of the potential function
+        string name = ce.substr(pos, first_paren-pos);
+        DBG(cerr << "name: " << name << endl);
+        // is this a BTP function
+        btp_func f;
+        if (eval.find_function(name, &f)) {
+            // Found a BTP function
+            if (!btp_function_ce.empty())
+                btp_function_ce += ",";
+            btp_function_ce += ce.substr(pos, closing_paren+1-pos);
+            ce.erase(pos, closing_paren+1-pos);
+            if (ce[pos] == ',')
+                ce.erase(pos, 1);
+        }
+        else {
+            pos = closing_paren + 1;
+            // exception?
+            if (pos < ce.length() && ce.at(pos) == ',')
+                ++pos;
+        }
+
+        first_paren = ce.find("(", pos);
+        closing_paren = ce.find(")", pos);
+    }
+
+    DBG(cerr << "Modified constraint: " << ce << endl);
+    DBG(cerr << "BTP Function part: " << btp_function_ce << endl);
+
+    d_dap4ce = ce;
+    d_dap4_btp_func_expr = btp_function_ce;
+}
+
+/**
+ * Use the dataset name and the function-part of the CE to build a name
+ * that can be used to index the result of that CE on the dataset. This
+ * name can be used both to store a result for later (re)use or to access
+ * a previously-stored result.
+ *
+ */
+static string
+build_cache_file_name(const string &dataset, const string &ce)
+{
+    DBG(cerr << "build_cache_file_name: dataset: " << dataset << ", ce: " << ce << endl);
+
+    string name = dataset + "#" + ce;
+    string::size_type pos = name.find_first_of("/(),\"\'");
+    while (pos != string::npos) {
+        name.replace(pos, 1, "#", 1);
+        pos = name.find_first_of("/()\"\'");
+    }
+
+    DBG(cerr << "build_cache_file_name: name: " << name << endl);
+
+    return name;
+}
+
+#if 0
+static bool cached_data_ddx_exists(const string &cache_file_name)
+{
+    ifstream icache_file(cache_file_name.c_str()); // closes on return
+
+    return !icache_file.fail() && !icache_file.bad() && !icache_file.eof();
+}
+#endif
+/**
+ * Is the item named by cache_entry_name valid? This code tests that the
+ * cache entry is non-zero in size (returns false if that is the case, although
+ * that might not be correct) and that the dataset associated with this
+ * ResponseBulder instance is at least as old as the cached entry.
+ *
+ * @param cache_file_name File name of the cached entry
+ * @return True if the thing is valid, false otherwise.
+ */
+bool D4ResponseBuilder::is_valid(const string &cache_file_name)
+{
+    // If the cached response is zero bytes in size, it's not valid.
+    // (hmmm...)
+
+    off_t entry_size = 0;
+    time_t entry_time = 0;
+    struct stat buf;
+    if (stat(cache_file_name.c_str(), &buf) == 0) {
+        entry_size = buf.st_size;
+        entry_time = buf.st_mtime;
+    }
+    else {
+        return false;
+    }
+
+    if (entry_size == 0)
+        return false;
+
+    time_t dataset_time = entry_time;
+    if (stat(d_dataset.c_str(), &buf) == 0) {
+        dataset_time = buf.st_mtime;
+    }
+
+    // Trick: if the d_dataset is not a file, stat() returns error and
+    // the times stay equal and the code uses the cache entry.
+
+    // TODO Fix this so that the code can get a LMT from the correct
+    // handler.
+    if (dataset_time > entry_time)
+        return false;
+
+    return true;
+}
+
+/**
+ * Get the cache DDS pointer - which will contain both attributes
+ * and data values.
+ *
+ * @note Do not call this when d_cache is null or when d_dap4_btp_func_expr
+ * is empty!
+ *
+ * @param dds The DDS of the dataset referenced by the URL
+ * @return The cached DDS that resulted from calling the server functions
+ * in the original CE.
+ * @param cache_token A value-result parameter that contains teh name of
+ * the file in the cache. Used to release the lock on the cached file.
+ */
+DDS *D4ResponseBuilder::read_cached_dataset(DDS &dds, ConstraintEvaluator &eval,
+                                          string &cache_token)
+{
+    DBG(cerr << "Found function(s) in CE: " << d_dap4_btp_func_expr << endl);
+
+    // These are used for the cached or newly created DDS object
+    BaseTypeFactory factory;
+    DDS *fdds;
+
+    // Get the cache filename for this thing. Do not use the default
+    // name mangling; instead use what build_cache_file_name() does.
+    string cache_file_name = d_cache->get_cache_file_name(build_cache_file_name(d_dataset, d_dap4_btp_func_expr), false);
+    int fd;
+    try {
+        // If the object in the cache is not valid, remove it. The read_lock will
+        // then fail and the code will drop down to the create_and_lock() call.
+        // is_valid() tests for a non-zero object and for d_dateset newer than
+        // the cached object.
+        if (!is_valid(cache_file_name))
+            d_cache->purge_file(cache_file_name);
+
+        if (d_cache->get_read_lock(cache_file_name, fd)) {
+            DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+            fdds = get_cached_data_ddx(cache_file_name, &factory);
+        }
+
+        // If here, the cache_file_name could not be locked for read access;
+        // try to build it. First make an empty file and get an exclusive lock on it.
+        // TODO Make this an 'else if'?
+        if (d_cache->create_and_lock(cache_file_name, fd)) {
+            DBG(cerr << "function ce - caching " << cache_file_name << endl );
+
+            eval.parse_constraint(d_dap4_btp_func_expr, dds);
+            fdds = eval.eval_function_clauses(dds);
+
+            // TODO cache it using fd. Since this is advisory locking, this will work...
+            // Improve?
+            cache_data_ddx(cache_file_name, *fdds);
+
+            // Change the exclusive lock on the new file to a shared lock. This keeps
+            // other processes from purging the new file and ensures that the reading
+            // process can use it.
+            d_cache->exclusive_to_shared_lock(fd);
+
+            // Now update the total cache size info and purge if needed. The new file's
+            // name is passed into the purge method because this process cannot detect its
+            // own lock on the file.
+            unsigned long long size = d_cache->update_cache_info(cache_file_name);
+            if (d_cache->cache_too_big(size))
+                d_cache->update_and_purge(cache_file_name);
+        }
+        // get_read_lock() returns immediately if the file does not exist,
+        // but blocks waiting to get a shared lock if the file does exist.
+        else if (d_cache->get_read_lock(cache_file_name, fd)) {
+            DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+            fdds = get_cached_data_ddx(cache_file_name, &factory);
+        }
+        else {
+            throw InternalErr(__FILE__, __LINE__, "Cache error during function invocation.");
+        }
+    }
+    catch (...) {
+        DBG(cerr << "caught exception, unlocking cache and re-throw." << endl );
+        // I think this call is not needed. jhrg 10/23/12
+        d_cache->unlock_cache();
+        throw;
+    }
+
+    cache_token = cache_file_name;  // Set this value-result parameter
+    return fdds;
+}
+
+#if 0
+/** This function formats and prints an ASCII representation of a
+ DAS on stdout.  This has the effect of sending the DAS object
+ back to the client program.
+
+ @note This is the DAP2 attribute response.
+
+ @brief Transmit a DAS.
+ @param out The output stream to which the DAS is to be sent.
+ @param das The DAS object to be sent.
+ @param with_mime_headers If true (the default) send MIME headers.
+ @return void
+ @see DAS */
+void D4ResponseBuilder::send_das(ostream &out, DAS &das, bool with_mime_headers) const
+{
+    if (with_mime_headers)
+        set_mime_text(out, dods_das, x_plain, last_modified_time(d_dataset), "2.0");
+
+    das.print(out);
+
+    out << flush;
+}
+
+/** This function formats and prints an ASCII representation of a
+ DAS on stdout.  This has the effect of sending the DAS object
+ back to the client program. This version of send_das() uses the
+ DDS object (and assumes it's populated with attributes). If the
+ request contains a CE, that's fine and if the request has been
+ cached, it will read the DDS from the cache.
+
+ @note This is the DAP2 syntactic metadata response.
+
+ @todo Test me! Modify the BES to use this code!!
+
+ @brief Transmit a DAS using the DDS.
+ @param out The output stream to which the DAS is to be sent.
+ @param das The DAS object to be sent.
+ @param with_mime_headers If true (the default) send MIME headers.
+ @return void
+ @see DAS */
+void D4ResponseBuilder::send_das(ostream &out, DDS &dds, ConstraintEvaluator &eval, bool constrained, bool with_mime_headers)
+{
+    // Set up the alarm.
+    establish_timeout(out);
+    dds.set_timeout(d_timeout);
+
+    if (!constrained) {
+        if (with_mime_headers)
+            set_mime_text(out, dods_das, x_plain, last_modified_time(d_dataset), "2.0");
+
+        dds.print_das(out);
+        out << flush;
+
+        return;
+    }
+
+    split_ce(eval);
+
+    // If there are functions, parse them and eval.
+    // Use that DDS and parse the non-function ce
+    // Serialize using the second ce and the second dds
+    if (!d_dap4_btp_func_expr.empty()) {
+#if 0
+        DBG(cerr << "Found function(s) in CE: " << d_dap4_btp_func_expr << endl);
+
+        // These are used for the cached or newly created DDS object
+        BaseTypeFactory factory;
+        DDS *fdds;
+
+        // Get the cache filename for this thing. Do not use the default
+        // name mangling; instead use what build_cache_file_name() does.
+        string cache_file_name = d_cache->get_cache_file_name(build_cache_file_name(d_dataset, d_dap4_btp_func_expr), false);
+        int fd;
+        try {
+            // If the object in the cache is not valid, remove it. The read_lock will
+            // then fail and the code will drop down to the create_and_lock() call.
+            // is_valid() tests for a non-zero object and for d_dateset newer than
+            // the cached object.
+            if (!is_valid(cache_file_name))
+                d_cache->purge_file(cache_file_name);
+
+            if (d_cache->get_read_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+                fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+            }
+
+            // If here, the cache_file_name could not be locked for read access;
+            // try to build it. First make an empty file and get an exclusive lock on it.
+            // TODO Make this an 'else if'?
+            if (d_cache->create_and_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - caching " << cache_file_name << endl );
+
+                eval.parse_constraint(d_dap4_btp_func_expr, dds);
+                fdds = eval.eval_function_clauses(dds);
+
+                // TODO cache it using fd. Since this is advisory locking, this will work...
+                // Improve?
+                cache_data_ddx(cache_file_name, *fdds);
+
+                // Change the exclusive lock on the new file to a shared lock. This keeps
+                // other processes from purging the new file and ensures that the reading
+                // process can use it.
+                d_cache->exclusive_to_shared_lock(fd);
+
+                // Now update the total cache size info and purge if needed. The new file's
+                // name is passed into the purge method because this process cannot detect its
+                // own lock on the file.
+                unsigned long long size = d_cache->update_cache_info(cache_file_name);
+                if (d_cache->cache_too_big(size))
+                    d_cache->update_and_purge(cache_file_name);
+            }
+            else if (d_cache->get_read_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+                fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+            }
+            else {
+                throw InternalErr(__FILE__, __LINE__, "Cache error during function invocation.");
+            }
+        }
+        catch (...) {
+            DBG(cerr << "caught exception, unlocking cache and re-throw." << endl );
+            // I think this call is not needed. jhrg 10/23/12
+            d_cache->unlock_cache();
+            throw;
+        }
+#endif
+        DDS *fdds = 0;
+        string cache_token = "";
+
+        if (d_cache) {
+            DBG(cerr << "Using the cache for the server function CE" << endl);
+            fdds = read_cached_dataset(dds, eval, cache_token);
+        }
+        else {
+            DBG(cerr << "Cache not found; (re)calculating" << endl);
+            eval.parse_constraint(d_dap4_btp_func_expr, dds);
+            fdds = eval.eval_function_clauses(dds);
+        }
+
+        if (with_mime_headers)
+            set_mime_text(out, dods_das, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        fdds->print_das(out);
+
+        if (d_cache)
+            d_cache->unlock_and_close(cache_token);
+
+        delete fdds;
+    }
+    else {
+        DBG(cerr << "Simple constraint" << endl);
+
+        eval.parse_constraint(d_dap4ce, dds); // Throws Error if the ce doesn't parse.
+
+        if (with_mime_headers)
+            set_mime_text(out, dods_das, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        dds.print_das(out);
+    }
+
+    out << flush;
+}
+#endif
+/** This function formats and prints an ASCII representation of a
+ DDS on stdout. Either an entire DDS or a constrained DDS may be sent.
+ This function looks in the local cache and uses a DDS object there
+ if it's valid. Otherwise, if the request CE contains server functions
+ that build data for the response, the resulting DDS will be cached.
+
+ @brief Transmit a DDS.
+ @param out The output stream to which the DAS is to be sent.
+ @param dds The DDS to send back to a client.
+ @param eval A reference to the ConstraintEvaluator to use.
+ @param constrained If this argument is true, evaluate the
+ current constraint expression and send the `constrained DDS'
+ back to the client.
+ @param anc_location The directory in which the external DAS file resides.
+ @param with_mime_headers If true (default) send MIME headers.
+ @return void
+ @see DDS */
+void D4ResponseBuilder::send_dds(ostream &out, DDS &dds, ConstraintEvaluator &eval, bool constrained,
+        bool with_mime_headers)
+{
+    if (!constrained) {
+        if (with_mime_headers)
+            set_mime_text(out, dods_dds, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        dds.print(out);
+        out << flush;
+        return;
+    }
+
+    // Set up the alarm.
+    establish_timeout(out);
+    dds.set_timeout(d_timeout);
+
+    // Split constraint into two halves
+    split_ce(eval);
+
+    // If there are functions, parse them and eval.
+    // Use that DDS and parse the non-function ce
+    // Serialize using the second ce and the second dds
+    if (!d_dap4_btp_func_expr.empty()) {
+#if 0
+        DBG(cerr << "Found function(s) in CE: " << d_dap4_btp_func_expr << endl);
+
+        // These are used for the cached or newly created DDS object
+        BaseTypeFactory factory;
+        DDS *fdds;
+
+        // Get the cache filename for this thing. Do not use the default
+        // name mangling; instead use what build_cache_file_name() does.
+        string cache_file_name = d_cache->get_cache_file_name(build_cache_file_name(d_dataset, d_dap4_btp_func_expr), false);
+        int fd;
+        try {
+            // If the object in the cache is not valid, remove it. The read_lock will
+            // then fail and the code will drop down to the create_and_lock() call.
+            // is_valid() tests for a non-zero object and for d_dateset newer than
+            // the cached object.
+            if (!is_valid(cache_file_name))
+                d_cache->purge_file(cache_file_name);
+
+            if (d_cache->get_read_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+                fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+            }
+
+            // If here, the cache_file_name could not be locked for read access;
+            // try to build it. First make an empty file and get an exclusive lock on it.
+            if (d_cache->create_and_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - caching " << cache_file_name << endl );
+
+                eval.parse_constraint(d_dap4_btp_func_expr, dds);
+                fdds = eval.eval_function_clauses(dds);
+
+                // TODO cache it using fd. Since this is advisory locking, this will work...
+                // Improve?
+                cache_data_ddx(cache_file_name, *fdds);
+
+                // Change the exclusive lock on the new file to a shared lock. This keeps
+                // other processes from purging the new file and ensures that the reading
+                // process can use it.
+                d_cache->exclusive_to_shared_lock(fd);
+
+                // Now update the total cache size info and purge if needed. The new file's
+                // name is passed into the purge method because this process cannot detect its
+                // own lock on the file.
+                unsigned long long size = d_cache->update_cache_info(cache_file_name);
+                if (d_cache->cache_too_big(size))
+                    d_cache->update_and_purge(cache_file_name);
+            }
+            else if (d_cache->get_read_lock(cache_file_name, fd)) {
+                    DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+                    fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+            }
+            else {
+                throw InternalErr(__FILE__, __LINE__, "Cache error during function invocation.");
+            }
+        }
+        catch (...) {
+            DBG(cerr << "caught exception, unlocking cache and re-throw." << endl );
+            // I think this call is not needed. jhrg 10/23/12
+            d_cache->unlock_cache();
+            throw;
+        }
+#endif
+        string cache_token = "";
+        DDS *fdds = 0;
+
+        if (d_cache) {
+            DBG(cerr << "Using the cache for the server function CE" << endl);
+            fdds = read_cached_dataset(dds, eval, cache_token);
+        }
+        else {
+            DBG(cerr << "Cache not found; (re)calculating" << endl);
+            eval.parse_constraint(d_dap4_btp_func_expr, dds);
+            fdds = eval.eval_function_clauses(dds);
+        }
+
+        // Server functions might mark variables to use their read()
+        // methods. Clear that so the CE in d_dap4ce will control what is
+        // sent. If that is empty (there was only a function call) all
+        // of the variables in the intermediate DDS (i.e., the function
+        // result) will be sent.
+        fdds->mark_all(false);
+
+        eval.parse_constraint(d_dap4ce, *fdds);
+
+        if (with_mime_headers)
+            set_mime_text(out, dods_dds, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        fdds->print_constrained(out);
+
+        if (d_cache)
+            d_cache->unlock_and_close(cache_token);
+
+        delete fdds;
+    }
+    else {
+        DBG(cerr << "Simple constraint" << endl);
+
+        eval.parse_constraint(d_dap4ce, dds); // Throws Error if the ce doesn't parse.
+
+        if (with_mime_headers)
+            set_mime_text(out, dods_dds, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        dds.print_constrained(out);
+    }
+
+    out << flush;
+}
+
+/**
+ * Build/return the BLOB part of the DAP2 data response.
+ */
+void D4ResponseBuilder::dataset_constraint(ostream &out, DDS & dds, ConstraintEvaluator & eval, bool ce_eval)
+{
+    // send constrained DDS
+    DBG(cerr << "Inside dataset_constraint" << endl);
+
+    dds.print_constrained(out);
+    out << "Data:\n";
+    out << flush;
+
+#ifdef CHECKSUMS
+    // Grab a stream that encodes using XDR.
+    D4StreamMarshaller m(out, true);
+#else
+    XDRStreamMarshaller m(out);
+#endif
+
+    try {
+        // Send all variables in the current projection (send_p())
+        for (DDS::Vars_iter i = dds.var_begin(); i != dds.var_end(); i++)
+            if ((*i)->send_p()) {
+                DBG(cerr << "Sending " << (*i)->name() << endl);
+#ifdef CHECKSUMS
+                if ((*i)->type() != dods_structure_c && (*i)->type() != dods_grid_c)
+                    m.reset_checksum();
+
+                (*i)->serialize(eval, dds, m, ce_eval);
+
+                if ((*i)->type() != dods_structure_c && (*i)->type() != dods_grid_c)
+                    cerr << (*i)->name() << ": " << m.get_checksum() << endl;
+#else
+                (*i)->serialize(eval, dds, m, ce_eval);
+#endif
+            }
+    }
+    catch (Error & e) {
+        throw;
+    }
+}
+
+/**
+ * Build/return the DDX and the BLOB part of the DAP4 data response.
+ */
+void D4ResponseBuilder::dataset_constraint_ddx(ostream &out, DDS & dds, ConstraintEvaluator & eval,
+        const string &boundary, const string &start, bool ce_eval)
+{
+    // Write the MPM headers for the DDX (text/xml) part of the response
+    set_mime_ddx_boundary(out, boundary, start);
+
+    // Make cid
+    uuid_t uu;
+    uuid_generate(uu);
+    char uuid[37];
+    uuid_unparse(uu, &uuid[0]);
+    char domain[256];
+    if (getdomainname(domain, 255) != 0 || strlen(domain) == 0)
+        strncpy(domain, "opendap.org", 255);
+
+    string cid = string(&uuid[0]) + "@" + string(&domain[0]);
+
+    // Send constrained DDX with a data blob reference
+    dds.print_xml_writer(out, true, cid);
+
+    // Grab a stream that encodes for DAP4
+#ifdef DAP4
+    D4StreamMarshaller m(out);
+
+    // Write the MPM headers for the data part of the response.
+    set_mime_data_boundary(out, boundary, cid, m.get_endian(), 0);
+#else
+    XDRStreamMarshaller m(out);
+#endif // DAP4
+
+
+    // Send all variables in the current projection (send_p()). In DAP4,
+    // all of the top-level variables are serialized with their checksums.
+    // Internal variables are not.
+    // TODO When Group support is added to libdap, this will need to be
+    // generalized so that all variables in the top-levels of all the
+    // groups will have checksums included in the response.
+    for (DDS::Vars_iter i = dds.var_begin(); i != dds.var_end(); i++) {
+        if ((*i)->send_p()) {
+            DBG(cerr << "Sending " << (*i)->name() << endl);
+
+#ifdef DAP4
+            m.reset_checksum();
+#endif
+
+            (*i)->serialize(eval, dds, m, ce_eval);
+
+#ifdef DAP4
+            m.put_checksum();
+#endif
+        }
+    }
+}
+
+/** Send the data in the DDS object back to the client program. The data is
+ encoded using a Marshaller, and enclosed in a MIME document which is all sent
+ to \c data_stream.
+
+ @note This is the DAP2 data response.
+
+ @brief Transmit data.
+ @param dds A DDS object containing the data to be sent.
+ @param eval A reference to the ConstraintEvaluator to use.
+ @param data_stream Write the response to this stream.
+ @param anc_location A directory to search for ancillary files (in
+ addition to the CWD).  This is used in a call to
+ get_data_last_modified_time().
+ @param with_mime_headers If true, include the MIME headers in the response.
+ Defaults to true.
+ @return void */
+void D4ResponseBuilder::send_data(ostream & data_stream, DDS & dds, ConstraintEvaluator & eval,
+        bool with_mime_headers)
+{
+    // Set up the alarm.
+    establish_timeout(data_stream);
+    dds.set_timeout(d_timeout);
+
+#if 0
+    eval.parse_constraint(d_dap4ce, dds); // Throws Error if the ce doesn't parse.
+
+    dds.tag_nested_sequences(); // Tag Sequences as Parent or Leaf node.
+
+    if (dds.get_response_limit() != 0 && dds.get_request_size(true) > dds.get_response_limit()) {
+        string msg = "The Request for " + long_to_string(dds.get_request_size(true) / 1024)
+                + "KB is too large; requests for this user are limited to "
+                + long_to_string(dds.get_response_limit() / 1024) + "KB.";
+        throw Error(msg);
+    }
+#endif
+
+    // Split constraint into two halves
+    split_ce(eval);
+
+    // If there are functions, parse them and eval.
+    // Use that DDS and parse the non-function ce
+    // Serialize using the second ce and the second dds
+    if (!d_dap4_btp_func_expr.empty()) {
+        DBG(cerr << "Found function(s) in CE: " << d_dap4_btp_func_expr << endl);
+#if 0
+        // These are used for the cached or newly created DDS object
+        BaseTypeFactory factory;
+        DDS *fdds;
+
+        // Get the cache filename for this thing. Do not use the default
+        // name mangling; instead use what build_cache_file_name() does.
+        string cache_file_name = d_cache->get_cache_file_name(build_cache_file_name(d_dataset, d_dap4_btp_func_expr), false);
+        int fd;
+        try {
+            // If the object in the cache is not valid, remove it. The read_lock will
+            // then fail and the code will drop down to the create_and_lock() call.
+            // is_valid() tests for a non-zero object and for d_dateset newer than
+            // the cached object.
+            if (!is_valid(cache_file_name))
+                d_cache->purge_file(cache_file_name);
+
+            if (d_cache->get_read_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+                fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+            }
+
+            // If here, the cache_file_name could not be locked for read access;
+            // try to build it. First make an empty file and get an exclusive lock on it.
+            if (d_cache->create_and_lock(cache_file_name, fd)) {
+                DBG(cerr << "function ce - caching " << cache_file_name << endl );
+
+                eval.parse_constraint(d_dap4_btp_func_expr, dds);
+                fdds = eval.eval_function_clauses(dds);
+
+                // TODO cache it using fd. Since this is advisory locking, this will work...
+                // Improve?
+                // Until Connect/Response support working with file descriptors, it's
+                // better to use the names.
+                cache_data_ddx(cache_file_name, *fdds);
+
+                // Change the exclusive lock on the new file to a shared lock. This keeps
+                // other processes from purging the new file and ensures that the reading
+                // process can use it.
+                d_cache->exclusive_to_shared_lock(fd);
+
+                // Now update the total cache size info and purge if needed. The new file's
+                // name is passed into the purge method because this process cannot detect its
+                // own lock on the file.
+                unsigned long long size = d_cache->update_cache_info(cache_file_name);
+                if (d_cache->cache_too_big(size))
+                    d_cache->update_and_purge(cache_file_name);
+            }
+            else if (d_cache->get_read_lock(cache_file_name, fd)) {
+                    DBG(cerr << "function ce - cached hit: " << cache_file_name << endl );
+                    fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+            }
+            else {
+                throw InternalErr(__FILE__, __LINE__, "Cache error during function invocation.");
+            }
+        }
+        catch (...) {
+            DBG(cerr << "caught exception, unlocking cache and re-throw." << endl );
+            // I think this call is not needed. jhrg 10/23/12
+            d_cache->unlock_cache();
+            throw;
+        }
+#endif
+#if 0
+        // ******** original code here ***********
+
+        // Check to see if the cached data ddx exists and is valid
+        if (cached_data_ddx_exists(cache_file_name)) {
+            fdds = get_cached_dap2_data_ddx(cache_file_name, &factory);
+#if 0
+            // Use the cache file and don't eval the function(s)
+            DBG(cerr << "Reading cache for " << d_dataset + "?" + d_dap4_btp_func_expr << endl);
+            icache_file.close(); // only opened to see if it's there; Connect/Response do their own thing
+
+            fdds = new DDS(&factory);
+            fdds->set_dap_version("4.0"); // TODO note about cid, ...
+            // FIXME name should be...
+            fdds->filename( d_dataset ) ;
+            fdds->set_dataset_name( name_path( d_dataset ) ) ;
+
+            Connect *url = new Connect( d_dataset ) ;
+            Response *r = new Response( fopen( cache_file_name.c_str(), "r" ), 0 ) ;
+            if( !r->get_stream() )
+                throw Error("The input source: " + cache_file_name +  " could not be opened");
+
+            url->read_data( *fdds, r ) ;
+            fdds->set_factory( 0 ) ;
+
+            // mark everything as read.
+            DDS::Vars_iter i = fdds->var_begin() ;
+            DDS::Vars_iter e = fdds->var_end() ;
+            for( ; i != e; i++ ) {
+                BaseType *b = (*i) ;
+                b->set_read_p( true ) ;
+            }
+            // for_each(dds->var_begin(), dds->var_end(), mfunc(BaseType::set_read_p));
+
+            DAS *das = new DAS ;
+            Ancillary::read_ancillary_das( *das, d_dataset ) ;
+            fdds->transfer_attributes( das ) ;
+#endif
+        }
+        else {
+            eval.parse_constraint(d_dap4_btp_func_expr, dds);
+            fdds = eval.eval_function_clauses(dds);
+
+            cache_data_ddx(cache_file_name, *fdds);
+#if 0
+            // TODO cache the fdds here
+            ofstream ocache_file(cache_file_name.c_str());
+
+            DBG(cerr << "Caching " << d_dataset + "?" + d_dap4_btp_func_expr << endl);
+            cache_data_ddx(ocache_file, *fdds);
+            ocache_file.close();
+#endif
+        }
+#endif
+        string cache_token = "";
+        DDS *fdds = 0;
+
+        if (d_cache) {
+            DBG(cerr << "Using the cache for the server function CE" << endl);
+            fdds = read_cached_dataset(dds, eval, cache_token);
+        }
+        else {
+            DBG(cerr << "Cache not found; (re)calculating" << endl);
+            eval.parse_constraint(d_dap4_btp_func_expr, dds);
+            fdds = eval.eval_function_clauses(dds);
+        }
+
+        DBG(cerr << "Intermediate DDS: " << endl);
+        DBG(fdds->print_constrained(cerr));
+
+        DBG(cerr << "Parsing remaining CE: " << d_dap4ce << endl);
+
+        // Server functions might mark variables to use their read()
+        // methods. Clear that so the CE in d_dap4ce will control what is
+        // sent. If that is empty (there was only a function call) all
+        // of the variables in the intermediate DDS (i.e., the function
+        // result) will be sent.
+        fdds->mark_all(false);
+
+        eval.parse_constraint(d_dap4ce, *fdds);
+
+        fdds->tag_nested_sequences(); // Tag Sequences as Parent or Leaf node.
+
+        if (fdds->get_response_limit() != 0 && fdds->get_request_size(true) > fdds->get_response_limit()) {
+            string msg = "The Request for " + long_to_string(dds.get_request_size(true) / 1024)
+                    + "KB is too large; requests for this user are limited to "
+                    + long_to_string(dds.get_response_limit() / 1024) + "KB.";
+            throw Error(msg);
+        }
+
+        if (with_mime_headers)
+            set_mime_binary(data_stream, dods_data, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        DBG(cerr << "About to call dataset_constraint" << endl);
+        dataset_constraint(data_stream, *fdds, eval, false);
+
+        if (d_cache)
+            d_cache->unlock_and_close(cache_token);
+
+        delete fdds;
+    }
+    else {
+        DBG(cerr << "Simple constraint" << endl);
+
+        eval.parse_constraint(d_dap4ce, dds); // Throws Error if the ce doesn't parse.
+
+        dds.tag_nested_sequences(); // Tag Sequences as Parent or Leaf node.
+
+        if (dds.get_response_limit() != 0 && dds.get_request_size(true) > dds.get_response_limit()) {
+            string msg = "The Request for " + long_to_string(dds.get_request_size(true) / 1024)
+                    + "KB is too large; requests for this user are limited to "
+                    + long_to_string(dds.get_response_limit() / 1024) + "KB.";
+            throw Error(msg);
+        }
+
+        if (with_mime_headers)
+            set_mime_binary(data_stream, dods_data, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        dataset_constraint(data_stream, dds, eval);
+    }
+
+#if 0
+    // Start sending the response...
+
+    // Handle *functional* constraint expressions specially
+    if (eval.function_clauses()) {
+        DDS *fdds = eval.eval_function_clauses(dds);
+        if (with_mime_headers)
+            set_mime_binary(data_stream, dods_data, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        serialize_dap2_data_dds(data_stream, *fdds, eval, false);
+        delete fdds;
+    }
+    else {
+        if (with_mime_headers)
+            set_mime_binary(data_stream, dods_data, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+        serialize_dap2_data_dds(data_stream, dds, eval);
+    }
+#endif
+
+    data_stream << flush;
+}
+
+/** Send the DDX response. The DDX never contains data, instead it holds a
+ reference to a Blob response which is used to get the data values. The
+ DDS and DAS objects are built using code that already exists in the
+ servers.
+
+ @note This is the DAP4 metadata response; it is supported by most DAP2
+ servers as well, although the DAP4 DDX will contain types not present in
+ DAP2.
+
+ FIXME!!!
+ @todo I am broken WRT the other code here for sending data and DDS
+ responses
+
+ @param dds The dataset's DDS \e with attributes in the variables.
+ @param eval A reference to the ConstraintEvaluator to use.
+ @param out Destination
+ @param with_mime_headers If true, include the MIME headers in the response.
+ Defaults to true. */
+void D4ResponseBuilder::send_ddx(ostream &out, DDS &dds, ConstraintEvaluator &eval, bool with_mime_headers)
+{
+    // If constrained, parse the constraint. Throws Error or InternalErr.
+    if (!d_dap4ce.empty())
+        eval.parse_constraint(d_dap4ce, dds);
+
+    if (eval.functional_expression())
+        throw Error(
+                "Function calls can only be used with data requests. To see the structure of the underlying data source, reissue the URL without the function.");
+
+    if (with_mime_headers)
+        set_mime_text(out, dods_ddx, x_plain, last_modified_time(d_dataset), dds.get_dap_version());
+
+    dds.print_xml_writer(out, !d_dap4ce.empty(), "");
+}
+
+/** Send the data in the DDS object back to the client program. The data is
+ encoded using a Marshaller, and enclosed in a MIME document which is all sent
+ to \c data_stream.
+
+ @note This is the DAP4 data response.
+
+ FIXME!!!
+ @todo I am broken WRT the other code here for sending data and DDS
+ responses
+
+ @brief Transmit data.
+ @param dds A DDS object containing the data to be sent.
+ @param eval A reference to the ConstraintEvaluator to use.
+ @param data_stream Write the response to this stream.
+ @param anc_location A directory to search for ancillary files (in
+ addition to the CWD).  This is used in a call to
+ get_data_last_modified_time().
+ @param with_mime_headers If true, include the MIME headers in the response.
+ Defaults to true.
+ @return void */
+void D4ResponseBuilder::send_data_ddx(ostream & data_stream, DDS & dds, ConstraintEvaluator & eval, const string &start,
+        const string &boundary, bool with_mime_headers)
+{
+    // Set up the alarm.
+    establish_timeout(data_stream);
+    dds.set_timeout(d_timeout);
+
+    eval.parse_constraint(d_dap4ce, dds); // Throws Error if the ce doesn't parse.
+
+    if (dds.get_response_limit() != 0 && dds.get_request_size(true) > dds.get_response_limit()) {
+        string msg = "The Request for " + long_to_string(dds.get_request_size(true) / 1024)
+                + "KB is too large; requests for this user are limited to "
+                + long_to_string(dds.get_response_limit() / 1024) + "KB.";
+        throw Error(msg);
+    }
+
+    dds.tag_nested_sequences(); // Tag Sequences as Parent or Leaf node.
+
+    // Start sending the response...
+
+    // Handle *functional* constraint expressions specially
+    if (eval.function_clauses()) {
+        // We could unique_ptr<DDS> here to avoid memory leaks if
+        // serialize_dap2_data_ddx() throws an exception.
+        DDS *fdds = eval.eval_function_clauses(dds);
+        try {
+            if (with_mime_headers)
+                set_mime_multipart(data_stream, boundary, start, dods_ddx, x_plain, last_modified_time(d_dataset));
+            data_stream << flush;
+            dataset_constraint_ddx(data_stream, *fdds, eval, boundary, start);
+        }
+        catch (...) {
+            delete fdds;
+            throw;
+        }
+        delete fdds;
+    }
+    else {
+        if (with_mime_headers)
+            set_mime_multipart(data_stream, boundary, start, dods_ddx, x_plain, last_modified_time(d_dataset));
+        data_stream << flush;
+        dataset_constraint_ddx(data_stream, dds, eval, boundary, start);
+    }
+
+    data_stream << flush;
+
+    if (with_mime_headers)
+        data_stream << CRLF << "--" << boundary << "--" << CRLF;
+}
+
+#ifdef DAP4
+/**
+ * Send the DAP4 DMR (Dataset Metadata Response)
+ *
+ * @note The DAP2/3 methods have an optional 'with_mime_headers' parameter
+ * that triggers the generation of a complete HTTP response document. This
+ * method lacks that.
+ *
+ * @todo Modify the definition of server-functions so that they can return
+ * the DMR.
+ */
+void
+D4ResponseBuilder::send_dmr(ostream &out, DDS &dds, ConstraintEvaluator &eval)
+{
+    // If constrained, parse the constraint. Throws Error or InternalErr.
+    if (!d_dap4ce.empty())
+        eval.parse_constraint(d_dap4ce, dds);
+
+    // TODO Change functions so this is no longer an error
+    if (eval.functional_expression())
+        throw Error(
+                "Function calls can only be used with data requests. To see the structure of the underlying data source, reissue the URL without the function.");
+
+    dds.print_dmr(out, !d_dap4ce.empty());
+}
+#endif // DAP4
+
+/** Write a DDS to an output stream. This method is intended to be used
+    to write to a cache so that interim results can be reused w/o needing
+    to be recomputed. I chose the 'data ddx' response because it combines
+    the syntax and semantic metadata along with the data and all
+    three DAP2 requests can be satisfied using it.
+
+    @brief Cache data.
+
+    @param cache_file_name Put the data here
+    @param dds A DDS object containing the data to be sent.
+    @return void */
+
+void D4ResponseBuilder::cache_data_ddx(const string &cache_file_name, DDS &dds)
+{
+    DBG(cerr << "Caching " << d_dataset + "?" + d_dap4_btp_func_expr << endl);
+
+    ofstream data_stream(cache_file_name.c_str());
+    // Test for a valid file open
+
+    string start="dataddx_cache_start", boundary="dataddx_cache_boundary";
+#if 1
+    // Does this really need the full set of MIME headers? Not including these
+    // might make it comparable with the dapreader module in the BES.
+    set_mime_multipart(data_stream, boundary, start, dods_data_ddx, x_plain, last_modified_time(d_dataset));
+    data_stream << flush;
+#endif
+
+    // serialize_dap2_data_ddx() needs a ConstraintEvaluator because
+    // it calls serialize().
+    ConstraintEvaluator eval;
+
+    // Setting the DDS version to 3.2 causes the print_xml() code
+    // to write out a 'blob' element with a valid cid. The reader
+    // code in Connect needs this (or thinks it does...)
+    dds.set_dap_version("3.2");
+
+    dataset_constraint_ddx(data_stream, dds, eval, boundary, start);
+    data_stream << flush;
+
+    data_stream << CRLF << "--" << boundary << "--" << CRLF;
+    data_stream.close();
+}
+
+/**
+ * Read the data from the saved response document.
+ *
+ * @note this method is made of code copied from Connect (process_data(0)
+ * but this copy assumes ot is reading a DDX with data written using the
+ * code in D4ResponseBuilder::cache_data_ddx().
+ *
+ * @note I put this code here instead of using what was in Connect because
+ * I did not want all of the handlers to be modified to inlcude libdapclient
+ * and thus libcurl and libuuid.
+ *
+ * @todo Maybe move this code into libdap as a general 'get it from
+ * disk' method. Use that code in libdapclient.
+ *
+ * @param data The input stream
+ * @parma fdds Load this DDS object with the variables, attributes and
+ * data values from the cached DDS.
+ */
+void D4ResponseBuilder::read_data_from_cache(FILE *data, DDS *fdds)
+{
+    // Rip off the MIME headers from the response if they are present
+    string mime = get_next_mime_header(data);
+    while (!mime.empty()) {
+#if 0
+        string header, value;
+        parse_mime_header(mime, header, value);
+#endif
+        mime = get_next_mime_header(data);
+    }
+
+    // Parse the DDX; throw an exception on error.
+    DDXParser ddx_parser(fdds->get_factory());
+
+    // Read the MPM boundary and then read the subsequent headers
+    string boundary = read_multipart_boundary(data);
+    DBG(cerr << "MPM Boundary: " << boundary << endl);
+
+    read_multipart_headers(data, "text/xml", dods_ddx);
+
+    // Parse the DDX, reading up to and including the next boundary.
+    // Return the CID for the matching data part
+    string data_cid;
+    ddx_parser.intern_stream(data, fdds, data_cid, boundary);
+
+    // Munge the CID into something we can work with
+    data_cid = cid_to_header_value(data_cid);
+    DBG(cerr << "Data CID: " << data_cid << endl);
+
+    // Read the data part's MPM part headers (boundary was read by
+    // DDXParse::intern)
+    read_multipart_headers(data, "application/octet-stream", dap4_data, data_cid);
+
+    // Now read the data
+
+    XDRFileUnMarshaller um(data);
+    for (DDS::Vars_iter i = fdds->var_begin(); i != fdds->var_end(); i++) {
+        (*i)->deserialize(um, fdds);
+    }
+}
+
+/**
+ * Read data from cache. Allocates a new DDS using the given factory.
+ */
+DDS *
+D4ResponseBuilder::get_cached_data_ddx(const string &cache_file_name, BaseTypeFactory *factory)
+{
+    DBG(cerr << "Reading cache for " << d_dataset + "?" + d_dap4_btp_func_expr << endl);
+
+    DDS *fdds = new DDS(factory);
+
+    fdds->filename( d_dataset ) ;
+    fdds->set_dataset_name( "function_result_" + name_path( d_dataset ) ) ;
+
+#if 0
+    Connect *url = new Connect( d_dataset ) ;
+    Response *r = new Response( fopen( cache_file_name.c_str(), "r" ), 0 ) ;
+    if( !r->get_stream() )
+        throw Error("The input source: " + cache_file_name +  " could not be opened");
+
+    url->read_data( *fdds, r ) ;
+#endif
+
+    // fstream data(cache_file_name.c_str());
+    FILE *data = fopen( cache_file_name.c_str(), "r" );
+    read_data_from_cache(data, fdds);
+    fclose(data);
+
+    fdds->set_factory( 0 ) ;
+
+    // mark everything as read.
+    DDS::Vars_iter i = fdds->var_begin() ;
+    DDS::Vars_iter e = fdds->var_end() ;
+    for( ; i != e; i++ ) {
+        BaseType *b = (*i) ;
+        b->set_read_p( true ) ;
+    }
+
+    // for_each(dds->var_begin(), dds->var_end(), mfunc(BaseType::set_read_p));
+
+#if 0
+    // Ancillary attributes were read when the DDX was built and are part of the
+    // cached BLOB.
+    DAS *das = new DAS ;
+    Ancillary::read_ancillary_das( *das, d_dataset ) ;
+    fdds->transfer_attributes( das ) ;
+#endif
+    return fdds;
+}
+
+#ifdef DAP4
+/**
+ * Build a DAP4 data response document body and write it to the output
+ * stream 'out'.
+ *
+ * @note The DAP2/3 methods have an optional 'with_mime_headers' parameter
+ * that triggers the generation of a complete HTTP response document. This
+ * method lacks that.
+ *
+ * @param out Write the response body here
+ * @param dds This DDS holds the variables to serialize
+ * @parma eval Use this instance of the CE evaluator to subset/sample the
+ * dataset
+ */
+void
+D4ResponseBuilder::send_dap4_data(ostream &out, DDS &dds, ConstraintEvaluator &eval)
+{
+    throw InternalErr(__FILE__, __LINE__, "ResponseBuilder::send_dap4_data: Not implemented");
+
+    // TODO
+    // Print the chunk offset info so that clients can skip the DMR and go
+    // directly to the data.
+
+    // Send constrained DMR
+    dds.print_dmr(out, !d_dap4ce.empty());
+
+    // Grab a stream that encodes for DAP4
+    D4StreamMarshaller m(out);
+
+    // TODO Write word order information
+
+    // Send all variables in the current projection (send_p()). In DAP4,
+    // all of the top-level variables are serialized with their checksums.
+    // Internal variables are not.
+    //
+    // TODO When Group support is added to libdap, this will need to be
+    // generalized so that all variables in the top-levels of all the
+    // groups will have checksums included in the response.
+    //
+    // TODO Switch to the DAP4 serialization method once it's written
+    for (DDS::Vars_iter i = dds.var_begin(); i != dds.var_end(); i++) {
+        if ((*i)->send_p()) {
+            DBG(cerr << "Sending " << (*i)->name() << endl);
+
+            m.reset_checksum();
+
+            // FIXME Replace with DAP4 call
+            (*i)->serialize(eval, dds, m, true);
+
+            m.put_checksum();
+        }
+    }
+
+}
+#endif // DAP4
+
+static const char *descrip[] = { "unknown", "dods_das", "dods_dds", "dods_data", "dods_error", "web_error", "dap4-ddx",
+        "dap4-data", "dap4-error", "dap4-data-ddx", "dods_ddx" };
+static const char *encoding[] = { "unknown", "deflate", "x-plain", "gzip", "binary" };
+
+/** Generate an HTTP 1.0 response header for a text document. This is used
+ when returning a serialized DAS or DDS object.
+
+ @note In Hyrax these headers are not used. Instead the front end of the
+ server will build the response headers
+
+ @param strm Write the MIME header to this stream.
+ @param type The type of this this response. Defaults to
+ application/octet-stream.
+ @param ver The version string; denotes the libdap implementation
+ version.
+ @param enc How is this response encoded? Can be plain or deflate or the
+ x_... versions of those. Default is x_plain.
+ @param last_modified The time to use for the Last-Modified header value.
+ Default is zero which means use the current time. */
+void D4ResponseBuilder::set_mime_text(ostream &strm, ObjectType type, EncodingType enc, const time_t last_modified,
+        const string &protocol) const
+{
+    strm << "HTTP/1.0 200 OK" << CRLF;
+
+    strm << "XDODS-Server: " << DVR<< CRLF;
+    strm << "XOPeNDAP-Server: " << DVR<< CRLF;
+
+    if (protocol == "")
+        strm << "XDAP: " << d_default_protocol << CRLF;
+    else
+        strm << "XDAP: " << protocol << CRLF;
+
+    const time_t t = time(0);
+    strm << "Date: " << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Last-Modified: ";
+    if (last_modified > 0)
+        strm << rfc822_date(last_modified).c_str() << CRLF;
+    else
+        strm << rfc822_date(t).c_str() << CRLF;
+
+    if (type == dods_ddx)
+        strm << "Content-Type: text/xml" << CRLF;
+    else
+        strm << "Content-Type: text/plain" << CRLF;
+
+    // Note that Content-Description is from RFC 2045 (MIME, pt 1), not 2616.
+    // jhrg 12/23/05
+    strm << "Content-Description: " << descrip[type] << CRLF;
+    if (type == dods_error) // don't cache our error responses.
+        strm << "Cache-Control: no-cache" << CRLF;
+    // Don't write a Content-Encoding header for x-plain since that breaks
+    // Netscape on NT. jhrg 3/23/97
+    if (enc != x_plain)
+        strm << "Content-Encoding: " << encoding[enc] << CRLF;
+    strm << CRLF;
+}
+
+/** Generate an HTTP 1.0 response header for a html document.
+
+ @param strm Write the MIME header to this stream.
+ @param type The type of this this response.
+ @param ver The version string; denotes the libdap implementation
+ version.
+ @param enc How is this response encoded? Can be plain or deflate or the
+ x_... versions of those. Default is x_plain.
+ @param last_modified The time to use for the Last-Modified header value.
+ Default is zero which means use the current time. */
+void D4ResponseBuilder::set_mime_html(ostream &strm, ObjectType type, EncodingType enc, const time_t last_modified,
+        const string &protocol) const
+{
+    strm << "HTTP/1.0 200 OK" << CRLF;
+
+    strm << "XDODS-Server: " << DVR<< CRLF;
+    strm << "XOPeNDAP-Server: " << DVR<< CRLF;
+
+    if (protocol == "")
+        strm << "XDAP: " << d_default_protocol << CRLF;
+    else
+        strm << "XDAP: " << protocol << CRLF;
+
+    const time_t t = time(0);
+    strm << "Date: " << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Last-Modified: ";
+    if (last_modified > 0)
+        strm << rfc822_date(last_modified).c_str() << CRLF;
+    else
+        strm << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Content-type: text/html" << CRLF;
+    // See note above about Content-Description header. jhrg 12/23/05
+    strm << "Content-Description: " << descrip[type] << CRLF;
+    if (type == dods_error) // don't cache our error responses.
+        strm << "Cache-Control: no-cache" << CRLF;
+    // Don't write a Content-Encoding header for x-plain since that breaks
+    // Netscape on NT. jhrg 3/23/97
+    if (enc != x_plain)
+        strm << "Content-Encoding: " << encoding[enc] << CRLF;
+    strm << CRLF;
+}
+
+/** Write an HTTP 1.0 response header for our binary response document (i.e.,
+ the DataDDS object).
+
+ @param strm Write the MIME header to this stream.
+ @param type The type of this this response. Defaults to
+ application/octet-stream.
+ @param ver The version string; denotes the libdap implementation
+ version.
+ @param enc How is this response encoded? Can be plain or deflate or the
+ x_... versions of those. Default is x_plain.
+ @param last_modified The time to use for the Last-Modified header value.
+ Default is zero which means use the current time.
+ */
+void D4ResponseBuilder::set_mime_binary(ostream &strm, ObjectType type, EncodingType enc, const time_t last_modified,
+        const string &protocol) const
+{
+    strm << "HTTP/1.0 200 OK" << CRLF;
+
+    strm << "XDODS-Server: " << DVR<< CRLF;
+    strm << "XOPeNDAP-Server: " << DVR<< CRLF;
+
+    if (protocol == "")
+        strm << "XDAP: " << d_default_protocol << CRLF;
+    else
+        strm << "XDAP: " << protocol << CRLF;
+
+    const time_t t = time(0);
+    strm << "Date: " << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Last-Modified: ";
+    if (last_modified > 0)
+        strm << rfc822_date(last_modified).c_str() << CRLF;
+    else
+        strm << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Content-Type: application/octet-stream" << CRLF;
+    strm << "Content-Description: " << descrip[type] << CRLF;
+    if (enc != x_plain)
+        strm << "Content-Encoding: " << encoding[enc] << CRLF;
+
+    strm << CRLF;
+}
+
+/** Build the initial headers for the DAP4 data response */
+
+void D4ResponseBuilder::set_mime_multipart(ostream &strm, const string &boundary, const string &start, ObjectType type, EncodingType enc,
+        const time_t last_modified, const string &protocol, const string &url) const
+{
+    strm << "HTTP/1.1 200 OK" << CRLF;
+
+    const time_t t = time(0);
+    strm << "Date: " << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Last-Modified: ";
+    if (last_modified > 0)
+        strm << rfc822_date(last_modified).c_str() << CRLF;
+    else
+        strm << rfc822_date(t).c_str() << CRLF;
+
+    strm << "Content-Type: multipart/related; boundary=" << boundary << "; start=\"<" << start
+            << ">\"; type=\"text/xml\"" << CRLF;
+
+    // data-ddx;"; removed as a result of the merge of the hyrax 1.8 release
+    // branch.
+    strm << "Content-Description: " << descrip[type] << ";";
+    if (!url.empty())
+        strm << " url=\"" << url << "\"" << CRLF;
+    else
+        strm << CRLF;
+
+    if (enc != x_plain)
+        strm << "Content-Encoding: " << encoding[enc] << CRLF;
+
+    if (protocol == "")
+        strm << "X-DAP: " << d_default_protocol << CRLF;
+    else
+        strm << "X-DAP: " << protocol << CRLF;
+
+    strm << "X-OPeNDAP-Server: " << DVR<< CRLF;
+
+    strm << CRLF;
+}
+
+void D4ResponseBuilder::set_mime_ddx_boundary(ostream &strm, const string &boundary, const string &cid) const
+{
+    strm << "--" << boundary << CRLF;
+    strm << "Content-Type: text/xml; charset=UTF-8" << CRLF;
+    strm << "Content-Transfer-Encoding: binary" << CRLF;
+    strm << "Content-Description: ddx" << CRLF;
+    strm << "Content-Id: <" << cid << ">" << CRLF;
+
+    strm << CRLF;
+}
+
+void D4ResponseBuilder::set_mime_data_boundary(ostream &strm, const string &boundary, const string &cid,
+        const string &endian, unsigned long long len) const
+{
+    strm << "--" << boundary << CRLF;
+    strm << "Content-Type: application/x-dap-" << endian << "-endian" << CRLF;
+    strm << "Content-Transfer-Encoding: binary" << CRLF;
+    strm << "Content-Description: data" << CRLF;
+    strm << "Content-Id: <" << cid << ">" << CRLF;
+    strm << "Content-Length: " << len << CRLF;
+
+    strm << CRLF;
+}
+
+/** Generate an HTTP 1.0 response header for an Error object.
+ @param strm Write the MIME header to this stream.
+ @param code HTTP 1.0 response code. Should be 400, ... 500, ...
+ @param reason Reason string of the HTTP 1.0 response header.
+ @param version The version string; denotes the DAP spec and implementation
+ version. */
+void D4ResponseBuilder::set_mime_error(ostream &strm, int code, const string &reason, const string &protocol) const
+{
+    strm << "HTTP/1.0 " << code << " " << reason.c_str() << CRLF;
+
+    strm << "XDODS-Server: " << DVR<< CRLF;
+    strm << "X-OPeNDAP-Server: " << DVR<< CRLF;
+
+    if (protocol == "")
+        strm << "X-DAP: " << d_default_protocol << CRLF;
+    else
+        strm << "X-DAP: " << protocol << CRLF;
+
+    const time_t t = time(0);
+    strm << "Date: " << rfc822_date(t).c_str() << CRLF;
+    strm << "Cache-Control: no-cache" << CRLF;
+    strm << CRLF;
+}
+
+} // namespace libdap
+
diff --git a/old/D4ResponseBuilder.h b/old/D4ResponseBuilder.h
new file mode 100644
index 0000000..49d2bea
--- /dev/null
+++ b/old/D4ResponseBuilder.h
@@ -0,0 +1,196 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2013 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#ifndef _d4response_builder_h
+#define _d4response_builder_h
+
+#include <string>
+#include <set>
+
+#if 0
+#ifndef _das_h
+#include "DAS.h"
+#endif
+
+#ifndef _dds_h
+#include "DDS.h"
+#endif
+#endif
+
+#ifndef constraint_evaluator_h
+#include "ConstraintEvaluator.h"
+#endif
+
+#ifndef _object_type_h
+#include "ObjectType.h"
+#endif
+
+#ifndef _encodingtype_h
+#include "EncodingType.h"
+#endif
+
+#include "escaping.h"
+
+namespace libdap
+{
+
+class DAPCache3;
+
+/**
+ * This class is used to build responses for/by the BES. This class replaces
+ * DODSFilter (although DODSFilter is still included in the library, its use
+ * is deprecated). and it does not have a provision for command line arguments.
+ * @author jhrg 1/28/2011
+ */
+
+class D4ResponseBuilder
+{
+public:
+    friend class ResponseBuilderTest;
+
+protected:
+    string d_dataset;  		/// Name of the dataset/database
+    string d_ce;  		    /// Constraint expression
+    string d_btp_func_ce;   /// The BTP functions, extracted from the CE
+    int d_timeout;  		/// Response timeout after N seconds
+    string d_default_protocol;	/// Version string for the library's default protocol version
+
+    DAPCache3 *d_cache;
+
+    void initialize();
+
+public:
+
+    /** Make an empty instance. Use the set_*() methods to load with needed
+        values. You must call at least set_dataset_name() or be requesting
+        version information. */
+    D4ResponseBuilder() {
+        initialize();
+    }
+
+    virtual ~D4ResponseBuilder();
+
+    /** Get the complete constraint expression. */
+    virtual string ce() const { return d_ce; }
+    /** Set the constraint expression to use for this response. */
+    virtual void set_ce(const string &ce) { d_ce = www2id(ce, "%", "%20"); }
+
+    virtual string get_btp_func_ce() const { return d_btp_func_ce; }
+    virtual void set_btp_func_ce(string _ce) { d_btp_func_ce = _ce; }
+
+    /** Get the dataset name - often a pathname to a file. */
+    virtual string dataset_name() const { return d_dataset; }
+    /** Set the dataset name, removing any escaping except spaces */
+    virtual void set_dataset_name(const string &ds) { d_dataset = www2id(ds, "%", "%20"); }
+
+    /** Set the time out for requests in seconds. Zero means no timeout */
+    void set_timeout(int t = 0) { d_timeout = t; }
+    /** Get the current request timeout value in seconds. */
+    int timeout() const { return d_timeout; }
+
+    virtual void establish_timeout(ostream &stream) const;
+    virtual void remove_timeout() const;
+
+    virtual void split_ce(ConstraintEvaluator &eval, const string &expr = "");
+    virtual bool is_valid(const string &cache_file_name);
+#if 0
+    virtual void send_das(ostream &out, DAS &das, bool with_mime_headers = true) const;
+    virtual void send_das(ostream &out, DDS &dds, ConstraintEvaluator &eval,
+                          bool constrained = false, bool with_mime_headers = true);
+#endif
+    virtual void send_dds(ostream &out, DDS &dds, ConstraintEvaluator &eval,
+                          bool constrained = false,  bool with_mime_headers = true);
+
+    virtual void dataset_constraint(ostream &out, DDS &dds, ConstraintEvaluator &eval, bool ce_eval = true);
+    virtual void send_data(ostream &data_stream, DDS &dds, ConstraintEvaluator &eval, bool with_mime_headers = true);
+
+    virtual void send_ddx(ostream &out, DDS &dds, ConstraintEvaluator &eval,
+                          bool with_mime_headers = true);
+
+    virtual void dataset_constraint_ddx(ostream &out, DDS & dds, ConstraintEvaluator & eval,
+                                   const string &boundary, const string &start,
+                                   bool ce_eval = true);
+
+    virtual void send_data_ddx(ostream &data_stream, DDS &dds, ConstraintEvaluator &eval,
+                           const string &start, const string &boundary,
+                           bool with_mime_headers = true);
+
+#ifdef DAP4
+    // DAP4 responses - but do not send the response MIME headers, just the
+    // response body.
+    virtual void send_dmr(ostream &out, DDS &dds, ConstraintEvaluator &eval);
+#endif // DAP4
+
+    virtual void cache_data_ddx(const string &cache_file_name, DDS &dds);
+    virtual void read_data_from_cache(FILE *data, DDS *fdds);
+    virtual DDS *get_cached_data_ddx(const string &cache_file_name, BaseTypeFactory *factory);
+
+    // This method is uses the above three and is used by send_das(), send_dds(), and send_data().
+    virtual DDS *read_cached_dataset(DDS &dds, ConstraintEvaluator & eval, string &cache_token);
+
+#ifdef DAP4
+    // These functions are used both by the methods above and by other code
+
+    virtual void send_dap4_data(ostream &data_stream, DDS &dds, ConstraintEvaluator &eval);
+#endif // DAP4
+
+    void set_mime_ddx_boundary(ostream &out, const string &boundary,
+        const string &start) const;
+
+    void set_mime_data_boundary(ostream &out, const string &boundary,
+    const string &cid, const string &endian, unsigned long long len) const;
+
+    // These functions are used both by the methods above and by other code.
+    // However, Hyrax uses the OLFS to send the HTTP headers, so these functions
+    // are never used in Hyrax. The BES may uses these in other contexts.
+
+    void set_mime_text(ostream &out, ObjectType type = unknown_type,
+                       EncodingType enc = x_plain,
+                       const time_t last_modified = 0,
+                       const string &protocol = "") const;
+
+    void set_mime_html(ostream &out, ObjectType type = unknown_type,
+                       EncodingType enc = x_plain,
+                       const time_t last_modified = 0,
+                       const string &protocol = "") const;
+
+    void set_mime_binary(ostream &out, ObjectType type = unknown_type,
+                         EncodingType enc = x_plain,
+                         const time_t last_modified = 0,
+                         const string &protocol = "") const;
+
+    void set_mime_multipart(ostream &out, const string &boundary,
+    	const string &start, ObjectType type = unknown_type, EncodingType enc = x_plain,
+    	const time_t last_modified = 0, const string &protocol = "",
+    	const string &url = "") const;
+
+    void set_mime_error(ostream &out, int code = 404,
+                        const string &reason = "Dataset not found",
+                        const string &protocol = "") const;
+};
+
+} // namespace libdap
+
+#endif // _response_builder_h
diff --git a/parser-util.cc b/parser-util.cc
index 4e4d5a5..9297229 100644
--- a/parser-util.cc
+++ b/parser-util.cc
@@ -142,7 +142,7 @@ parse_error(const char *msg, const int line_num, const char *context)
     else
         oss += (string) "\n" + msg + (string) "\n";
 
-    throw Error(oss);
+    throw Error(malformed_expr, oss);
 }
 
 // context comes from the parser and will always be a char * unless the
@@ -177,6 +177,16 @@ bool is_keyword(string id, const string & keyword)
     return id == keyword;
 }
 
+/** Check to see if <tt>val</tt> is a valid byte value. If not,
+    generate an error message using <tt>parser_error()</tt>. There are
+    two versions of <tt>check_byte()</tt>, one which calls
+    <tt>parser_error()</tt> and prints an error message to stderr an
+    one which calls <tt>parser_error()</tt> and generates and Error
+    object.
+
+    @return Returns: TRUE (1) if <i>val</i> is a byte value, FALSE (0) otherwise.
+    @brief Is the value a valid byte?
+    */
 int check_byte(const char *val)
 {
     char *ptr;
@@ -241,7 +251,6 @@ int check_int32(const char *val)
     errno = 0;
     long v = strtol(val, &ptr, 0);      // `0' --> use val to determine base
 
-
     if ((v == 0 && val == ptr) || *ptr != '\0') {
         return FALSE;
     }
@@ -256,10 +265,10 @@ int check_int32(const char *val)
     // separate to highlight the test. On 64-bit linux boxes 'long' may be
     // 64-bits and so 'v' can hold more than a DODS_INT32. jhrg 3/23/10
     else if (v > DODS_INT_MAX || v < DODS_INT_MIN) {
-	return FALSE;
+        return FALSE;
     }
     else {
-	return TRUE;
+        return TRUE;
     }
 }
 
@@ -298,7 +307,38 @@ int check_uint32(const char *val)
 	}
 }
 
-unsigned long long get_ull(const char *val)
+int check_int64(const char *val)
+{
+    char *ptr;
+    errno = 0;
+    long long v = strtoll(val, &ptr, 0);      // `0' --> use val to determine base
+
+    if ((v == 0 && val == ptr) || *ptr != '\0') {
+        return FALSE;
+    }
+
+    // We need to check errno since strtol return clamps on overflow so the
+    // check against the DODS values below will always pass, even for out of
+    // bounds values in the string. mjohnson 7/20/09
+    if (errno == ERANGE) {
+        return FALSE;
+    }
+#if 0
+    // This could be combined with the above, or course, but I'm making it
+    // separate to highlight the test. On 64-bit linux boxes 'long' may be
+    // 64-bits and so 'v' can hold more than a DODS_INT32. jhrg 3/23/10
+    //
+    // Removed - Coverity says it can never be false. Makes sense. jhrg 5/10/16
+    else if (v <= DODS_LLONG_MAX && v >= DODS_LLONG_MIN) {
+        return FALSE;
+    }
+#endif
+    else {
+        return TRUE;
+    }
+}
+
+int check_uint64(const char *val)
 {
   // Eat whitespace and check for an initial '-' sign...
   // strtoul allows an initial minus. mjohnson
@@ -307,8 +347,7 @@ unsigned long long get_ull(const char *val)
          c++;
     }
     if (c && (*c == '-')) {
-    	throw Error("The value '" + string(val) + "' is not a valid array index.");
-        // return FALSE;
+        return FALSE;
     }
 
     char *ptr;
@@ -316,24 +355,20 @@ unsigned long long get_ull(const char *val)
     unsigned long long v = strtoull(val, &ptr, 0);
 
     if ((v == 0 && val == ptr) || *ptr != '\0') {
-    	throw Error("The value '" + string(val) + "' contains extra characters.");
-        //return FALSE;
+        return FALSE;
     }
 
     if (errno == ERANGE) {
-    	throw Error("The value '" + string(val) + "' is out of range.");
-    	// return FALSE;
+        return FALSE;
     }
-    else if (v > DODS_MAX_ARRAY_INDEX) { // 2^61
-    	throw Error("The value '" + string(val) + "' is out of range.");
-    	// return FALSE;
+    else if (v > DODS_ULLONG_MAX) { // 2^61
+        return FALSE;
     }
-	else {
-		return v;
+    else {
+        return v;
     }
 }
 
-
 // Check first for system errors (like numbers so small they convert
 // (erroneously) to zero. Then make sure that the value is within
 // limits.
@@ -354,7 +389,8 @@ int check_float32(const char *val)
         << ", errno: " << errno << ", val==ptr: " << (val == ptr) << endl);
 
     if (errno == ERANGE || (v == 0.0 && val == ptr) || *ptr != '\0')
-	return FALSE;
+        return FALSE;
+
 #if 0
     if ((v == 0.0 && (val == ptr || errno == HUGE_VAL || errno == ERANGE))
         || *ptr != '\0') {
@@ -404,6 +440,97 @@ int check_float64(const char *val)
     return TRUE;
 }
 
+long long get_int64(const char *val)
+{
+    char *ptr;
+    errno = 0;
+    long long v = strtoll(val, &ptr, 0);      // `0' --> use val to determine base
+
+    if ((v == 0 && val == ptr) || *ptr != '\0') {
+        throw Error("The value '" + string(val) + "' contains extra characters.");
+    }
+
+    // We need to check errno since strtol return clamps on overflow so the
+    // check against the DODS values below will always pass, even for out of
+    // bounds values in the string. mjohnson 7/20/09
+    if (errno == ERANGE) {
+        throw Error("The value '" + string(val) + "' is out of range.");
+    }
+
+#if 0
+    // This could be combined with the above, or course, but I'm making it
+    // separate to highlight the test. On 64-bit linux boxes 'long' may be
+    // 64-bits and so 'v' can hold more than a DODS_INT32. jhrg 3/23/10
+    //
+    // Removed because coverity flags it as useless, which it is until we
+    // have 128-bit ints... jhrg 5/9/16
+    else if (v > DODS_LLONG_MAX || v < DODS_LLONG_MIN) {
+        throw Error("The value '" + string(val) + "' is out of range.");
+    }
+#endif
+
+    else {
+        return v;
+    }
+}
+
+unsigned long long get_uint64(const char *val)
+{
+    // Eat whitespace and check for an initial '-' sign...
+    // strtoul allows an initial minus. mjohnson
+    const char* c = val;
+    while (c && isspace(*c)) {
+         c++;
+    }
+    if (c && (*c == '-')) {
+        throw Error("The value '" + string(val) + "' is not a valid array index.");
+    }
+
+    char *ptr;
+    errno = 0;
+    unsigned long long v = strtoull(val, &ptr, 0);
+
+    if ((v == 0 && val == ptr) || *ptr != '\0') {
+        throw Error("The value '" + string(val) + "' contains extra characters.");
+    }
+
+    if (errno == ERANGE) {
+        throw Error("The value '" + string(val) + "' is out of range.");
+    }
+#if 0
+    // Coverity; see above. jhrg 5/9/16
+    else if (v > DODS_MAX_ARRAY_INDEX) { // 2^61
+        throw Error("The value '" + string(val) + "' is out of range.");
+    }
+#endif
+    else {
+        return v;
+    }
+}
+
+double get_float64(const char *val)
+{
+    DBG(cerr << "val: " << val << endl);
+    char *ptr;
+    errno = 0;                  // Clear previous value. 5/21/2001 jhrg
+
+#ifdef WIN32
+    double v = w32strtod(val, &ptr);
+#else
+    double v = strtod(val, &ptr);
+#endif
+
+    if (errno == ERANGE || (v == 0.0 && val == ptr) || *ptr != '\0')
+        throw Error("The value '" + string(val) + "' is out of range.");;
+
+    DBG(cerr << "fabs(" << val << ") = " << fabs(v) << endl);
+    double abs_val = fabs(v);
+    if (abs_val > DODS_DBL_MAX || (abs_val != 0.0 && abs_val < DODS_DBL_MIN))
+        throw Error("The value '" + string(val) + "' is out of range.");;
+
+    return v;
+}
+
 /*
   Maybe someday we will really check the Urls to see if they are valid...
 */
diff --git a/parser-util.h b/parser-util.h
index 80d246f..277cbcc 100644
--- a/parser-util.h
+++ b/parser-util.h
@@ -47,46 +47,39 @@ void save_str(string &dst, const char *src, const int);
 
 bool is_keyword(string id, const string &keyword);
 
-/** Check to see if <tt>val</tt> is a valid byte value. If not,
-    generate an error message using <tt>parser_error()</tt>. There are
-    two versions of <tt>check_byte()</tt>, one which calls
-    <tt>parser_error()</tt> and prints an error message to stderr an
-    one which calls <tt>parser_error()</tt> and generates and Error
-    object.
-
-    @return Returns: True if <i>val</i> is a byte value, False otherwise.
-    @brief Is the value a valid byte?
-    */
-
+/**
+ * @defgroup check_type
+ * @{
+ * @brief Can the given string be converted into a byte, ...?
+ */
 int check_byte(const char *val);
-
-/** Like <tt>check_byte()</tt> but for 32-bit integers
-    (<tt>check_uint()</tt> is for unsigned integers).
-
-
-    @brief Is the value a valid integer?
-    */
-
 int check_int16(const char *val);
 int check_uint16(const char *val);
 int check_int32(const char *val);
 int check_uint32(const char *val);
-
-unsigned long long get_ull(const char *val);
-
-/** Like <tt>check_byte()</tt> but for 64-bit float values.
-
-    @brief Is the value a valid float? */
+int check_int64(const char *val);
+int check_uint64(const char *val);
 
 int check_float32(const char *val);
 int check_float64(const char *val);
 
 /** Currently this function always returns true.
-
     @brief Is the value a valid URL? */
-
 int check_url(const char *val);
 
+/** @} */
+
+/**
+ * @defgroup get_type
+ * @{
+ * @brief Convert the string to a value; throw if the conversion fails.
+ */
+long long get_int64(const char *val);
+unsigned long long get_uint64(const char *val);
+double get_float64(const char *val);
+
+/** @} */
+
 } // namespace libdap
 
 #endif /* PARSER_UTIL_H_ */
diff --git a/regex_test.cc b/regex_test.cc
new file mode 100644
index 0000000..5d6e5d7
--- /dev/null
+++ b/regex_test.cc
@@ -0,0 +1,6 @@
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include <cstdio>
+#include <regex.h>
+int main () { printf ("%d\n", 8 * sizeof (regoff_t)); return 0; }
diff --git a/tests/.gitignore b/tests/.gitignore
new file mode 100644
index 0000000..a8a0dce
--- /dev/null
+++ b/tests/.gitignore
@@ -0,0 +1 @@
+*.bin
diff --git a/tests/DASTest b/tests/DASTest
deleted file mode 100755
index cfea269..0000000
--- a/tests/DASTest
+++ /dev/null
@@ -1,3783 +0,0 @@
-#! /bin/sh
-# Generated from DASTest.at by GNU Autoconf 2.69.
-#
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
-#
-# This test suite is free software; the Free Software Foundation gives
-# unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# How were we run?
-at_cli_args="$@"
-
-
-# Not all shells have the 'times' builtin; the subshell is needed to make
-# sure we discard the 'times: not found' message from the shell.
-at_times_p=false
-(times) >/dev/null 2>&1 && at_times_p=:
-
-# CLI Arguments to pass to the debugging scripts.
-at_debug_args=
-# -e sets to true
-at_errexit_p=false
-# Shall we be verbose?  ':' means no, empty means yes.
-at_verbose=:
-at_quiet=
-# Running several jobs in parallel, 0 means as many as test groups.
-at_jobs=1
-at_traceon=:
-at_trace_echo=:
-at_check_filter_trace=:
-
-# Shall we keep the debug scripts?  Must be `:' when the suite is
-# run by a debug script, so that the script doesn't remove itself.
-at_debug_p=false
-# Display help message?
-at_help_p=false
-# Display the version message?
-at_version_p=false
-# List test groups?
-at_list_p=false
-# --clean
-at_clean=false
-# Test groups to run
-at_groups=
-# Whether to rerun failed tests.
-at_recheck=
-# Whether a write failure occurred
-at_write_fail=0
-
-# The directory we run the suite in.  Default to . if no -C option.
-at_dir=`pwd`
-# An absolute reference to this testsuite script.
-case $as_myself in
-  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
-  * ) at_myself=$at_dir/$as_myself ;;
-esac
-# Whether -C is in effect.
-at_change_dir=false
-
-# Whether to enable colored test results.
-at_color=no
-# List of the tested programs.
-at_tested=''
-# As many question marks as there are digits in the last test group number.
-# Used to normalize the test group numbers so that `ls' lists them in
-# numerical order.
-at_format='??'
-# Description of all the test groups.
-at_help_all="1;DASTest.at:31;DAS \$abs_srcdir/das-testsuite/bad_value_test.1.das;das;
-2;DASTest.at:32;DAS \$abs_srcdir/das-testsuite/das.das;das;
-3;DASTest.at:33;DAS \$abs_srcdir/das-testsuite/special.test.das;das;
-4;DASTest.at:34;DAS \$abs_srcdir/das-testsuite/special.test.hdf.das;das;
-5;DASTest.at:35;DAS \$abs_srcdir/das-testsuite/test.1.das;das;
-6;DASTest.at:36;DAS \$abs_srcdir/das-testsuite/test.11.das;das;
-7;DASTest.at:37;DAS \$abs_srcdir/das-testsuite/test.12.das;das;
-8;DASTest.at:38;DAS \$abs_srcdir/das-testsuite/test.13.das;das;
-9;DASTest.at:39;DAS \$abs_srcdir/das-testsuite/test.14.das;das;
-10;DASTest.at:40;DAS \$abs_srcdir/das-testsuite/test.15.das;das;
-11;DASTest.at:41;DAS \$abs_srcdir/das-testsuite/test.16.das;das;
-12;DASTest.at:42;DAS \$abs_srcdir/das-testsuite/test.17.das;das;
-13;DASTest.at:43;DAS \$abs_srcdir/das-testsuite/test.18.das;das;
-14;DASTest.at:44;DAS \$abs_srcdir/das-testsuite/test.19.das;das;
-15;DASTest.at:45;DAS \$abs_srcdir/das-testsuite/test.1a.das;das;
-16;DASTest.at:46;DAS \$abs_srcdir/das-testsuite/test.2.das;das;
-17;DASTest.at:47;DAS \$abs_srcdir/das-testsuite/test.20.das;das;
-18;DASTest.at:48;DAS \$abs_srcdir/das-testsuite/test.21.das;das;
-19;DASTest.at:49;DAS \$abs_srcdir/das-testsuite/test.22.das;das;
-20;DASTest.at:50;DAS \$abs_srcdir/das-testsuite/test.23.das;das;
-21;DASTest.at:51;DAS \$abs_srcdir/das-testsuite/test.24.das;das;
-22;DASTest.at:52;DAS \$abs_srcdir/das-testsuite/test.25.das;das;
-23;DASTest.at:53;DAS \$abs_srcdir/das-testsuite/test.26.das;das;
-24;DASTest.at:54;DAS \$abs_srcdir/das-testsuite/test.27.das;das;
-25;DASTest.at:55;DAS \$abs_srcdir/das-testsuite/test.28.das;das;
-26;DASTest.at:56;DAS \$abs_srcdir/das-testsuite/test.29.das;das;
-27;DASTest.at:57;DAS \$abs_srcdir/das-testsuite/test.3.das;das;
-28;DASTest.at:58;DAS \$abs_srcdir/das-testsuite/test.3.Z.das;das;
-29;DASTest.at:59;DAS \$abs_srcdir/das-testsuite/test.30.das;das;
-30;DASTest.at:60;DAS \$abs_srcdir/das-testsuite/test.31.das;das;
-31;DASTest.at:61;DAS \$abs_srcdir/das-testsuite/test.32.das;das;
-32;DASTest.at:62;DAS \$abs_srcdir/das-testsuite/test.33.das;das;
-33;DASTest.at:63;DAS \$abs_srcdir/das-testsuite/test.34.das;das;
-34;DASTest.at:64;DAS \$abs_srcdir/das-testsuite/test.35.das;das;
-35;DASTest.at:65;DAS \$abs_srcdir/das-testsuite/test.4.das;das;
-36;DASTest.at:66;DAS \$abs_srcdir/das-testsuite/test.5.das;das;
-37;DASTest.at:67;DAS \$abs_srcdir/das-testsuite/test.6.das;das;
-38;DASTest.at:68;DAS \$abs_srcdir/das-testsuite/test.7.das;das;
-39;DASTest.at:69;DAS \$abs_srcdir/das-testsuite/test.8.das;das;
-40;DASTest.at:70;DAS \$abs_srcdir/das-testsuite/test.9.das;das;
-"
-# List of the all the test groups.
-at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
-
-# at_fn_validate_ranges NAME...
-# -----------------------------
-# Validate and normalize the test group number contained in each variable
-# NAME. Leading zeroes are treated as decimal.
-at_fn_validate_ranges ()
-{
-  for at_grp
-  do
-    eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 40; then
-      $as_echo "invalid test group: $at_value" >&2
-      exit 1
-    fi
-    case $at_value in
-      0*) # We want to treat leading 0 as decimal, like expr and test, but
-	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
-	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
-	  # expr fork, but it is not worth the effort to determine if the
-	  # shell supports XSI when the user can just avoid leading 0.
-	  eval $at_grp='`expr $at_value + 0`' ;;
-    esac
-  done
-}
-
-at_prev=
-for at_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$at_prev"; then
-    at_option=$at_prev=$at_option
-    at_prev=
-  fi
-
-  case $at_option in
-  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
-  *)    at_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $at_option in
-    --help | -h )
-	at_help_p=:
-	;;
-
-    --list | -l )
-	at_list_p=:
-	;;
-
-    --version | -V )
-	at_version_p=:
-	;;
-
-    --clean | -c )
-	at_clean=:
-	;;
-
-    --color )
-	at_color=always
-	;;
-    --color=* )
-	case $at_optarg in
-	no | never | none) at_color=never ;;
-	auto | tty | if-tty) at_color=auto ;;
-	always | yes | force) at_color=always ;;
-	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
-	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
-	esac
-	;;
-
-    --debug | -d )
-	at_debug_p=:
-	;;
-
-    --errexit | -e )
-	at_debug_p=:
-	at_errexit_p=:
-	;;
-
-    --verbose | -v )
-	at_verbose=; at_quiet=:
-	;;
-
-    --trace | -x )
-	at_traceon='set -x'
-	at_trace_echo=echo
-	at_check_filter_trace=at_fn_filter_trace
-	;;
-
-    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
-	at_fn_validate_ranges at_option
-	as_fn_append at_groups "$at_option$as_nl"
-	;;
-
-    # Ranges
-    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
-	at_range_start=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_start
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,$p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '1,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
-    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
-    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`expr $at_option : '\(.*\)-'`
-	at_range_end=`expr $at_option : '.*-\(.*\)'`
-	if test $at_range_start -gt $at_range_end; then
-	  at_tmp=$at_range_end
-	  at_range_end=$at_range_start
-	  at_range_start=$at_tmp
-	fi
-	at_fn_validate_ranges at_range_start at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    # Directory selection.
-    --directory | -C )
-	at_prev=--directory
-	;;
-    --directory=* )
-	at_change_dir=:
-	at_dir=$at_optarg
-	if test x- = "x$at_dir" ; then
-	  at_dir=./-
-	fi
-	;;
-
-    # Parallel execution.
-    --jobs | -j )
-	at_jobs=0
-	;;
-    --jobs=* | -j[0-9]* )
-	if test -n "$at_optarg"; then
-	  at_jobs=$at_optarg
-	else
-	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
-	fi
-	case $at_jobs in *[!0-9]*)
-	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
-	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
-	esac
-	;;
-
-    # Keywords.
-    --keywords | -k )
-	at_prev=--keywords
-	;;
-    --keywords=* )
-	at_groups_selected=$at_help_all
-	at_save_IFS=$IFS
-	IFS=,
-	set X $at_optarg
-	shift
-	IFS=$at_save_IFS
-	for at_keyword
-	do
-	  at_invert=
-	  case $at_keyword in
-	  '!'*)
-	    at_invert="-v"
-	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
-	    ;;
-	  esac
-	  # It is on purpose that we match the test group titles too.
-	  at_groups_selected=`$as_echo "$at_groups_selected" |
-	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
-	done
-	# Smash the keywords.
-	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
-	as_fn_append at_groups "$at_groups_selected$as_nl"
-	;;
-    --recheck)
-	at_recheck=:
-	;;
-
-    *=*)
-	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-	# Reject names that are not valid shell variable names.
-	case $at_envvar in
-	  '' | [0-9]* | *[!_$as_cr_alnum]* )
-	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
-	esac
-	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-	# Export now, but save eval for later and for debug scripts.
-	export $at_envvar
-	as_fn_append at_debug_args " $at_envvar='$at_value'"
-	;;
-
-     *) $as_echo "$as_me: invalid option: $at_option" >&2
-	$as_echo "Try \`$0 --help' for more information." >&2
-	exit 1
-	;;
-  esac
-done
-
-# Verify our last option didn't require an argument
-if test -n "$at_prev"; then :
-  as_fn_error $? "\`$at_prev' requires an argument"
-fi
-
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-
-# Selected test groups.
-if test -z "$at_groups$at_recheck"; then
-  at_groups=$at_groups_all
-else
-  if test -n "$at_recheck" && test -r "$at_suite_log"; then
-    at_oldfails=`sed -n '
-      /^Failed tests:$/,/^Skipped tests:$/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^Unexpected passes:$/,/^## Detailed failed tests/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^## Detailed failed tests/q
-      ' "$at_suite_log"`
-    as_fn_append at_groups "$at_oldfails$as_nl"
-  fi
-  # Sort the tests, removing duplicates.
-  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
-fi
-
-if test x"$at_color" = xalways \
-   || { test x"$at_color" = xauto && test -t 1; }; then
-  at_red=`printf '\033[0;31m'`
-  at_grn=`printf '\033[0;32m'`
-  at_lgn=`printf '\033[1;32m'`
-  at_blu=`printf '\033[1;34m'`
-  at_std=`printf '\033[m'`
-else
-  at_red= at_grn= at_lgn= at_blu= at_std=
-fi
-
-# Help message.
-if $at_help_p; then
-  cat <<_ATEOF || at_write_fail=1
-Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
-
-Run all the tests, or the selected TESTS, given by numeric ranges, and
-save a detailed log file.  Upon failure, create debugging scripts.
-
-Do not change environment variables directly.  Instead, set them via
-command line arguments.  Set \`AUTOTEST_PATH' to select the executables
-to exercise.  Each relative directory is expanded as build and source
-directories relative to the top level of this distribution.
-E.g., from within the build directory /tmp/foo-1.0, invoking this:
-
-  $ $0 AUTOTEST_PATH=bin
-
-is equivalent to the following, assuming the source directory is /src/foo-1.0:
-
-  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Operation modes:
-  -h, --help     print the help message, then exit
-  -V, --version  print version number, then exit
-  -c, --clean    remove all the files this test suite might create and exit
-  -l, --list     describes all the tests, or the selected TESTS
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Execution tuning:
-  -C, --directory=DIR
-                 change to directory DIR before starting
-      --color[=never|auto|always]
-                 enable colored test results on terminal, or always
-  -j, --jobs[=N]
-                 Allow N jobs at once; infinite jobs with no arg (default 1)
-  -k, --keywords=KEYWORDS
-                 select the tests matching all the comma-separated KEYWORDS
-                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
-      --recheck  select all tests that failed or passed unexpectedly last time
-  -e, --errexit  abort as soon as a test fails; implies --debug
-  -v, --verbose  force more detailed output
-                 default for debugging scripts
-  -d, --debug    inhibit clean up and top-level logging
-                 default for debugging scripts
-  -x, --trace    enable tests shell tracing
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Report bugs to <opendap-tech at opendap.org>.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# List of tests.
-if $at_list_p; then
-  cat <<_ATEOF || at_write_fail=1
-libdap 3.15.1 test suite: das-test test groups:
-
- NUM: FILE-NAME:LINE     TEST-GROUP-NAME
-      KEYWORDS
-
-_ATEOF
-  # Pass an empty line as separator between selected groups and help.
-  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
-    awk 'NF == 1 && FS != ";" {
-	   selected[$ 1] = 1
-	   next
-	 }
-	 /^$/ { FS = ";" }
-	 NF > 0 {
-	   if (selected[$ 1]) {
-	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
-	     if ($ 4) {
-	       lmax = 79
-	       indent = "     "
-	       line = indent
-	       len = length (line)
-	       n = split ($ 4, a, " ")
-	       for (i = 1; i <= n; i++) {
-		 l = length (a[i]) + 1
-		 if (i > 1 && len + l > lmax) {
-		   print line
-		   line = indent " " a[i]
-		   len = length (line)
-		 } else {
-		   line = line " " a[i]
-		   len += l
-		 }
-	       }
-	       if (n)
-		 print line
-	     }
-	   }
-	 }' || at_write_fail=1
-  exit $at_write_fail
-fi
-if $at_version_p; then
-  $as_echo "$as_me (libdap 3.15.1)" &&
-  cat <<\_ATEOF || at_write_fail=1
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This test suite is free software; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# Should we print banners?  Yes if more than one test is run.
-case $at_groups in #(
-  *$as_nl* )
-      at_print_banners=: ;; #(
-  * ) at_print_banners=false ;;
-esac
-# Text for banner N, set to a single space once printed.
-
-# Take any -C into account.
-if $at_change_dir ; then
-  test x != "x$at_dir" && cd "$at_dir" \
-    || as_fn_error $? "unable to change directory"
-  at_dir=`pwd`
-fi
-
-# Load the config files for any default variable assignments.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || as_fn_error $? "invalid content: $at_file"
-done
-
-# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
-: "${at_top_build_prefix=$at_top_builddir}"
-
-# Perform any assignments requested during argument parsing.
-eval "$at_debug_args"
-
-# atconfig delivers names relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir_var in srcdir top_srcdir top_build_prefix
-  do
-    eval at_val=\$at_$at_dir_var
-    case $at_val in
-      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
-      *) at_prefix=../../ ;;
-    esac
-    eval "$at_dir_var=\$at_prefix\$at_val"
-  done
-fi
-
-## -------------------- ##
-## Directory structure. ##
-## -------------------- ##
-
-# This is the set of directories and files used by this script
-# (non-literals are capitalized):
-#
-# TESTSUITE         - the testsuite
-# TESTSUITE.log     - summarizes the complete testsuite run
-# TESTSUITE.dir/    - created during a run, remains after -d or failed test
-# + at-groups/      - during a run: status of all groups in run
-# | + NNN/          - during a run: meta-data about test group NNN
-# | | + check-line  - location (source file and line) of current AT_CHECK
-# | | + status      - exit status of current AT_CHECK
-# | | + stdout      - stdout of current AT_CHECK
-# | | + stder1      - stderr, including trace
-# | | + stderr      - stderr, with trace filtered out
-# | | + test-source - portion of testsuite that defines group
-# | | + times       - timestamps for computing duration
-# | | + pass        - created if group passed
-# | | + xpass       - created if group xpassed
-# | | + fail        - created if group failed
-# | | + xfail       - created if group xfailed
-# | | + skip        - created if group skipped
-# + at-stop         - during a run: end the run if this file exists
-# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
-# + 0..NNN/         - created for each group NNN, remains after -d or failed test
-# | + TESTSUITE.log - summarizes the group results
-# | + ...           - files created during the group
-
-# The directory the whole suite works in.
-# Should be absolute to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite ($at_dir might have changed since earlier).
-at_suite_log=$at_dir/$as_me.log
-# The directory containing helper files per test group.
-at_helper_dir=$at_suite_dir/at-groups
-# Stop file: if it exists, do not start new jobs.
-at_stop_file=$at_suite_dir/at-stop
-# The fifo used for the job dispatcher.
-at_job_fifo=$at_suite_dir/at-job-fifo
-
-if $at_clean; then
-  test -d "$at_suite_dir" &&
-    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-  rm -f -r "$at_suite_dir" "$at_suite_log"
-  exit $?
-fi
-
-# Don't take risks: use only absolute directories in PATH.
-#
-# For stand-alone test suites (ie. atconfig was not found),
-# AUTOTEST_PATH is relative to `.'.
-#
-# For embedded test suites, AUTOTEST_PATH is relative to the top level
-# of the package.  Then expand it into build/src parts, since users
-# may create executables in both places.
-AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
-at_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $AUTOTEST_PATH $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
-case $as_dir in
-  [\\/]* | ?:[\\/]* )
-    as_fn_append at_path "$as_dir"
-    ;;
-  * )
-    if test -z "$at_top_build_prefix"; then
-      # Stand-alone test suite.
-      as_fn_append at_path "$as_dir"
-    else
-      # Embedded test suite.
-      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
-      as_fn_append at_path "$at_top_srcdir/$as_dir"
-    fi
-    ;;
-esac
-  done
-IFS=$as_save_IFS
-
-
-# Now build and simplify PATH.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-at_new_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $at_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -d "$as_dir" || continue
-case $as_dir in
-  [\\/]* | ?:[\\/]* ) ;;
-  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
-esac
-case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
-  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
-  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
-esac
-  done
-IFS=$as_save_IFS
-
-PATH=$at_new_path
-export PATH
-
-# Setting up the FDs.
-
-
-
-# 5 is the log file.  Not to be overwritten if `-d'.
-if $at_debug_p; then
-  at_suite_log=/dev/null
-else
-  : >"$at_suite_log"
-fi
-exec 5>>"$at_suite_log"
-
-# Banners and logs.
-$as_echo "## ----------------------------------- ##
-## libdap 3.15.1 test suite: das-test. ##
-## ----------------------------------- ##"
-{
-  $as_echo "## ----------------------------------- ##
-## libdap 3.15.1 test suite: das-test. ##
-## ----------------------------------- ##"
-  echo
-
-  $as_echo "$as_me: command line was:"
-  $as_echo "  \$ $0 $at_cli_args"
-  echo
-
-  # If ChangeLog exists, list a few lines in case it might help determining
-  # the exact version.
-  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
-    $as_echo "## ---------- ##
-## ChangeLog. ##
-## ---------- ##"
-    echo
-    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
-    echo
-  fi
-
-  {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-}
-  echo
-
-  # Contents of the config files.
-  for at_file in atconfig atlocal
-  do
-    test -r $at_file || continue
-    $as_echo "$as_me: $at_file:"
-    sed 's/^/| /' $at_file
-    echo
-  done
-} >&5
-
-
-## ------------------------- ##
-## Autotest shell functions. ##
-## ------------------------- ##
-
-# at_fn_banner NUMBER
-# -------------------
-# Output banner NUMBER, provided the testsuite is running multiple groups and
-# this particular banner has not yet been printed.
-at_fn_banner ()
-{
-  $at_print_banners || return 0
-  eval at_banner_text=\$at_banner_text_$1
-  test "x$at_banner_text" = "x " && return 0
-  eval "at_banner_text_$1=\" \""
-  if test -z "$at_banner_text"; then
-    $at_first || echo
-  else
-    $as_echo "$as_nl$at_banner_text$as_nl"
-  fi
-} # at_fn_banner
-
-# at_fn_check_prepare_notrace REASON LINE
-# ---------------------------------------
-# Perform AT_CHECK preparations for the command at LINE for an untraceable
-# command; REASON is the reason for disabling tracing.
-at_fn_check_prepare_notrace ()
-{
-  $at_trace_echo "Not enabling shell tracing (command contains $1)"
-  $as_echo "$2" >"$at_check_line_file"
-  at_check_trace=: at_check_filter=:
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_trace LINE
-# ------------------------------
-# Perform AT_CHECK preparations for the command at LINE for a traceable
-# command.
-at_fn_check_prepare_trace ()
-{
-  $as_echo "$1" >"$at_check_line_file"
-  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_dynamic COMMAND LINE
-# ----------------------------------------
-# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
-# preparation function.
-at_fn_check_prepare_dynamic ()
-{
-  case $1 in
-    *$as_nl*)
-      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
-    *)
-      at_fn_check_prepare_trace "$2" ;;
-  esac
-}
-
-# at_fn_filter_trace
-# ------------------
-# Remove the lines in the file "$at_stderr" generated by "set -x" and print
-# them to stderr.
-at_fn_filter_trace ()
-{
-  mv "$at_stderr" "$at_stder1"
-  grep '^ *+' "$at_stder1" >&2
-  grep -v '^ *+' "$at_stder1" >"$at_stderr"
-}
-
-# at_fn_log_failure FILE-LIST
-# ---------------------------
-# Copy the files in the list on stdout with a "> " prefix, and exit the shell
-# with a failure exit code.
-at_fn_log_failure ()
-{
-  for file
-    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
-  echo 1 > "$at_status_file"
-  exit 1
-}
-
-# at_fn_check_skip EXIT-CODE LINE
-# -------------------------------
-# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
-# the test group subshell with that same exit code. Use LINE in any report
-# about test failure.
-at_fn_check_skip ()
-{
-  case $1 in
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$2: hard failure"; exit 99;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-  esac
-}
-
-# at_fn_check_status EXPECTED EXIT-CODE LINE
-# ------------------------------------------
-# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
-# Otherwise, if it is 77 or 99, exit the test group subshell with that same
-# exit code; if it is anything else print an error message referring to LINE,
-# and fail the test.
-at_fn_check_status ()
-{
-  case $2 in
-    $1 ) ;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$3: hard failure"; exit 99;;
-    *) $as_echo "$3: exit code was $2, expected $1"
-      at_failed=:;;
-  esac
-}
-
-# at_fn_diff_devnull FILE
-# -----------------------
-# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
-# invocations.
-at_fn_diff_devnull ()
-{
-  test -s "$1" || return 0
-  $at_diff "$at_devnull" "$1"
-}
-
-# at_fn_test NUMBER
-# -----------------
-# Parse out test NUMBER from the tail of this file.
-at_fn_test ()
-{
-  eval at_sed=\$at_sed$1
-  sed "$at_sed" "$at_myself" > "$at_test_source"
-}
-
-# at_fn_create_debugging_script
-# -----------------------------
-# Create the debugging script $at_group_dir/run which will reproduce the
-# current test group.
-at_fn_create_debugging_script ()
-{
-  {
-    echo "#! /bin/sh" &&
-    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
-    $as_echo "cd '$at_dir'" &&
-    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
-    echo 'exit 1'
-  } >"$at_group_dir/run" &&
-  chmod +x "$at_group_dir/run"
-}
-
-## -------------------------------- ##
-## End of autotest shell functions. ##
-## -------------------------------- ##
-{
-  $as_echo "## ---------------- ##
-## Tested programs. ##
-## ---------------- ##"
-  echo
-} >&5
-
-# Report what programs are being tested.
-for at_program in : $at_tested
-do
-  test "$at_program" = : && continue
-  case $at_program in
-    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
-    * )
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -f "$as_dir/$at_program" && break
-  done
-IFS=$as_save_IFS
-
-    at_program_=$as_dir/$at_program ;;
-  esac
-  if test -f "$at_program_"; then
-    {
-      $as_echo "$at_srcdir/DASTest.at:7: $at_program_ --version"
-      "$at_program_" --version </dev/null
-      echo
-    } >&5 2>&1
-  else
-    as_fn_error $? "cannot find $at_program" "$LINENO" 5
-  fi
-done
-
-{
-  $as_echo "## ------------------ ##
-## Running the tests. ##
-## ------------------ ##"
-} >&5
-
-at_start_date=`date`
-at_start_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: starting at: $at_start_date" >&5
-
-# Create the master directory if it doesn't already exist.
-as_dir="$at_suite_dir"; as_fn_mkdir_p ||
-  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
-
-# Can we diff with `/dev/null'?  DU 5.0 refuses.
-if diff /dev/null /dev/null >/dev/null 2>&1; then
-  at_devnull=/dev/null
-else
-  at_devnull=$at_suite_dir/devnull
-  >"$at_devnull"
-fi
-
-# Use `diff -u' when possible.
-if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
-then
-  at_diff='diff -u'
-else
-  at_diff=diff
-fi
-
-# Get the last needed group.
-for at_group in : $at_groups; do :; done
-
-# Extract the start and end lines of each test group at the tail
-# of this file
-awk '
-BEGIN { FS="" }
-/^#AT_START_/ {
-  start = NR
-}
-/^#AT_STOP_/ {
-  test = substr ($ 0, 10)
-  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
-  if (test == "'"$at_group"'") exit
-}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
-. "$at_suite_dir/at-source-lines" ||
-  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
-rm -f "$at_suite_dir/at-source-lines"
-
-# Set number of jobs for `-j'; avoid more jobs than test groups.
-set X $at_groups; shift; at_max_jobs=$#
-if test $at_max_jobs -eq 0; then
-  at_jobs=1
-fi
-if test $at_jobs -ne 1 &&
-   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
-  at_jobs=$at_max_jobs
-fi
-
-# If parallel mode, don't output banners, don't split summary lines.
-if test $at_jobs -ne 1; then
-  at_print_banners=false
-  at_quiet=:
-fi
-
-# Set up helper dirs.
-rm -rf "$at_helper_dir" &&
-mkdir "$at_helper_dir" &&
-cd "$at_helper_dir" &&
-{ test -z "$at_groups" || mkdir $at_groups; } ||
-as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
-
-# Functions for running a test group.  We leave the actual
-# test group execution outside of a shell function in order
-# to avoid hitting zsh 4.x exit status bugs.
-
-# at_fn_group_prepare
-# -------------------
-# Prepare for running a test group.
-at_fn_group_prepare ()
-{
-  # The directory for additional per-group helper files.
-  at_job_dir=$at_helper_dir/$at_group
-  # The file containing the location of the last AT_CHECK.
-  at_check_line_file=$at_job_dir/check-line
-  # The file containing the exit status of the last command.
-  at_status_file=$at_job_dir/status
-  # The files containing the output of the tested commands.
-  at_stdout=$at_job_dir/stdout
-  at_stder1=$at_job_dir/stder1
-  at_stderr=$at_job_dir/stderr
-  # The file containing the code for a test group.
-  at_test_source=$at_job_dir/test-source
-  # The file containing dates.
-  at_times_file=$at_job_dir/times
-
-  # Be sure to come back to the top test directory.
-  cd "$at_suite_dir"
-
-  # Clearly separate the test groups when verbose.
-  $at_first || $at_verbose echo
-
-  at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-
-  # Create a fresh directory for the next test group, and enter.
-  # If one already exists, the user may have invoked ./run from
-  # within that directory; we remove the contents, but not the
-  # directory itself, so that we aren't pulling the rug out from
-  # under the shell's notion of the current directory.
-  at_group_dir=$at_suite_dir/$at_group_normalized
-  at_group_log=$at_group_dir/$as_me.log
-  if test -d "$at_group_dir"; then
-  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
-  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
-fi ||
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
-$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
-  # Be tolerant if the above `rm' was not able to remove the directory.
-  as_dir="$at_group_dir"; as_fn_mkdir_p
-
-  echo 0 > "$at_status_file"
-
-  # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log.
-  if test -z "$at_verbose"; then
-    at_tee_pipe='tee -a "$at_group_log"'
-  else
-    at_tee_pipe='cat >> "$at_group_log"'
-  fi
-}
-
-# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
-# -------------------------------------------------
-# Declare the test group ORDINAL, located at LINE with group description DESC,
-# and residing under BANNER. Use PAD to align the status column.
-at_fn_group_banner ()
-{
-  at_setup_line="$2"
-  test -n "$5" && at_fn_banner $5
-  at_desc="$3"
-  case $1 in
-    [0-9])      at_desc_line="  $1: ";;
-    [0-9][0-9]) at_desc_line=" $1: " ;;
-    *)          at_desc_line="$1: "  ;;
-  esac
-  as_fn_append at_desc_line "$3$4"
-  $at_quiet $as_echo_n "$at_desc_line"
-  echo "#                             -*- compilation -*-" >> "$at_group_log"
-}
-
-# at_fn_group_postprocess
-# -----------------------
-# Perform cleanup after running a test group.
-at_fn_group_postprocess ()
-{
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd "$at_suite_dir"
-
-  if test ! -f "$at_check_line_file"; then
-    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
-      A failure happened in a test group before any test could be
-      run. This means that test suite is improperly designed.  Please
-      report this failure to <opendap-tech at opendap.org>.
-_ATEOF
-    $as_echo "$at_setup_line" >"$at_check_line_file"
-    at_status=99
-  fi
-  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
-  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
-  case $at_xfail:$at_status in
-    yes:0)
-	at_msg="UNEXPECTED PASS"
-	at_res=xpass
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    no:0)
-	at_msg="ok"
-	at_res=pass
-	at_errexit=false
-	at_color=$at_grn
-	;;
-    *:77)
-	at_msg='skipped ('`cat "$at_check_line_file"`')'
-	at_res=skip
-	at_errexit=false
-	at_color=$at_blu
-	;;
-    no:* | *:99)
-	at_msg='FAILED ('`cat "$at_check_line_file"`')'
-	at_res=fail
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    yes:*)
-	at_msg='expected failure ('`cat "$at_check_line_file"`')'
-	at_res=xfail
-	at_errexit=false
-	at_color=$at_lgn
-	;;
-  esac
-  echo "$at_res" > "$at_job_dir/$at_res"
-  # In parallel mode, output the summary line only afterwards.
-  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
-    $as_echo "$at_desc_line $at_color$at_msg$at_std"
-  else
-    # Make sure there is a separator even with long titles.
-    $as_echo " $at_color$at_msg$at_std"
-  fi
-  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-  case $at_status in
-    0|77)
-      # $at_times_file is only available if the group succeeded.
-      # We're not including the group log, so the success message
-      # is written in the global log separately.  But we also
-      # write to the group log in case they're using -d.
-      if test -f "$at_times_file"; then
-	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
-	rm -f "$at_times_file"
-      fi
-      $as_echo "$at_log_msg" >> "$at_group_log"
-      $as_echo "$at_log_msg" >&5
-
-      # Cleanup the group directory, unless the user wants the files
-      # or the success was unexpected.
-      if $at_debug_p || test $at_res = xpass; then
-	at_fn_create_debugging_script
-	if test $at_res = xpass && $at_errexit; then
-	  echo stop > "$at_stop_file"
-	fi
-      else
-	if test -d "$at_group_dir"; then
-	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-	  rm -fr "$at_group_dir"
-	fi
-	rm -f "$at_test_source"
-      fi
-      ;;
-    *)
-      # Upon failure, include the log into the testsuite's global
-      # log.  The failure message is written in the group log.  It
-      # is later included in the global log.
-      $as_echo "$at_log_msg" >> "$at_group_log"
-
-      # Upon failure, keep the group directory for autopsy, and create
-      # the debugging script.  With -e, do not start any further tests.
-      at_fn_create_debugging_script
-      if $at_errexit; then
-	echo stop > "$at_stop_file"
-      fi
-      ;;
-  esac
-}
-
-
-## ------------ ##
-## Driver loop. ##
-## ------------ ##
-
-
-if (set -m && set +m && set +b) >/dev/null 2>&1; then
-  set +b
-  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
-else
-  at_job_control_on=: at_job_control_off=: at_job_group=
-fi
-
-for at_signal in 1 2 15; do
-  trap 'set +x; set +e
-	$at_job_control_off
-	at_signal='"$at_signal"'
-	echo stop > "$at_stop_file"
-	trap "" $at_signal
-	at_pgids=
-	for at_pgid in `jobs -p 2>/dev/null`; do
-	  at_pgids="$at_pgids $at_job_group$at_pgid"
-	done
-	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
-	wait
-	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
-	  echo >&2
-	fi
-	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
-	set x $at_signame
-	test 1 -gt 2 && at_signame=$at_signal
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
-$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
-	as_fn_arith 128 + $at_signal && exit_status=$as_val
-	as_fn_exit $exit_status' $at_signal
-done
-
-rm -f "$at_stop_file"
-at_first=:
-
-if test $at_jobs -ne 1 &&
-     rm -f "$at_job_fifo" &&
-     test -n "$at_job_group" &&
-     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
-then
-  # FIFO job dispatcher.
-
-  trap 'at_pids=
-	for at_pid in `jobs -p`; do
-	  at_pids="$at_pids $at_job_group$at_pid"
-	done
-	if test -n "$at_pids"; then
-	  at_sig=TSTP
-	  test "${TMOUT+set}" = set && at_sig=STOP
-	  kill -$at_sig $at_pids 2>/dev/null
-	fi
-	kill -STOP $$
-	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
-
-  echo
-  # Turn jobs into a list of numbers, starting from 1.
-  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
-
-  set X $at_joblist
-  shift
-  for at_group in $at_groups; do
-    $at_job_control_on 2>/dev/null
-    (
-      # Start one test group.
-      $at_job_control_off
-      if $at_first; then
-	exec 7>"$at_job_fifo"
-      else
-	exec 6<&-
-      fi
-      trap 'set +x; set +e
-	    trap "" PIPE
-	    echo stop > "$at_stop_file"
-	    echo >&7
-	    as_fn_exit 141' PIPE
-      at_fn_group_prepare
-      if cd "$at_group_dir" &&
-	 at_fn_test $at_group &&
-	 . "$at_test_source"
-      then :; else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-	at_failed=:
-      fi
-      at_fn_group_postprocess
-      echo >&7
-    ) &
-    $at_job_control_off
-    if $at_first; then
-      at_first=false
-      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
-    fi
-    shift # Consume one token.
-    if test $# -gt 0; then :; else
-      read at_token <&6 || break
-      set x $*
-    fi
-    test -f "$at_stop_file" && break
-  done
-  exec 7>&-
-  # Read back the remaining ($at_jobs - 1) tokens.
-  set X $at_joblist
-  shift
-  if test $# -gt 0; then
-    shift
-    for at_job
-    do
-      read at_token
-    done <&6
-  fi
-  exec 6<&-
-  wait
-else
-  # Run serially, avoid forks and other potential surprises.
-  for at_group in $at_groups; do
-    at_fn_group_prepare
-    if cd "$at_group_dir" &&
-       at_fn_test $at_group &&
-       . "$at_test_source"; then :; else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-      at_failed=:
-    fi
-    at_fn_group_postprocess
-    test -f "$at_stop_file" && break
-    at_first=false
-  done
-fi
-
-# Wrap up the test suite with summary statistics.
-cd "$at_helper_dir"
-
-# Use ?..???? when the list must remain sorted, the faster * otherwise.
-at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
-at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
-at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
-at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
-		 echo $f; done | sed '/?/d; s,/xpass,,'`
-at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
-		echo $f; done | sed '/?/d; s,/fail,,'`
-
-set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
-shift; at_group_count=$#
-set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
-set X $at_xfail_list; shift; at_xfail_count=$#
-set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
-set X $at_skip_list; shift; at_skip_count=$#
-
-as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
-as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
-as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
-
-# Back to the top directory.
-cd "$at_dir"
-rm -rf "$at_helper_dir"
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: ending at: $at_stop_date" >&5
-case $at_start_time,$at_stop_time in
-  [0-9]*,[0-9]*)
-    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
-    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
-    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
-    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
-    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
-    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-    $as_echo "$as_me: test suite duration: $at_duration" >&5
-    ;;
-esac
-
-echo
-$as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-echo
-{
-  echo
-  $as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-  at_color=$at_red
-else
-  # Don't you just love exponential explosion of the number of cases?
-  at_color=$at_red
-  case $at_xpass_count:$at_fail_count:$at_xfail_count in
-    # So far, so good.
-    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
-    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_color$at_result$at_std"
-  echo "$at_result" >&5
-else
-  echo "${at_color}ERROR: $at_result$at_std" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    $as_echo "## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##"
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL "$at_myself" $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL "$at_myself" $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL "$at_myself" $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      $as_echo "## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##"
-      echo
-      for at_group in $at_fail_list
-      do
-	at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
-	echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## ${at_top_build_prefix}config.log ##
-_ASBOX
-      sed 's/^/| /' ${at_top_build_prefix}config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  if $at_debug_p; then
-    at_msg='per-test log files'
-  else
-    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
-  fi
-  $as_echo "Please send $at_msg and all information you think might help:
-
-   To: <opendap-tech at opendap.org>
-   Subject: [libdap 3.15.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
-
-You may investigate any problem if you feel able to do so, in which
-case the test suite provides a good starting point.  Its output may
-be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
-"
-  exit 1
-fi
-
-exit 0
-
-## ------------- ##
-## Actual tests. ##
-## ------------- ##
-#AT_START_1
-at_fn_group_banner 1 'DASTest.at:31' \
-  "DAS \$abs_srcdir/das-testsuite/bad_value_test.1.das" ""
-at_xfail=no
-(
-  $as_echo "1. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/bad_value_test.1.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:31: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/bad_value_test.1.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/bad_value_test.1.das || true" "DASTest.at:31"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/bad_value_test.1.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:31"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:31: diff -b -B \$abs_srcdir/das-testsuite/bad_value_test.1.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/bad_value_test.1.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/bad_value_test.1.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/bad_value_test.1.das.base stderr" "DASTest.at:31"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/bad_value_test.1.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/bad_value_test.1.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:31"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_1
-#AT_START_2
-at_fn_group_banner 2 'DASTest.at:32' \
-  "DAS \$abs_srcdir/das-testsuite/das.das" "          "
-at_xfail=no
-(
-  $as_echo "2. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/das.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:32: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/das.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/das.das || true" "DASTest.at:32"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/das.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:32"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:32: diff -b -B \$abs_srcdir/das-testsuite/das.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/das.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/das.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/das.das.base stderr" "DASTest.at:32"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/das.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/das.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:32"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_2
-#AT_START_3
-at_fn_group_banner 3 'DASTest.at:33' \
-  "DAS \$abs_srcdir/das-testsuite/special.test.das" " "
-at_xfail=no
-(
-  $as_echo "3. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/special.test.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:33: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/special.test.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/special.test.das || true" "DASTest.at:33"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/special.test.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:33"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:33: diff -b -B \$abs_srcdir/das-testsuite/special.test.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/special.test.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/special.test.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/special.test.das.base stderr" "DASTest.at:33"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/special.test.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/special.test.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:33"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_3
-#AT_START_4
-at_fn_group_banner 4 'DASTest.at:34' \
-  "DAS \$abs_srcdir/das-testsuite/special.test.hdf.das" ""
-at_xfail=no
-(
-  $as_echo "4. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/special.test.hdf.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:34: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/special.test.hdf.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/special.test.hdf.das || true" "DASTest.at:34"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/special.test.hdf.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:34"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:34: diff -b -B \$abs_srcdir/das-testsuite/special.test.hdf.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/special.test.hdf.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/special.test.hdf.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/special.test.hdf.das.base stderr" "DASTest.at:34"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/special.test.hdf.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/special.test.hdf.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:34"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_4
-#AT_START_5
-at_fn_group_banner 5 'DASTest.at:35' \
-  "DAS \$abs_srcdir/das-testsuite/test.1.das" "       "
-at_xfail=no
-(
-  $as_echo "5. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.1.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:35: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.1.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.1.das || true" "DASTest.at:35"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.1.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:35"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:35: diff -b -B \$abs_srcdir/das-testsuite/test.1.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.1.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.1.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.1.das.base stderr" "DASTest.at:35"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.1.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.1.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:35"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_5
-#AT_START_6
-at_fn_group_banner 6 'DASTest.at:36' \
-  "DAS \$abs_srcdir/das-testsuite/test.11.das" "      "
-at_xfail=no
-(
-  $as_echo "6. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.11.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:36: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.11.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.11.das || true" "DASTest.at:36"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.11.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:36"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:36: diff -b -B \$abs_srcdir/das-testsuite/test.11.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.11.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.11.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.11.das.base stderr" "DASTest.at:36"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.11.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.11.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:36"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_6
-#AT_START_7
-at_fn_group_banner 7 'DASTest.at:37' \
-  "DAS \$abs_srcdir/das-testsuite/test.12.das" "      "
-at_xfail=no
-(
-  $as_echo "7. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.12.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:37: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.12.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.12.das || true" "DASTest.at:37"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.12.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:37"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:37: diff -b -B \$abs_srcdir/das-testsuite/test.12.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.12.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.12.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.12.das.base stderr" "DASTest.at:37"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.12.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.12.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:37"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_7
-#AT_START_8
-at_fn_group_banner 8 'DASTest.at:38' \
-  "DAS \$abs_srcdir/das-testsuite/test.13.das" "      "
-at_xfail=no
-(
-  $as_echo "8. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.13.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:38: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.13.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.13.das || true" "DASTest.at:38"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.13.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:38"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:38: diff -b -B \$abs_srcdir/das-testsuite/test.13.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.13.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.13.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.13.das.base stderr" "DASTest.at:38"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.13.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.13.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:38"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_8
-#AT_START_9
-at_fn_group_banner 9 'DASTest.at:39' \
-  "DAS \$abs_srcdir/das-testsuite/test.14.das" "      "
-at_xfail=no
-(
-  $as_echo "9. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.14.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:39: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.14.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.14.das || true" "DASTest.at:39"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.14.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:39"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:39: diff -b -B \$abs_srcdir/das-testsuite/test.14.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.14.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.14.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.14.das.base stderr" "DASTest.at:39"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.14.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.14.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:39"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_9
-#AT_START_10
-at_fn_group_banner 10 'DASTest.at:40' \
-  "DAS \$abs_srcdir/das-testsuite/test.15.das" "      "
-at_xfail=no
-(
-  $as_echo "10. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.15.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:40: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.15.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.15.das || true" "DASTest.at:40"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.15.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:40"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:40: diff -b -B \$abs_srcdir/das-testsuite/test.15.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.15.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.15.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.15.das.base stderr" "DASTest.at:40"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.15.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.15.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:40"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_10
-#AT_START_11
-at_fn_group_banner 11 'DASTest.at:41' \
-  "DAS \$abs_srcdir/das-testsuite/test.16.das" "      "
-at_xfail=no
-(
-  $as_echo "11. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.16.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:41: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.16.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.16.das || true" "DASTest.at:41"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.16.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:41"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:41: diff -b -B \$abs_srcdir/das-testsuite/test.16.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.16.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.16.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.16.das.base stderr" "DASTest.at:41"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.16.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.16.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:41"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_11
-#AT_START_12
-at_fn_group_banner 12 'DASTest.at:42' \
-  "DAS \$abs_srcdir/das-testsuite/test.17.das" "      "
-at_xfail=no
-(
-  $as_echo "12. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.17.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:42: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.17.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.17.das || true" "DASTest.at:42"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.17.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:42"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:42: diff -b -B \$abs_srcdir/das-testsuite/test.17.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.17.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.17.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.17.das.base stderr" "DASTest.at:42"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.17.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.17.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:42"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_12
-#AT_START_13
-at_fn_group_banner 13 'DASTest.at:43' \
-  "DAS \$abs_srcdir/das-testsuite/test.18.das" "      "
-at_xfail=no
-(
-  $as_echo "13. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.18.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:43: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.18.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.18.das || true" "DASTest.at:43"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.18.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:43"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:43: diff -b -B \$abs_srcdir/das-testsuite/test.18.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.18.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.18.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.18.das.base stderr" "DASTest.at:43"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.18.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.18.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:43"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_13
-#AT_START_14
-at_fn_group_banner 14 'DASTest.at:44' \
-  "DAS \$abs_srcdir/das-testsuite/test.19.das" "      "
-at_xfail=no
-(
-  $as_echo "14. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.19.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:44: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.19.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.19.das || true" "DASTest.at:44"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.19.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:44"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:44: diff -b -B \$abs_srcdir/das-testsuite/test.19.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.19.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.19.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.19.das.base stderr" "DASTest.at:44"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.19.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.19.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:44"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_14
-#AT_START_15
-at_fn_group_banner 15 'DASTest.at:45' \
-  "DAS \$abs_srcdir/das-testsuite/test.1a.das" "      "
-at_xfail=no
-(
-  $as_echo "15. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.1a.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:45: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.1a.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.1a.das || true" "DASTest.at:45"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.1a.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:45: diff -b -B \$abs_srcdir/das-testsuite/test.1a.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.1a.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.1a.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.1a.das.base stderr" "DASTest.at:45"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.1a.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.1a.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_15
-#AT_START_16
-at_fn_group_banner 16 'DASTest.at:46' \
-  "DAS \$abs_srcdir/das-testsuite/test.2.das" "       "
-at_xfail=no
-(
-  $as_echo "16. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.2.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:46: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.2.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.2.das || true" "DASTest.at:46"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.2.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:46: diff -b -B \$abs_srcdir/das-testsuite/test.2.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.2.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.2.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.2.das.base stderr" "DASTest.at:46"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.2.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.2.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_16
-#AT_START_17
-at_fn_group_banner 17 'DASTest.at:47' \
-  "DAS \$abs_srcdir/das-testsuite/test.20.das" "      "
-at_xfail=no
-(
-  $as_echo "17. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.20.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:47: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.20.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.20.das || true" "DASTest.at:47"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.20.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:47: diff -b -B \$abs_srcdir/das-testsuite/test.20.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.20.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.20.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.20.das.base stderr" "DASTest.at:47"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.20.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.20.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_17
-#AT_START_18
-at_fn_group_banner 18 'DASTest.at:48' \
-  "DAS \$abs_srcdir/das-testsuite/test.21.das" "      "
-at_xfail=no
-(
-  $as_echo "18. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.21.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:48: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.21.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.21.das || true" "DASTest.at:48"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.21.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:48: diff -b -B \$abs_srcdir/das-testsuite/test.21.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.21.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.21.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.21.das.base stderr" "DASTest.at:48"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.21.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.21.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_18
-#AT_START_19
-at_fn_group_banner 19 'DASTest.at:49' \
-  "DAS \$abs_srcdir/das-testsuite/test.22.das" "      "
-at_xfail=no
-(
-  $as_echo "19. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.22.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:49: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.22.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.22.das || true" "DASTest.at:49"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.22.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:49: diff -b -B \$abs_srcdir/das-testsuite/test.22.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.22.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.22.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.22.das.base stderr" "DASTest.at:49"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.22.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.22.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_19
-#AT_START_20
-at_fn_group_banner 20 'DASTest.at:50' \
-  "DAS \$abs_srcdir/das-testsuite/test.23.das" "      "
-at_xfail=no
-(
-  $as_echo "20. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.23.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:50: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.23.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.23.das || true" "DASTest.at:50"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.23.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:50: diff -b -B \$abs_srcdir/das-testsuite/test.23.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.23.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.23.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.23.das.base stderr" "DASTest.at:50"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.23.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.23.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_20
-#AT_START_21
-at_fn_group_banner 21 'DASTest.at:51' \
-  "DAS \$abs_srcdir/das-testsuite/test.24.das" "      "
-at_xfail=no
-(
-  $as_echo "21. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.24.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:51: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.24.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.24.das || true" "DASTest.at:51"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.24.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:51: diff -b -B \$abs_srcdir/das-testsuite/test.24.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.24.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.24.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.24.das.base stderr" "DASTest.at:51"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.24.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.24.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_21
-#AT_START_22
-at_fn_group_banner 22 'DASTest.at:52' \
-  "DAS \$abs_srcdir/das-testsuite/test.25.das" "      "
-at_xfail=no
-(
-  $as_echo "22. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.25.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:52: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.25.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.25.das || true" "DASTest.at:52"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.25.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:52: diff -b -B \$abs_srcdir/das-testsuite/test.25.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.25.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.25.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.25.das.base stderr" "DASTest.at:52"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.25.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.25.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_22
-#AT_START_23
-at_fn_group_banner 23 'DASTest.at:53' \
-  "DAS \$abs_srcdir/das-testsuite/test.26.das" "      "
-at_xfail=no
-(
-  $as_echo "23. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.26.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:53: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.26.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.26.das || true" "DASTest.at:53"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.26.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:53"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:53: diff -b -B \$abs_srcdir/das-testsuite/test.26.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.26.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.26.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.26.das.base stderr" "DASTest.at:53"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.26.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.26.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:53"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_23
-#AT_START_24
-at_fn_group_banner 24 'DASTest.at:54' \
-  "DAS \$abs_srcdir/das-testsuite/test.27.das" "      "
-at_xfail=no
-(
-  $as_echo "24. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.27.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:54: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.27.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.27.das || true" "DASTest.at:54"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.27.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:54: diff -b -B \$abs_srcdir/das-testsuite/test.27.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.27.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.27.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.27.das.base stderr" "DASTest.at:54"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.27.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.27.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_24
-#AT_START_25
-at_fn_group_banner 25 'DASTest.at:55' \
-  "DAS \$abs_srcdir/das-testsuite/test.28.das" "      "
-at_xfail=no
-(
-  $as_echo "25. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.28.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:55: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.28.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.28.das || true" "DASTest.at:55"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.28.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:55: diff -b -B \$abs_srcdir/das-testsuite/test.28.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.28.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.28.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.28.das.base stderr" "DASTest.at:55"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.28.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.28.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_25
-#AT_START_26
-at_fn_group_banner 26 'DASTest.at:56' \
-  "DAS \$abs_srcdir/das-testsuite/test.29.das" "      "
-at_xfail=no
-(
-  $as_echo "26. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.29.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:56: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.29.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.29.das || true" "DASTest.at:56"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.29.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:56"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:56: diff -b -B \$abs_srcdir/das-testsuite/test.29.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.29.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.29.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.29.das.base stderr" "DASTest.at:56"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.29.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.29.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:56"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_26
-#AT_START_27
-at_fn_group_banner 27 'DASTest.at:57' \
-  "DAS \$abs_srcdir/das-testsuite/test.3.das" "       "
-at_xfail=no
-(
-  $as_echo "27. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.3.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:57: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.3.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.3.das || true" "DASTest.at:57"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.3.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:57: diff -b -B \$abs_srcdir/das-testsuite/test.3.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.3.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.3.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.3.das.base stderr" "DASTest.at:57"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.3.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.3.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_27
-#AT_START_28
-at_fn_group_banner 28 'DASTest.at:58' \
-  "DAS \$abs_srcdir/das-testsuite/test.3.Z.das" "     "
-at_xfail=no
-(
-  $as_echo "28. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.3.Z.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:58: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.3.Z.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.3.Z.das || true" "DASTest.at:58"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.3.Z.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:58: diff -b -B \$abs_srcdir/das-testsuite/test.3.Z.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.3.Z.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.3.Z.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.3.Z.das.base stderr" "DASTest.at:58"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.3.Z.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.3.Z.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_28
-#AT_START_29
-at_fn_group_banner 29 'DASTest.at:59' \
-  "DAS \$abs_srcdir/das-testsuite/test.30.das" "      "
-at_xfail=no
-(
-  $as_echo "29. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.30.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:59: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.30.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.30.das || true" "DASTest.at:59"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.30.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:59: diff -b -B \$abs_srcdir/das-testsuite/test.30.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.30.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.30.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.30.das.base stderr" "DASTest.at:59"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.30.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.30.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_29
-#AT_START_30
-at_fn_group_banner 30 'DASTest.at:60' \
-  "DAS \$abs_srcdir/das-testsuite/test.31.das" "      "
-at_xfail=no
-(
-  $as_echo "30. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.31.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:60: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.31.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.31.das || true" "DASTest.at:60"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.31.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:60"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:60: diff -b -B \$abs_srcdir/das-testsuite/test.31.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.31.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.31.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.31.das.base stderr" "DASTest.at:60"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.31.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.31.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:60"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_30
-#AT_START_31
-at_fn_group_banner 31 'DASTest.at:61' \
-  "DAS \$abs_srcdir/das-testsuite/test.32.das" "      "
-at_xfail=no
-(
-  $as_echo "31. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.32.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:61: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.32.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.32.das || true" "DASTest.at:61"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.32.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:61"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:61: diff -b -B \$abs_srcdir/das-testsuite/test.32.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.32.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.32.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.32.das.base stderr" "DASTest.at:61"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.32.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.32.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:61"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_31
-#AT_START_32
-at_fn_group_banner 32 'DASTest.at:62' \
-  "DAS \$abs_srcdir/das-testsuite/test.33.das" "      "
-at_xfail=no
-(
-  $as_echo "32. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.33.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:62: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.33.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.33.das || true" "DASTest.at:62"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.33.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:62"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:62: diff -b -B \$abs_srcdir/das-testsuite/test.33.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.33.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.33.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.33.das.base stderr" "DASTest.at:62"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.33.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.33.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:62"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_32
-#AT_START_33
-at_fn_group_banner 33 'DASTest.at:63' \
-  "DAS \$abs_srcdir/das-testsuite/test.34.das" "      "
-at_xfail=no
-(
-  $as_echo "33. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.34.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:63: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.34.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.34.das || true" "DASTest.at:63"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.34.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:63"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:63: diff -b -B \$abs_srcdir/das-testsuite/test.34.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.34.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.34.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.34.das.base stderr" "DASTest.at:63"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.34.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.34.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:63"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_33
-#AT_START_34
-at_fn_group_banner 34 'DASTest.at:64' \
-  "DAS \$abs_srcdir/das-testsuite/test.35.das" "      "
-at_xfail=no
-(
-  $as_echo "34. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.35.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:64: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.35.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.35.das || true" "DASTest.at:64"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.35.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:64"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:64: diff -b -B \$abs_srcdir/das-testsuite/test.35.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.35.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.35.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.35.das.base stderr" "DASTest.at:64"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.35.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.35.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:64"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_34
-#AT_START_35
-at_fn_group_banner 35 'DASTest.at:65' \
-  "DAS \$abs_srcdir/das-testsuite/test.4.das" "       "
-at_xfail=no
-(
-  $as_echo "35. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.4.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:65: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.4.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.4.das || true" "DASTest.at:65"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.4.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:65"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:65: diff -b -B \$abs_srcdir/das-testsuite/test.4.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.4.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.4.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.4.das.base stderr" "DASTest.at:65"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.4.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.4.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:65"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_35
-#AT_START_36
-at_fn_group_banner 36 'DASTest.at:66' \
-  "DAS \$abs_srcdir/das-testsuite/test.5.das" "       "
-at_xfail=no
-(
-  $as_echo "36. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.5.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:66: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.5.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.5.das || true" "DASTest.at:66"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.5.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:66"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:66: diff -b -B \$abs_srcdir/das-testsuite/test.5.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.5.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.5.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.5.das.base stderr" "DASTest.at:66"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.5.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.5.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:66"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_36
-#AT_START_37
-at_fn_group_banner 37 'DASTest.at:67' \
-  "DAS \$abs_srcdir/das-testsuite/test.6.das" "       "
-at_xfail=no
-(
-  $as_echo "37. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.6.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:67: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.6.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.6.das || true" "DASTest.at:67"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.6.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:67"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:67: diff -b -B \$abs_srcdir/das-testsuite/test.6.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.6.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.6.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.6.das.base stderr" "DASTest.at:67"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.6.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.6.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:67"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_37
-#AT_START_38
-at_fn_group_banner 38 'DASTest.at:68' \
-  "DAS \$abs_srcdir/das-testsuite/test.7.das" "       "
-at_xfail=no
-(
-  $as_echo "38. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.7.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:68: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.7.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.7.das || true" "DASTest.at:68"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.7.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:68"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:68: diff -b -B \$abs_srcdir/das-testsuite/test.7.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.7.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.7.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.7.das.base stderr" "DASTest.at:68"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.7.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.7.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:68"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_38
-#AT_START_39
-at_fn_group_banner 39 'DASTest.at:69' \
-  "DAS \$abs_srcdir/das-testsuite/test.8.das" "       "
-at_xfail=no
-(
-  $as_echo "39. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.8.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:69: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.8.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.8.das || true" "DASTest.at:69"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.8.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:69"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:69: diff -b -B \$abs_srcdir/das-testsuite/test.8.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.8.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.8.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.8.das.base stderr" "DASTest.at:69"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.8.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.8.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:69"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_39
-#AT_START_40
-at_fn_group_banner 40 'DASTest.at:70' \
-  "DAS \$abs_srcdir/das-testsuite/test.9.das" "       "
-at_xfail=no
-(
-  $as_echo "40. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/das-test -p < $abs_srcdir/das-testsuite/test.9.das needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:70: \$abs_builddir/das-test -p < \$abs_srcdir/das-testsuite/test.9.das || true"
-at_fn_check_prepare_dynamic "$abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.9.das || true" "DASTest.at:70"
-( $at_check_trace; $abs_builddir/das-test -p < $abs_srcdir/das-testsuite/test.9.das || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:70"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DASTest.at:70: diff -b -B \$abs_srcdir/das-testsuite/test.9.das.base stdout || diff -b -B \$abs_srcdir/das-testsuite/test.9.das.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/das-testsuite/test.9.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.9.das.base stderr" "DASTest.at:70"
-( $at_check_trace; diff -b -B $abs_srcdir/das-testsuite/test.9.das.base stdout || diff -b -B $abs_srcdir/das-testsuite/test.9.das.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DASTest.at:70"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_40
diff --git a/tests/DDSTest b/tests/DDSTest
deleted file mode 100755
index 11554f1..0000000
--- a/tests/DDSTest
+++ /dev/null
@@ -1,3288 +0,0 @@
-#! /bin/sh
-# Generated from DDSTest.at by GNU Autoconf 2.69.
-#
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
-#
-# This test suite is free software; the Free Software Foundation gives
-# unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# How were we run?
-at_cli_args="$@"
-
-
-# Not all shells have the 'times' builtin; the subshell is needed to make
-# sure we discard the 'times: not found' message from the shell.
-at_times_p=false
-(times) >/dev/null 2>&1 && at_times_p=:
-
-# CLI Arguments to pass to the debugging scripts.
-at_debug_args=
-# -e sets to true
-at_errexit_p=false
-# Shall we be verbose?  ':' means no, empty means yes.
-at_verbose=:
-at_quiet=
-# Running several jobs in parallel, 0 means as many as test groups.
-at_jobs=1
-at_traceon=:
-at_trace_echo=:
-at_check_filter_trace=:
-
-# Shall we keep the debug scripts?  Must be `:' when the suite is
-# run by a debug script, so that the script doesn't remove itself.
-at_debug_p=false
-# Display help message?
-at_help_p=false
-# Display the version message?
-at_version_p=false
-# List test groups?
-at_list_p=false
-# --clean
-at_clean=false
-# Test groups to run
-at_groups=
-# Whether to rerun failed tests.
-at_recheck=
-# Whether a write failure occurred
-at_write_fail=0
-
-# The directory we run the suite in.  Default to . if no -C option.
-at_dir=`pwd`
-# An absolute reference to this testsuite script.
-case $as_myself in
-  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
-  * ) at_myself=$at_dir/$as_myself ;;
-esac
-# Whether -C is in effect.
-at_change_dir=false
-
-# Whether to enable colored test results.
-at_color=no
-# List of the tested programs.
-at_tested=''
-# As many question marks as there are digits in the last test group number.
-# Used to normalize the test group numbers so that `ls' lists them in
-# numerical order.
-at_format='??'
-# Description of all the test groups.
-at_help_all="1;DDSTest.at:34;DDS \$abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds;dds;
-2;DDSTest.at:35;DDS \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds;dds;
-3;DDSTest.at:36;DDS \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds;dds;
-4;DDSTest.at:37;DDS \$abs_srcdir/dds-testsuite/AsciiOutputTest1.dds;dds;
-5;DDSTest.at:38;DDS \$abs_srcdir/dds-testsuite/fnoc1.nc.das.dds;dds;
-6;DDSTest.at:39;DDS \$abs_srcdir/dds-testsuite/fnoc1.nc.dds;dds;
-7;DDSTest.at:40;DDS \$abs_srcdir/dds-testsuite/S2000415.HDF.das.dds;dds;
-8;DDSTest.at:41;DDS \$abs_srcdir/dds-testsuite/S2000415.HDF.dds;dds;
-9;DDSTest.at:42;DDS \$abs_srcdir/dds-testsuite/test.1.dds;dds;
-10;DDSTest.at:43;DDS \$abs_srcdir/dds-testsuite/test.10.dds;dds;
-11;DDSTest.at:44;DDS \$abs_srcdir/dds-testsuite/test.11.dds;dds;
-12;DDSTest.at:45;DDS \$abs_srcdir/dds-testsuite/test.12.dds;dds;
-13;DDSTest.at:46;DDS \$abs_srcdir/dds-testsuite/test.13.dds;dds;
-14;DDSTest.at:47;DDS \$abs_srcdir/dds-testsuite/test.14.dds;dds;
-15;DDSTest.at:48;DDS \$abs_srcdir/dds-testsuite/test.15.dds;dds;
-16;DDSTest.at:49;DDS \$abs_srcdir/dds-testsuite/test.16.dds;dds;
-17;DDSTest.at:50;DDS \$abs_srcdir/dds-testsuite/test.17.dds;dds;
-18;DDSTest.at:51;DDS \$abs_srcdir/dds-testsuite/test.18.dds;dds;
-19;DDSTest.at:52;DDS \$abs_srcdir/dds-testsuite/test.19.dds;dds;
-20;DDSTest.at:53;DDS \$abs_srcdir/dds-testsuite/test.19b.das.dds;dds;
-21;DDSTest.at:54;DDS \$abs_srcdir/dds-testsuite/test.19b.dds;dds;
-22;DDSTest.at:55;DDS \$abs_srcdir/dds-testsuite/test.2.dds;dds;
-23;DDSTest.at:56;DDS \$abs_srcdir/dds-testsuite/test.20.dds;dds;
-24;DDSTest.at:57;DDS \$abs_srcdir/dds-testsuite/test.3.dds;dds;
-25;DDSTest.at:58;DDS \$abs_srcdir/dds-testsuite/test.4.dds;dds;
-26;DDSTest.at:59;DDS \$abs_srcdir/dds-testsuite/test.6.dds;dds;
-27;DDSTest.at:60;DDS \$abs_srcdir/dds-testsuite/test.7.dds;dds;
-28;DDSTest.at:61;DDS \$abs_srcdir/dds-testsuite/test.8.dds;dds;
-29;DDSTest.at:62;DDS \$abs_srcdir/dds-testsuite/test.9.dds;dds;
-"
-# List of the all the test groups.
-at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
-
-# at_fn_validate_ranges NAME...
-# -----------------------------
-# Validate and normalize the test group number contained in each variable
-# NAME. Leading zeroes are treated as decimal.
-at_fn_validate_ranges ()
-{
-  for at_grp
-  do
-    eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 29; then
-      $as_echo "invalid test group: $at_value" >&2
-      exit 1
-    fi
-    case $at_value in
-      0*) # We want to treat leading 0 as decimal, like expr and test, but
-	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
-	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
-	  # expr fork, but it is not worth the effort to determine if the
-	  # shell supports XSI when the user can just avoid leading 0.
-	  eval $at_grp='`expr $at_value + 0`' ;;
-    esac
-  done
-}
-
-at_prev=
-for at_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$at_prev"; then
-    at_option=$at_prev=$at_option
-    at_prev=
-  fi
-
-  case $at_option in
-  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
-  *)    at_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $at_option in
-    --help | -h )
-	at_help_p=:
-	;;
-
-    --list | -l )
-	at_list_p=:
-	;;
-
-    --version | -V )
-	at_version_p=:
-	;;
-
-    --clean | -c )
-	at_clean=:
-	;;
-
-    --color )
-	at_color=always
-	;;
-    --color=* )
-	case $at_optarg in
-	no | never | none) at_color=never ;;
-	auto | tty | if-tty) at_color=auto ;;
-	always | yes | force) at_color=always ;;
-	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
-	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
-	esac
-	;;
-
-    --debug | -d )
-	at_debug_p=:
-	;;
-
-    --errexit | -e )
-	at_debug_p=:
-	at_errexit_p=:
-	;;
-
-    --verbose | -v )
-	at_verbose=; at_quiet=:
-	;;
-
-    --trace | -x )
-	at_traceon='set -x'
-	at_trace_echo=echo
-	at_check_filter_trace=at_fn_filter_trace
-	;;
-
-    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
-	at_fn_validate_ranges at_option
-	as_fn_append at_groups "$at_option$as_nl"
-	;;
-
-    # Ranges
-    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
-	at_range_start=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_start
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,$p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '1,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
-    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
-    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`expr $at_option : '\(.*\)-'`
-	at_range_end=`expr $at_option : '.*-\(.*\)'`
-	if test $at_range_start -gt $at_range_end; then
-	  at_tmp=$at_range_end
-	  at_range_end=$at_range_start
-	  at_range_start=$at_tmp
-	fi
-	at_fn_validate_ranges at_range_start at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    # Directory selection.
-    --directory | -C )
-	at_prev=--directory
-	;;
-    --directory=* )
-	at_change_dir=:
-	at_dir=$at_optarg
-	if test x- = "x$at_dir" ; then
-	  at_dir=./-
-	fi
-	;;
-
-    # Parallel execution.
-    --jobs | -j )
-	at_jobs=0
-	;;
-    --jobs=* | -j[0-9]* )
-	if test -n "$at_optarg"; then
-	  at_jobs=$at_optarg
-	else
-	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
-	fi
-	case $at_jobs in *[!0-9]*)
-	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
-	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
-	esac
-	;;
-
-    # Keywords.
-    --keywords | -k )
-	at_prev=--keywords
-	;;
-    --keywords=* )
-	at_groups_selected=$at_help_all
-	at_save_IFS=$IFS
-	IFS=,
-	set X $at_optarg
-	shift
-	IFS=$at_save_IFS
-	for at_keyword
-	do
-	  at_invert=
-	  case $at_keyword in
-	  '!'*)
-	    at_invert="-v"
-	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
-	    ;;
-	  esac
-	  # It is on purpose that we match the test group titles too.
-	  at_groups_selected=`$as_echo "$at_groups_selected" |
-	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
-	done
-	# Smash the keywords.
-	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
-	as_fn_append at_groups "$at_groups_selected$as_nl"
-	;;
-    --recheck)
-	at_recheck=:
-	;;
-
-    *=*)
-	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-	# Reject names that are not valid shell variable names.
-	case $at_envvar in
-	  '' | [0-9]* | *[!_$as_cr_alnum]* )
-	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
-	esac
-	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-	# Export now, but save eval for later and for debug scripts.
-	export $at_envvar
-	as_fn_append at_debug_args " $at_envvar='$at_value'"
-	;;
-
-     *) $as_echo "$as_me: invalid option: $at_option" >&2
-	$as_echo "Try \`$0 --help' for more information." >&2
-	exit 1
-	;;
-  esac
-done
-
-# Verify our last option didn't require an argument
-if test -n "$at_prev"; then :
-  as_fn_error $? "\`$at_prev' requires an argument"
-fi
-
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-
-# Selected test groups.
-if test -z "$at_groups$at_recheck"; then
-  at_groups=$at_groups_all
-else
-  if test -n "$at_recheck" && test -r "$at_suite_log"; then
-    at_oldfails=`sed -n '
-      /^Failed tests:$/,/^Skipped tests:$/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^Unexpected passes:$/,/^## Detailed failed tests/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^## Detailed failed tests/q
-      ' "$at_suite_log"`
-    as_fn_append at_groups "$at_oldfails$as_nl"
-  fi
-  # Sort the tests, removing duplicates.
-  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
-fi
-
-if test x"$at_color" = xalways \
-   || { test x"$at_color" = xauto && test -t 1; }; then
-  at_red=`printf '\033[0;31m'`
-  at_grn=`printf '\033[0;32m'`
-  at_lgn=`printf '\033[1;32m'`
-  at_blu=`printf '\033[1;34m'`
-  at_std=`printf '\033[m'`
-else
-  at_red= at_grn= at_lgn= at_blu= at_std=
-fi
-
-# Help message.
-if $at_help_p; then
-  cat <<_ATEOF || at_write_fail=1
-Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
-
-Run all the tests, or the selected TESTS, given by numeric ranges, and
-save a detailed log file.  Upon failure, create debugging scripts.
-
-Do not change environment variables directly.  Instead, set them via
-command line arguments.  Set \`AUTOTEST_PATH' to select the executables
-to exercise.  Each relative directory is expanded as build and source
-directories relative to the top level of this distribution.
-E.g., from within the build directory /tmp/foo-1.0, invoking this:
-
-  $ $0 AUTOTEST_PATH=bin
-
-is equivalent to the following, assuming the source directory is /src/foo-1.0:
-
-  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Operation modes:
-  -h, --help     print the help message, then exit
-  -V, --version  print version number, then exit
-  -c, --clean    remove all the files this test suite might create and exit
-  -l, --list     describes all the tests, or the selected TESTS
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Execution tuning:
-  -C, --directory=DIR
-                 change to directory DIR before starting
-      --color[=never|auto|always]
-                 enable colored test results on terminal, or always
-  -j, --jobs[=N]
-                 Allow N jobs at once; infinite jobs with no arg (default 1)
-  -k, --keywords=KEYWORDS
-                 select the tests matching all the comma-separated KEYWORDS
-                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
-      --recheck  select all tests that failed or passed unexpectedly last time
-  -e, --errexit  abort as soon as a test fails; implies --debug
-  -v, --verbose  force more detailed output
-                 default for debugging scripts
-  -d, --debug    inhibit clean up and top-level logging
-                 default for debugging scripts
-  -x, --trace    enable tests shell tracing
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Report bugs to <opendap-tech at opendap.org>.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# List of tests.
-if $at_list_p; then
-  cat <<_ATEOF || at_write_fail=1
-libdap 3.15.1 test suite: dds-test test groups:
-
- NUM: FILE-NAME:LINE     TEST-GROUP-NAME
-      KEYWORDS
-
-_ATEOF
-  # Pass an empty line as separator between selected groups and help.
-  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
-    awk 'NF == 1 && FS != ";" {
-	   selected[$ 1] = 1
-	   next
-	 }
-	 /^$/ { FS = ";" }
-	 NF > 0 {
-	   if (selected[$ 1]) {
-	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
-	     if ($ 4) {
-	       lmax = 79
-	       indent = "     "
-	       line = indent
-	       len = length (line)
-	       n = split ($ 4, a, " ")
-	       for (i = 1; i <= n; i++) {
-		 l = length (a[i]) + 1
-		 if (i > 1 && len + l > lmax) {
-		   print line
-		   line = indent " " a[i]
-		   len = length (line)
-		 } else {
-		   line = line " " a[i]
-		   len += l
-		 }
-	       }
-	       if (n)
-		 print line
-	     }
-	   }
-	 }' || at_write_fail=1
-  exit $at_write_fail
-fi
-if $at_version_p; then
-  $as_echo "$as_me (libdap 3.15.1)" &&
-  cat <<\_ATEOF || at_write_fail=1
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This test suite is free software; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# Should we print banners?  Yes if more than one test is run.
-case $at_groups in #(
-  *$as_nl* )
-      at_print_banners=: ;; #(
-  * ) at_print_banners=false ;;
-esac
-# Text for banner N, set to a single space once printed.
-
-# Take any -C into account.
-if $at_change_dir ; then
-  test x != "x$at_dir" && cd "$at_dir" \
-    || as_fn_error $? "unable to change directory"
-  at_dir=`pwd`
-fi
-
-# Load the config files for any default variable assignments.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || as_fn_error $? "invalid content: $at_file"
-done
-
-# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
-: "${at_top_build_prefix=$at_top_builddir}"
-
-# Perform any assignments requested during argument parsing.
-eval "$at_debug_args"
-
-# atconfig delivers names relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir_var in srcdir top_srcdir top_build_prefix
-  do
-    eval at_val=\$at_$at_dir_var
-    case $at_val in
-      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
-      *) at_prefix=../../ ;;
-    esac
-    eval "$at_dir_var=\$at_prefix\$at_val"
-  done
-fi
-
-## -------------------- ##
-## Directory structure. ##
-## -------------------- ##
-
-# This is the set of directories and files used by this script
-# (non-literals are capitalized):
-#
-# TESTSUITE         - the testsuite
-# TESTSUITE.log     - summarizes the complete testsuite run
-# TESTSUITE.dir/    - created during a run, remains after -d or failed test
-# + at-groups/      - during a run: status of all groups in run
-# | + NNN/          - during a run: meta-data about test group NNN
-# | | + check-line  - location (source file and line) of current AT_CHECK
-# | | + status      - exit status of current AT_CHECK
-# | | + stdout      - stdout of current AT_CHECK
-# | | + stder1      - stderr, including trace
-# | | + stderr      - stderr, with trace filtered out
-# | | + test-source - portion of testsuite that defines group
-# | | + times       - timestamps for computing duration
-# | | + pass        - created if group passed
-# | | + xpass       - created if group xpassed
-# | | + fail        - created if group failed
-# | | + xfail       - created if group xfailed
-# | | + skip        - created if group skipped
-# + at-stop         - during a run: end the run if this file exists
-# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
-# + 0..NNN/         - created for each group NNN, remains after -d or failed test
-# | + TESTSUITE.log - summarizes the group results
-# | + ...           - files created during the group
-
-# The directory the whole suite works in.
-# Should be absolute to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite ($at_dir might have changed since earlier).
-at_suite_log=$at_dir/$as_me.log
-# The directory containing helper files per test group.
-at_helper_dir=$at_suite_dir/at-groups
-# Stop file: if it exists, do not start new jobs.
-at_stop_file=$at_suite_dir/at-stop
-# The fifo used for the job dispatcher.
-at_job_fifo=$at_suite_dir/at-job-fifo
-
-if $at_clean; then
-  test -d "$at_suite_dir" &&
-    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-  rm -f -r "$at_suite_dir" "$at_suite_log"
-  exit $?
-fi
-
-# Don't take risks: use only absolute directories in PATH.
-#
-# For stand-alone test suites (ie. atconfig was not found),
-# AUTOTEST_PATH is relative to `.'.
-#
-# For embedded test suites, AUTOTEST_PATH is relative to the top level
-# of the package.  Then expand it into build/src parts, since users
-# may create executables in both places.
-AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
-at_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $AUTOTEST_PATH $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
-case $as_dir in
-  [\\/]* | ?:[\\/]* )
-    as_fn_append at_path "$as_dir"
-    ;;
-  * )
-    if test -z "$at_top_build_prefix"; then
-      # Stand-alone test suite.
-      as_fn_append at_path "$as_dir"
-    else
-      # Embedded test suite.
-      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
-      as_fn_append at_path "$at_top_srcdir/$as_dir"
-    fi
-    ;;
-esac
-  done
-IFS=$as_save_IFS
-
-
-# Now build and simplify PATH.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-at_new_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $at_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -d "$as_dir" || continue
-case $as_dir in
-  [\\/]* | ?:[\\/]* ) ;;
-  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
-esac
-case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
-  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
-  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
-esac
-  done
-IFS=$as_save_IFS
-
-PATH=$at_new_path
-export PATH
-
-# Setting up the FDs.
-
-
-
-# 5 is the log file.  Not to be overwritten if `-d'.
-if $at_debug_p; then
-  at_suite_log=/dev/null
-else
-  : >"$at_suite_log"
-fi
-exec 5>>"$at_suite_log"
-
-# Banners and logs.
-$as_echo "## ----------------------------------- ##
-## libdap 3.15.1 test suite: dds-test. ##
-## ----------------------------------- ##"
-{
-  $as_echo "## ----------------------------------- ##
-## libdap 3.15.1 test suite: dds-test. ##
-## ----------------------------------- ##"
-  echo
-
-  $as_echo "$as_me: command line was:"
-  $as_echo "  \$ $0 $at_cli_args"
-  echo
-
-  # If ChangeLog exists, list a few lines in case it might help determining
-  # the exact version.
-  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
-    $as_echo "## ---------- ##
-## ChangeLog. ##
-## ---------- ##"
-    echo
-    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
-    echo
-  fi
-
-  {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-}
-  echo
-
-  # Contents of the config files.
-  for at_file in atconfig atlocal
-  do
-    test -r $at_file || continue
-    $as_echo "$as_me: $at_file:"
-    sed 's/^/| /' $at_file
-    echo
-  done
-} >&5
-
-
-## ------------------------- ##
-## Autotest shell functions. ##
-## ------------------------- ##
-
-# at_fn_banner NUMBER
-# -------------------
-# Output banner NUMBER, provided the testsuite is running multiple groups and
-# this particular banner has not yet been printed.
-at_fn_banner ()
-{
-  $at_print_banners || return 0
-  eval at_banner_text=\$at_banner_text_$1
-  test "x$at_banner_text" = "x " && return 0
-  eval "at_banner_text_$1=\" \""
-  if test -z "$at_banner_text"; then
-    $at_first || echo
-  else
-    $as_echo "$as_nl$at_banner_text$as_nl"
-  fi
-} # at_fn_banner
-
-# at_fn_check_prepare_notrace REASON LINE
-# ---------------------------------------
-# Perform AT_CHECK preparations for the command at LINE for an untraceable
-# command; REASON is the reason for disabling tracing.
-at_fn_check_prepare_notrace ()
-{
-  $at_trace_echo "Not enabling shell tracing (command contains $1)"
-  $as_echo "$2" >"$at_check_line_file"
-  at_check_trace=: at_check_filter=:
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_trace LINE
-# ------------------------------
-# Perform AT_CHECK preparations for the command at LINE for a traceable
-# command.
-at_fn_check_prepare_trace ()
-{
-  $as_echo "$1" >"$at_check_line_file"
-  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_dynamic COMMAND LINE
-# ----------------------------------------
-# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
-# preparation function.
-at_fn_check_prepare_dynamic ()
-{
-  case $1 in
-    *$as_nl*)
-      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
-    *)
-      at_fn_check_prepare_trace "$2" ;;
-  esac
-}
-
-# at_fn_filter_trace
-# ------------------
-# Remove the lines in the file "$at_stderr" generated by "set -x" and print
-# them to stderr.
-at_fn_filter_trace ()
-{
-  mv "$at_stderr" "$at_stder1"
-  grep '^ *+' "$at_stder1" >&2
-  grep -v '^ *+' "$at_stder1" >"$at_stderr"
-}
-
-# at_fn_log_failure FILE-LIST
-# ---------------------------
-# Copy the files in the list on stdout with a "> " prefix, and exit the shell
-# with a failure exit code.
-at_fn_log_failure ()
-{
-  for file
-    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
-  echo 1 > "$at_status_file"
-  exit 1
-}
-
-# at_fn_check_skip EXIT-CODE LINE
-# -------------------------------
-# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
-# the test group subshell with that same exit code. Use LINE in any report
-# about test failure.
-at_fn_check_skip ()
-{
-  case $1 in
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$2: hard failure"; exit 99;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-  esac
-}
-
-# at_fn_check_status EXPECTED EXIT-CODE LINE
-# ------------------------------------------
-# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
-# Otherwise, if it is 77 or 99, exit the test group subshell with that same
-# exit code; if it is anything else print an error message referring to LINE,
-# and fail the test.
-at_fn_check_status ()
-{
-  case $2 in
-    $1 ) ;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$3: hard failure"; exit 99;;
-    *) $as_echo "$3: exit code was $2, expected $1"
-      at_failed=:;;
-  esac
-}
-
-# at_fn_diff_devnull FILE
-# -----------------------
-# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
-# invocations.
-at_fn_diff_devnull ()
-{
-  test -s "$1" || return 0
-  $at_diff "$at_devnull" "$1"
-}
-
-# at_fn_test NUMBER
-# -----------------
-# Parse out test NUMBER from the tail of this file.
-at_fn_test ()
-{
-  eval at_sed=\$at_sed$1
-  sed "$at_sed" "$at_myself" > "$at_test_source"
-}
-
-# at_fn_create_debugging_script
-# -----------------------------
-# Create the debugging script $at_group_dir/run which will reproduce the
-# current test group.
-at_fn_create_debugging_script ()
-{
-  {
-    echo "#! /bin/sh" &&
-    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
-    $as_echo "cd '$at_dir'" &&
-    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
-    echo 'exit 1'
-  } >"$at_group_dir/run" &&
-  chmod +x "$at_group_dir/run"
-}
-
-## -------------------------------- ##
-## End of autotest shell functions. ##
-## -------------------------------- ##
-{
-  $as_echo "## ---------------- ##
-## Tested programs. ##
-## ---------------- ##"
-  echo
-} >&5
-
-# Report what programs are being tested.
-for at_program in : $at_tested
-do
-  test "$at_program" = : && continue
-  case $at_program in
-    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
-    * )
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -f "$as_dir/$at_program" && break
-  done
-IFS=$as_save_IFS
-
-    at_program_=$as_dir/$at_program ;;
-  esac
-  if test -f "$at_program_"; then
-    {
-      $as_echo "$at_srcdir/DDSTest.at:7: $at_program_ --version"
-      "$at_program_" --version </dev/null
-      echo
-    } >&5 2>&1
-  else
-    as_fn_error $? "cannot find $at_program" "$LINENO" 5
-  fi
-done
-
-{
-  $as_echo "## ------------------ ##
-## Running the tests. ##
-## ------------------ ##"
-} >&5
-
-at_start_date=`date`
-at_start_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: starting at: $at_start_date" >&5
-
-# Create the master directory if it doesn't already exist.
-as_dir="$at_suite_dir"; as_fn_mkdir_p ||
-  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
-
-# Can we diff with `/dev/null'?  DU 5.0 refuses.
-if diff /dev/null /dev/null >/dev/null 2>&1; then
-  at_devnull=/dev/null
-else
-  at_devnull=$at_suite_dir/devnull
-  >"$at_devnull"
-fi
-
-# Use `diff -u' when possible.
-if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
-then
-  at_diff='diff -u'
-else
-  at_diff=diff
-fi
-
-# Get the last needed group.
-for at_group in : $at_groups; do :; done
-
-# Extract the start and end lines of each test group at the tail
-# of this file
-awk '
-BEGIN { FS="" }
-/^#AT_START_/ {
-  start = NR
-}
-/^#AT_STOP_/ {
-  test = substr ($ 0, 10)
-  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
-  if (test == "'"$at_group"'") exit
-}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
-. "$at_suite_dir/at-source-lines" ||
-  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
-rm -f "$at_suite_dir/at-source-lines"
-
-# Set number of jobs for `-j'; avoid more jobs than test groups.
-set X $at_groups; shift; at_max_jobs=$#
-if test $at_max_jobs -eq 0; then
-  at_jobs=1
-fi
-if test $at_jobs -ne 1 &&
-   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
-  at_jobs=$at_max_jobs
-fi
-
-# If parallel mode, don't output banners, don't split summary lines.
-if test $at_jobs -ne 1; then
-  at_print_banners=false
-  at_quiet=:
-fi
-
-# Set up helper dirs.
-rm -rf "$at_helper_dir" &&
-mkdir "$at_helper_dir" &&
-cd "$at_helper_dir" &&
-{ test -z "$at_groups" || mkdir $at_groups; } ||
-as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
-
-# Functions for running a test group.  We leave the actual
-# test group execution outside of a shell function in order
-# to avoid hitting zsh 4.x exit status bugs.
-
-# at_fn_group_prepare
-# -------------------
-# Prepare for running a test group.
-at_fn_group_prepare ()
-{
-  # The directory for additional per-group helper files.
-  at_job_dir=$at_helper_dir/$at_group
-  # The file containing the location of the last AT_CHECK.
-  at_check_line_file=$at_job_dir/check-line
-  # The file containing the exit status of the last command.
-  at_status_file=$at_job_dir/status
-  # The files containing the output of the tested commands.
-  at_stdout=$at_job_dir/stdout
-  at_stder1=$at_job_dir/stder1
-  at_stderr=$at_job_dir/stderr
-  # The file containing the code for a test group.
-  at_test_source=$at_job_dir/test-source
-  # The file containing dates.
-  at_times_file=$at_job_dir/times
-
-  # Be sure to come back to the top test directory.
-  cd "$at_suite_dir"
-
-  # Clearly separate the test groups when verbose.
-  $at_first || $at_verbose echo
-
-  at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-
-  # Create a fresh directory for the next test group, and enter.
-  # If one already exists, the user may have invoked ./run from
-  # within that directory; we remove the contents, but not the
-  # directory itself, so that we aren't pulling the rug out from
-  # under the shell's notion of the current directory.
-  at_group_dir=$at_suite_dir/$at_group_normalized
-  at_group_log=$at_group_dir/$as_me.log
-  if test -d "$at_group_dir"; then
-  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
-  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
-fi ||
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
-$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
-  # Be tolerant if the above `rm' was not able to remove the directory.
-  as_dir="$at_group_dir"; as_fn_mkdir_p
-
-  echo 0 > "$at_status_file"
-
-  # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log.
-  if test -z "$at_verbose"; then
-    at_tee_pipe='tee -a "$at_group_log"'
-  else
-    at_tee_pipe='cat >> "$at_group_log"'
-  fi
-}
-
-# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
-# -------------------------------------------------
-# Declare the test group ORDINAL, located at LINE with group description DESC,
-# and residing under BANNER. Use PAD to align the status column.
-at_fn_group_banner ()
-{
-  at_setup_line="$2"
-  test -n "$5" && at_fn_banner $5
-  at_desc="$3"
-  case $1 in
-    [0-9])      at_desc_line="  $1: ";;
-    [0-9][0-9]) at_desc_line=" $1: " ;;
-    *)          at_desc_line="$1: "  ;;
-  esac
-  as_fn_append at_desc_line "$3$4"
-  $at_quiet $as_echo_n "$at_desc_line"
-  echo "#                             -*- compilation -*-" >> "$at_group_log"
-}
-
-# at_fn_group_postprocess
-# -----------------------
-# Perform cleanup after running a test group.
-at_fn_group_postprocess ()
-{
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd "$at_suite_dir"
-
-  if test ! -f "$at_check_line_file"; then
-    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
-      A failure happened in a test group before any test could be
-      run. This means that test suite is improperly designed.  Please
-      report this failure to <opendap-tech at opendap.org>.
-_ATEOF
-    $as_echo "$at_setup_line" >"$at_check_line_file"
-    at_status=99
-  fi
-  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
-  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
-  case $at_xfail:$at_status in
-    yes:0)
-	at_msg="UNEXPECTED PASS"
-	at_res=xpass
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    no:0)
-	at_msg="ok"
-	at_res=pass
-	at_errexit=false
-	at_color=$at_grn
-	;;
-    *:77)
-	at_msg='skipped ('`cat "$at_check_line_file"`')'
-	at_res=skip
-	at_errexit=false
-	at_color=$at_blu
-	;;
-    no:* | *:99)
-	at_msg='FAILED ('`cat "$at_check_line_file"`')'
-	at_res=fail
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    yes:*)
-	at_msg='expected failure ('`cat "$at_check_line_file"`')'
-	at_res=xfail
-	at_errexit=false
-	at_color=$at_lgn
-	;;
-  esac
-  echo "$at_res" > "$at_job_dir/$at_res"
-  # In parallel mode, output the summary line only afterwards.
-  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
-    $as_echo "$at_desc_line $at_color$at_msg$at_std"
-  else
-    # Make sure there is a separator even with long titles.
-    $as_echo " $at_color$at_msg$at_std"
-  fi
-  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-  case $at_status in
-    0|77)
-      # $at_times_file is only available if the group succeeded.
-      # We're not including the group log, so the success message
-      # is written in the global log separately.  But we also
-      # write to the group log in case they're using -d.
-      if test -f "$at_times_file"; then
-	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
-	rm -f "$at_times_file"
-      fi
-      $as_echo "$at_log_msg" >> "$at_group_log"
-      $as_echo "$at_log_msg" >&5
-
-      # Cleanup the group directory, unless the user wants the files
-      # or the success was unexpected.
-      if $at_debug_p || test $at_res = xpass; then
-	at_fn_create_debugging_script
-	if test $at_res = xpass && $at_errexit; then
-	  echo stop > "$at_stop_file"
-	fi
-      else
-	if test -d "$at_group_dir"; then
-	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-	  rm -fr "$at_group_dir"
-	fi
-	rm -f "$at_test_source"
-      fi
-      ;;
-    *)
-      # Upon failure, include the log into the testsuite's global
-      # log.  The failure message is written in the group log.  It
-      # is later included in the global log.
-      $as_echo "$at_log_msg" >> "$at_group_log"
-
-      # Upon failure, keep the group directory for autopsy, and create
-      # the debugging script.  With -e, do not start any further tests.
-      at_fn_create_debugging_script
-      if $at_errexit; then
-	echo stop > "$at_stop_file"
-      fi
-      ;;
-  esac
-}
-
-
-## ------------ ##
-## Driver loop. ##
-## ------------ ##
-
-
-if (set -m && set +m && set +b) >/dev/null 2>&1; then
-  set +b
-  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
-else
-  at_job_control_on=: at_job_control_off=: at_job_group=
-fi
-
-for at_signal in 1 2 15; do
-  trap 'set +x; set +e
-	$at_job_control_off
-	at_signal='"$at_signal"'
-	echo stop > "$at_stop_file"
-	trap "" $at_signal
-	at_pgids=
-	for at_pgid in `jobs -p 2>/dev/null`; do
-	  at_pgids="$at_pgids $at_job_group$at_pgid"
-	done
-	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
-	wait
-	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
-	  echo >&2
-	fi
-	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
-	set x $at_signame
-	test 1 -gt 2 && at_signame=$at_signal
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
-$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
-	as_fn_arith 128 + $at_signal && exit_status=$as_val
-	as_fn_exit $exit_status' $at_signal
-done
-
-rm -f "$at_stop_file"
-at_first=:
-
-if test $at_jobs -ne 1 &&
-     rm -f "$at_job_fifo" &&
-     test -n "$at_job_group" &&
-     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
-then
-  # FIFO job dispatcher.
-
-  trap 'at_pids=
-	for at_pid in `jobs -p`; do
-	  at_pids="$at_pids $at_job_group$at_pid"
-	done
-	if test -n "$at_pids"; then
-	  at_sig=TSTP
-	  test "${TMOUT+set}" = set && at_sig=STOP
-	  kill -$at_sig $at_pids 2>/dev/null
-	fi
-	kill -STOP $$
-	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
-
-  echo
-  # Turn jobs into a list of numbers, starting from 1.
-  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
-
-  set X $at_joblist
-  shift
-  for at_group in $at_groups; do
-    $at_job_control_on 2>/dev/null
-    (
-      # Start one test group.
-      $at_job_control_off
-      if $at_first; then
-	exec 7>"$at_job_fifo"
-      else
-	exec 6<&-
-      fi
-      trap 'set +x; set +e
-	    trap "" PIPE
-	    echo stop > "$at_stop_file"
-	    echo >&7
-	    as_fn_exit 141' PIPE
-      at_fn_group_prepare
-      if cd "$at_group_dir" &&
-	 at_fn_test $at_group &&
-	 . "$at_test_source"
-      then :; else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-	at_failed=:
-      fi
-      at_fn_group_postprocess
-      echo >&7
-    ) &
-    $at_job_control_off
-    if $at_first; then
-      at_first=false
-      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
-    fi
-    shift # Consume one token.
-    if test $# -gt 0; then :; else
-      read at_token <&6 || break
-      set x $*
-    fi
-    test -f "$at_stop_file" && break
-  done
-  exec 7>&-
-  # Read back the remaining ($at_jobs - 1) tokens.
-  set X $at_joblist
-  shift
-  if test $# -gt 0; then
-    shift
-    for at_job
-    do
-      read at_token
-    done <&6
-  fi
-  exec 6<&-
-  wait
-else
-  # Run serially, avoid forks and other potential surprises.
-  for at_group in $at_groups; do
-    at_fn_group_prepare
-    if cd "$at_group_dir" &&
-       at_fn_test $at_group &&
-       . "$at_test_source"; then :; else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-      at_failed=:
-    fi
-    at_fn_group_postprocess
-    test -f "$at_stop_file" && break
-    at_first=false
-  done
-fi
-
-# Wrap up the test suite with summary statistics.
-cd "$at_helper_dir"
-
-# Use ?..???? when the list must remain sorted, the faster * otherwise.
-at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
-at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
-at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
-at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
-		 echo $f; done | sed '/?/d; s,/xpass,,'`
-at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
-		echo $f; done | sed '/?/d; s,/fail,,'`
-
-set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
-shift; at_group_count=$#
-set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
-set X $at_xfail_list; shift; at_xfail_count=$#
-set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
-set X $at_skip_list; shift; at_skip_count=$#
-
-as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
-as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
-as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
-
-# Back to the top directory.
-cd "$at_dir"
-rm -rf "$at_helper_dir"
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: ending at: $at_stop_date" >&5
-case $at_start_time,$at_stop_time in
-  [0-9]*,[0-9]*)
-    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
-    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
-    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
-    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
-    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
-    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-    $as_echo "$as_me: test suite duration: $at_duration" >&5
-    ;;
-esac
-
-echo
-$as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-echo
-{
-  echo
-  $as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-  at_color=$at_red
-else
-  # Don't you just love exponential explosion of the number of cases?
-  at_color=$at_red
-  case $at_xpass_count:$at_fail_count:$at_xfail_count in
-    # So far, so good.
-    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
-    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_color$at_result$at_std"
-  echo "$at_result" >&5
-else
-  echo "${at_color}ERROR: $at_result$at_std" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    $as_echo "## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##"
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL "$at_myself" $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL "$at_myself" $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL "$at_myself" $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      $as_echo "## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##"
-      echo
-      for at_group in $at_fail_list
-      do
-	at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
-	echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## ${at_top_build_prefix}config.log ##
-_ASBOX
-      sed 's/^/| /' ${at_top_build_prefix}config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  if $at_debug_p; then
-    at_msg='per-test log files'
-  else
-    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
-  fi
-  $as_echo "Please send $at_msg and all information you think might help:
-
-   To: <opendap-tech at opendap.org>
-   Subject: [libdap 3.15.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
-
-You may investigate any problem if you feel able to do so, in which
-case the test suite provides a good starting point.  Its output may
-be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
-"
-  exit 1
-fi
-
-exit 0
-
-## ------------- ##
-## Actual tests. ##
-## ------------- ##
-#AT_START_1
-at_fn_group_banner 1 'DDSTest.at:34' \
-  "DDS \$abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds" ""
-at_xfail=no
-(
-  $as_echo "1. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:34: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds || true" "DDSTest.at:34"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:34"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:34: diff -b -B \$abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds.base stderr" "DDSTest.at:34"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.hacked.HDF.das.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:34"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_1
-#AT_START_2
-at_fn_group_banner 2 'DDSTest.at:35' \
-  "DDS \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds" ""
-at_xfail=no
-(
-  $as_echo "2. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:35: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds || true" "DDSTest.at:35"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:35"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:35: diff -b -B \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds.base stderr" "DDSTest.at:35"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.das.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:35"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_2
-#AT_START_3
-at_fn_group_banner 3 'DDSTest.at:36' \
-  "DDS \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds" ""
-at_xfail=no
-(
-  $as_echo "3. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:36: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds || true" "DDSTest.at:36"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:36"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:36: diff -b -B \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds.base stderr" "DDSTest.at:36"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/3B42.980909.5.HDF.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:36"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_3
-#AT_START_4
-at_fn_group_banner 4 'DDSTest.at:37' \
-  "DDS \$abs_srcdir/dds-testsuite/AsciiOutputTest1.dds" ""
-at_xfail=no
-(
-  $as_echo "4. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:37: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/AsciiOutputTest1.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds || true" "DDSTest.at:37"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:37"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:37: diff -b -B \$abs_srcdir/dds-testsuite/AsciiOutputTest1.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/AsciiOutputTest1.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds.base stderr" "DDSTest.at:37"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/AsciiOutputTest1.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:37"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_4
-#AT_START_5
-at_fn_group_banner 5 'DDSTest.at:38' \
-  "DDS \$abs_srcdir/dds-testsuite/fnoc1.nc.das.dds" " "
-at_xfail=no
-(
-  $as_echo "5. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:38: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/fnoc1.nc.das.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds || true" "DDSTest.at:38"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:38"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:38: diff -b -B \$abs_srcdir/dds-testsuite/fnoc1.nc.das.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/fnoc1.nc.das.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds.base stderr" "DDSTest.at:38"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.das.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:38"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_5
-#AT_START_6
-at_fn_group_banner 6 'DDSTest.at:39' \
-  "DDS \$abs_srcdir/dds-testsuite/fnoc1.nc.dds" "     "
-at_xfail=no
-(
-  $as_echo "6. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/fnoc1.nc.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:39: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/fnoc1.nc.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/fnoc1.nc.dds || true" "DDSTest.at:39"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/fnoc1.nc.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:39"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:39: diff -b -B \$abs_srcdir/dds-testsuite/fnoc1.nc.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/fnoc1.nc.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.dds.base stderr" "DDSTest.at:39"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/fnoc1.nc.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:39"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_6
-#AT_START_7
-at_fn_group_banner 7 'DDSTest.at:40' \
-  "DDS \$abs_srcdir/dds-testsuite/S2000415.HDF.das.dds" ""
-at_xfail=no
-(
-  $as_echo "7. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:40: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/S2000415.HDF.das.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds || true" "DDSTest.at:40"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:40"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:40: diff -b -B \$abs_srcdir/dds-testsuite/S2000415.HDF.das.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/S2000415.HDF.das.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds.base stderr" "DDSTest.at:40"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.das.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:40"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_7
-#AT_START_8
-at_fn_group_banner 8 'DDSTest.at:41' \
-  "DDS \$abs_srcdir/dds-testsuite/S2000415.HDF.dds" " "
-at_xfail=no
-(
-  $as_echo "8. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/S2000415.HDF.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:41: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/S2000415.HDF.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/S2000415.HDF.dds || true" "DDSTest.at:41"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/S2000415.HDF.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:41"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:41: diff -b -B \$abs_srcdir/dds-testsuite/S2000415.HDF.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/S2000415.HDF.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.dds.base stderr" "DDSTest.at:41"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/S2000415.HDF.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:41"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_8
-#AT_START_9
-at_fn_group_banner 9 'DDSTest.at:42' \
-  "DDS \$abs_srcdir/dds-testsuite/test.1.dds" "       "
-at_xfail=no
-(
-  $as_echo "9. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.1.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:42: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.1.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.1.dds || true" "DDSTest.at:42"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.1.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:42"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:42: diff -b -B \$abs_srcdir/dds-testsuite/test.1.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.1.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.1.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.1.dds.base stderr" "DDSTest.at:42"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.1.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.1.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:42"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_9
-#AT_START_10
-at_fn_group_banner 10 'DDSTest.at:43' \
-  "DDS \$abs_srcdir/dds-testsuite/test.10.dds" "      "
-at_xfail=no
-(
-  $as_echo "10. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.10.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:43: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.10.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.10.dds || true" "DDSTest.at:43"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.10.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:43"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:43: diff -b -B \$abs_srcdir/dds-testsuite/test.10.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.10.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.10.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.10.dds.base stderr" "DDSTest.at:43"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.10.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.10.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:43"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_10
-#AT_START_11
-at_fn_group_banner 11 'DDSTest.at:44' \
-  "DDS \$abs_srcdir/dds-testsuite/test.11.dds" "      "
-at_xfail=no
-(
-  $as_echo "11. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.11.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:44: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.11.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.11.dds || true" "DDSTest.at:44"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.11.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:44"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:44: diff -b -B \$abs_srcdir/dds-testsuite/test.11.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.11.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.11.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.11.dds.base stderr" "DDSTest.at:44"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.11.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.11.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:44"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_11
-#AT_START_12
-at_fn_group_banner 12 'DDSTest.at:45' \
-  "DDS \$abs_srcdir/dds-testsuite/test.12.dds" "      "
-at_xfail=no
-(
-  $as_echo "12. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.12.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:45: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.12.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.12.dds || true" "DDSTest.at:45"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.12.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:45: diff -b -B \$abs_srcdir/dds-testsuite/test.12.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.12.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.12.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.12.dds.base stderr" "DDSTest.at:45"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.12.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.12.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_12
-#AT_START_13
-at_fn_group_banner 13 'DDSTest.at:46' \
-  "DDS \$abs_srcdir/dds-testsuite/test.13.dds" "      "
-at_xfail=no
-(
-  $as_echo "13. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.13.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:46: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.13.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.13.dds || true" "DDSTest.at:46"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.13.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:46: diff -b -B \$abs_srcdir/dds-testsuite/test.13.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.13.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.13.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.13.dds.base stderr" "DDSTest.at:46"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.13.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.13.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_13
-#AT_START_14
-at_fn_group_banner 14 'DDSTest.at:47' \
-  "DDS \$abs_srcdir/dds-testsuite/test.14.dds" "      "
-at_xfail=no
-(
-  $as_echo "14. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.14.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:47: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.14.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.14.dds || true" "DDSTest.at:47"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.14.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:47: diff -b -B \$abs_srcdir/dds-testsuite/test.14.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.14.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.14.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.14.dds.base stderr" "DDSTest.at:47"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.14.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.14.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_14
-#AT_START_15
-at_fn_group_banner 15 'DDSTest.at:48' \
-  "DDS \$abs_srcdir/dds-testsuite/test.15.dds" "      "
-at_xfail=no
-(
-  $as_echo "15. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.15.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:48: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.15.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.15.dds || true" "DDSTest.at:48"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.15.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:48: diff -b -B \$abs_srcdir/dds-testsuite/test.15.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.15.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.15.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.15.dds.base stderr" "DDSTest.at:48"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.15.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.15.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_15
-#AT_START_16
-at_fn_group_banner 16 'DDSTest.at:49' \
-  "DDS \$abs_srcdir/dds-testsuite/test.16.dds" "      "
-at_xfail=no
-(
-  $as_echo "16. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.16.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:49: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.16.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.16.dds || true" "DDSTest.at:49"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.16.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:49: diff -b -B \$abs_srcdir/dds-testsuite/test.16.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.16.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.16.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.16.dds.base stderr" "DDSTest.at:49"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.16.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.16.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_16
-#AT_START_17
-at_fn_group_banner 17 'DDSTest.at:50' \
-  "DDS \$abs_srcdir/dds-testsuite/test.17.dds" "      "
-at_xfail=no
-(
-  $as_echo "17. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.17.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:50: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.17.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.17.dds || true" "DDSTest.at:50"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.17.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:50: diff -b -B \$abs_srcdir/dds-testsuite/test.17.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.17.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.17.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.17.dds.base stderr" "DDSTest.at:50"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.17.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.17.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_17
-#AT_START_18
-at_fn_group_banner 18 'DDSTest.at:51' \
-  "DDS \$abs_srcdir/dds-testsuite/test.18.dds" "      "
-at_xfail=no
-(
-  $as_echo "18. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.18.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:51: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.18.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.18.dds || true" "DDSTest.at:51"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.18.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:51: diff -b -B \$abs_srcdir/dds-testsuite/test.18.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.18.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.18.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.18.dds.base stderr" "DDSTest.at:51"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.18.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.18.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_18
-#AT_START_19
-at_fn_group_banner 19 'DDSTest.at:52' \
-  "DDS \$abs_srcdir/dds-testsuite/test.19.dds" "      "
-at_xfail=no
-(
-  $as_echo "19. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.19.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:52: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.19.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.19.dds || true" "DDSTest.at:52"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.19.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:52: diff -b -B \$abs_srcdir/dds-testsuite/test.19.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.19.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.19.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.19.dds.base stderr" "DDSTest.at:52"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.19.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.19.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_19
-#AT_START_20
-at_fn_group_banner 20 'DDSTest.at:53' \
-  "DDS \$abs_srcdir/dds-testsuite/test.19b.das.dds" " "
-at_xfail=no
-(
-  $as_echo "20. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.19b.das.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:53: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.19b.das.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.19b.das.dds || true" "DDSTest.at:53"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.19b.das.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:53"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:53: diff -b -B \$abs_srcdir/dds-testsuite/test.19b.das.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.19b.das.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.19b.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.19b.das.dds.base stderr" "DDSTest.at:53"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.19b.das.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.19b.das.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:53"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_20
-#AT_START_21
-at_fn_group_banner 21 'DDSTest.at:54' \
-  "DDS \$abs_srcdir/dds-testsuite/test.19b.dds" "     "
-at_xfail=no
-(
-  $as_echo "21. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.19b.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:54: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.19b.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.19b.dds || true" "DDSTest.at:54"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.19b.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:54: diff -b -B \$abs_srcdir/dds-testsuite/test.19b.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.19b.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.19b.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.19b.dds.base stderr" "DDSTest.at:54"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.19b.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.19b.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_21
-#AT_START_22
-at_fn_group_banner 22 'DDSTest.at:55' \
-  "DDS \$abs_srcdir/dds-testsuite/test.2.dds" "       "
-at_xfail=no
-(
-  $as_echo "22. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.2.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:55: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.2.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.2.dds || true" "DDSTest.at:55"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.2.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:55: diff -b -B \$abs_srcdir/dds-testsuite/test.2.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.2.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.2.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.2.dds.base stderr" "DDSTest.at:55"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.2.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.2.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_22
-#AT_START_23
-at_fn_group_banner 23 'DDSTest.at:56' \
-  "DDS \$abs_srcdir/dds-testsuite/test.20.dds" "      "
-at_xfail=no
-(
-  $as_echo "23. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.20.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:56: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.20.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.20.dds || true" "DDSTest.at:56"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.20.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:56"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:56: diff -b -B \$abs_srcdir/dds-testsuite/test.20.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.20.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.20.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.20.dds.base stderr" "DDSTest.at:56"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.20.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.20.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:56"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_23
-#AT_START_24
-at_fn_group_banner 24 'DDSTest.at:57' \
-  "DDS \$abs_srcdir/dds-testsuite/test.3.dds" "       "
-at_xfail=no
-(
-  $as_echo "24. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.3.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:57: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.3.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.3.dds || true" "DDSTest.at:57"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.3.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:57: diff -b -B \$abs_srcdir/dds-testsuite/test.3.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.3.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.3.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.3.dds.base stderr" "DDSTest.at:57"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.3.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.3.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_24
-#AT_START_25
-at_fn_group_banner 25 'DDSTest.at:58' \
-  "DDS \$abs_srcdir/dds-testsuite/test.4.dds" "       "
-at_xfail=no
-(
-  $as_echo "25. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.4.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:58: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.4.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.4.dds || true" "DDSTest.at:58"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.4.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:58: diff -b -B \$abs_srcdir/dds-testsuite/test.4.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.4.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.4.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.4.dds.base stderr" "DDSTest.at:58"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.4.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.4.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_25
-#AT_START_26
-at_fn_group_banner 26 'DDSTest.at:59' \
-  "DDS \$abs_srcdir/dds-testsuite/test.6.dds" "       "
-at_xfail=no
-(
-  $as_echo "26. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.6.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:59: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.6.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.6.dds || true" "DDSTest.at:59"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.6.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:59: diff -b -B \$abs_srcdir/dds-testsuite/test.6.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.6.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.6.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.6.dds.base stderr" "DDSTest.at:59"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.6.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.6.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_26
-#AT_START_27
-at_fn_group_banner 27 'DDSTest.at:60' \
-  "DDS \$abs_srcdir/dds-testsuite/test.7.dds" "       "
-at_xfail=no
-(
-  $as_echo "27. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.7.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:60: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.7.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.7.dds || true" "DDSTest.at:60"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.7.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:60"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:60: diff -b -B \$abs_srcdir/dds-testsuite/test.7.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.7.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.7.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.7.dds.base stderr" "DDSTest.at:60"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.7.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.7.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:60"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_27
-#AT_START_28
-at_fn_group_banner 28 'DDSTest.at:61' \
-  "DDS \$abs_srcdir/dds-testsuite/test.8.dds" "       "
-at_xfail=no
-(
-  $as_echo "28. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.8.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:61: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.8.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.8.dds || true" "DDSTest.at:61"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.8.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:61"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:61: diff -b -B \$abs_srcdir/dds-testsuite/test.8.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.8.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.8.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.8.dds.base stderr" "DDSTest.at:61"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.8.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.8.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:61"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_28
-#AT_START_29
-at_fn_group_banner 29 'DDSTest.at:62' \
-  "DDS \$abs_srcdir/dds-testsuite/test.9.dds" "       "
-at_xfail=no
-(
-  $as_echo "29. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-#Added || true because the $abs_srcdir/dds-test -p < $abs_srcdir/dds-testsuite/test.9.dds needs to be true whether the
-#output is printed to stdout or stderr
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:62: \$abs_builddir/dds-test -p < \$abs_srcdir/dds-testsuite/test.9.dds || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.9.dds || true" "DDSTest.at:62"
-( $at_check_trace; $abs_builddir/dds-test -p < $abs_srcdir/dds-testsuite/test.9.dds || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:62"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-{ set +x
-$as_echo "$at_srcdir/DDSTest.at:62: diff -b -B \$abs_srcdir/dds-testsuite/test.9.dds.base stdout || diff -b -B \$abs_srcdir/dds-testsuite/test.9.dds.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/dds-testsuite/test.9.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.9.dds.base stderr" "DDSTest.at:62"
-( $at_check_trace; diff -b -B $abs_srcdir/dds-testsuite/test.9.dds.base stdout || diff -b -B $abs_srcdir/dds-testsuite/test.9.dds.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DDSTest.at:62"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_29
diff --git a/tests/DDSTest.at b/tests/DDSTest.at
index 383a595..aa8b84c 100644
--- a/tests/DDSTest.at
+++ b/tests/DDSTest.at
@@ -1,33 +1,47 @@
 # Process with autom4te to create an -*- Autotest -*- test suite.
 
-
-# ------------------------------
-#
-
 AT_INIT([dds-test])
 # AT_COPYRIGHT([])
 
 #AT_TESTED([dds-test])
 
-# Usage: _AT_TEST_*(<dds source>, <baseline file>)
+AT_ARG_OPTION_ARG([baselines],
+    [--baselines=yes|no   Build the baseline file for parser test 'arg'],
+    [echo "baselines set to $at_arg_baselines";
+     baselines=$at_arg_baselines],[baselines=])
+
+# Usage: _AT_TEST_*(<dds source>, <baseline file>, [xfail|xpass])
 
 m4_define([_AT_DDS_TEST],   
 [
-# AT_BANNER([Test $1 $2])
-AT_SETUP([DDS $1])
-AT_KEYWORDS([dds])
-#Added || true because the $abs_srcdir/dds-test -p < $1 needs to be true whether the
-#output is printed to stdout or stderr
-AT_CHECK([$abs_builddir/dds-test -p < $1 || true], [], [stdout], [stderr])
-#Need to compare either stdout or stderr because of the directory the above
-#AT_CHECK prints output to
-AT_CHECK([diff -b -B $2 stdout || diff -b -B $2 stderr], [], [ignore],[],[])
-AT_CLEANUP])
+    # AT_BANNER([Test $1 $2])
+    AT_SETUP([DDS $1])
+    AT_KEYWORDS([dds])
+    
+    input=$1
+    baseline=$2
+    
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        # The --baselines=yes option works only for tests that write to stdout
+        AT_CHECK([$abs_builddir/dds-test -p < $input || true], [0], [stdout], [ignore])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [        
+        # Added '|| true' to ensure the command returns '0'
+        AT_CHECK([$abs_builddir/dds-test -p < $input || true], [0], [stdout], [stderr])
+        # Need to compare either stdout or stderr
+        AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [0], [ignore])
+        AT_XFAIL_IF([test "$3" = "xfail"])
+        ])
+        
+    AT_CLEANUP
+])
 
 m4_define([AT_DDS_RESPONSE_TEST],
 [
-# AT_BANNER([DDS response for $1.])
-_AT_DDS_TEST([$abs_srcdir/dds-testsuite/$1], [$abs_srcdir/dds-testsuite/$1.base])
+    # AT_BANNER([DDS response for $1.])
+    _AT_DDS_TEST([$abs_srcdir/dds-testsuite/$1], [$abs_srcdir/dds-testsuite/$1.base], $2)
 ])
 
 
@@ -61,3 +75,14 @@ AT_DDS_RESPONSE_TEST([test.7.dds])
 AT_DDS_RESPONSE_TEST([test.8.dds])
 AT_DDS_RESPONSE_TEST([test.9.dds])
 
+# Added these to test zero-length arrays
+
+AT_DDS_RESPONSE_TEST([test.21.dds])
+AT_DDS_RESPONSE_TEST([test.22.dds])
+AT_DDS_RESPONSE_TEST([test.23.dds])
+AT_DDS_RESPONSE_TEST([test.24.dds], [xpass])
+
+# Empty Structures
+AT_DDS_RESPONSE_TEST([test.25.dds], [xpass])
+AT_DDS_RESPONSE_TEST([test.26.dds], [xpass])
+
diff --git a/tests/DMRTest b/tests/DMRTest
deleted file mode 100755
index 1ae2231..0000000
--- a/tests/DMRTest
+++ /dev/null
@@ -1,10475 +0,0 @@
-#! /bin/sh
-# Generated from DMRTest.at by GNU Autoconf 2.69.
-#
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
-#
-# This test suite is free software; the Free Software Foundation gives
-# unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# How were we run?
-at_cli_args="$@"
-
-
-# Not all shells have the 'times' builtin; the subshell is needed to make
-# sure we discard the 'times: not found' message from the shell.
-at_times_p=false
-(times) >/dev/null 2>&1 && at_times_p=:
-
-# CLI Arguments to pass to the debugging scripts.
-at_debug_args=
-# -e sets to true
-at_errexit_p=false
-# Shall we be verbose?  ':' means no, empty means yes.
-at_verbose=:
-at_quiet=
-# Running several jobs in parallel, 0 means as many as test groups.
-at_jobs=1
-at_traceon=:
-at_trace_echo=:
-at_check_filter_trace=:
-
-# Shall we keep the debug scripts?  Must be `:' when the suite is
-# run by a debug script, so that the script doesn't remove itself.
-at_debug_p=false
-# Display help message?
-at_help_p=false
-# Display the version message?
-at_version_p=false
-# List test groups?
-at_list_p=false
-# --clean
-at_clean=false
-# Test groups to run
-at_groups=
-# Whether to rerun failed tests.
-at_recheck=
-# Whether a write failure occurred
-at_write_fail=0
-
-# The directory we run the suite in.  Default to . if no -C option.
-at_dir=`pwd`
-# An absolute reference to this testsuite script.
-case $as_myself in
-  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
-  * ) at_myself=$at_dir/$as_myself ;;
-esac
-# Whether -C is in effect.
-at_change_dir=false
-
-# Whether to enable colored test results.
-at_color=no
-# List of the tested programs.
-at_tested=''
-# As many question marks as there are digits in the last test group number.
-# Used to normalize the test group numbers so that `ls' lists them in
-# numerical order.
-at_format='???'
-# Description of all the test groups.
-at_help_all="1;DMRTest.at:128;parse dmr-testsuite/test_simple_1.xml;parse;
-2;DMRTest.at:129;parse dmr-testsuite/test_simple_2.xml;parse;
-3;DMRTest.at:130;parse dmr-testsuite/test_simple_3.xml;parse;
-4;DMRTest.at:132;parse dmr-testsuite/test_simple_3_error_1.xml;parse;
-5;DMRTest.at:133;parse dmr-testsuite/test_simple_3_error_2.xml;parse;
-6;DMRTest.at:134;parse dmr-testsuite/test_simple_3_error_3.xml;parse;
-7;DMRTest.at:136;parse dmr-testsuite/test_simple_4.xml;parse;
-8;DMRTest.at:137;parse dmr-testsuite/test_simple_5.xml;parse;
-9;DMRTest.at:138;parse dmr-testsuite/test_simple_6.xml;parse;
-10;DMRTest.at:139;parse dmr-testsuite/test_simple_7.xml;parse;
-11;DMRTest.at:140;parse dmr-testsuite/test_simple_8.xml;parse;
-12;DMRTest.at:141;parse dmr-testsuite/test_simple_9.xml;parse;
-13;DMRTest.at:142;parse dmr-testsuite/test_simple_9.1.xml;parse;
-14;DMRTest.at:143;parse dmr-testsuite/test_simple_10.xml;parse;
-15;DMRTest.at:145;parse dmr-testsuite/test_array_1.xml;parse;
-16;DMRTest.at:146;parse dmr-testsuite/test_array_2.xml;parse;
-17;DMRTest.at:147;parse dmr-testsuite/test_array_3.xml;parse;
-18;DMRTest.at:148;parse dmr-testsuite/test_array_4.xml;parse;
-19;DMRTest.at:149;parse dmr-testsuite/test_array_5.xml;parse;
-20;DMRTest.at:150;parse dmr-testsuite/test_array_6.xml;parse;
-21;DMRTest.at:151;parse dmr-testsuite/test_array_7.xml;parse;
-22;DMRTest.at:152;parse dmr-testsuite/test_array_8.xml;parse;
-23;DMRTest.at:153;parse dmr-testsuite/test_array_10.xml;parse;
-24;DMRTest.at:154;parse dmr-testsuite/test_array_11.xml;parse;
-25;DMRTest.at:158;trans/receive dmr-testsuite/test_simple_1.xml;trans;
-26;DMRTest.at:159;trans/receive dmr-testsuite/test_simple_2.xml;trans;
-27;DMRTest.at:160;trans/receive dmr-testsuite/test_simple_3.xml;trans;
-28;DMRTest.at:161;trans/receive dmr-testsuite/test_simple_4.xml;trans;
-29;DMRTest.at:162;trans/receive dmr-testsuite/test_simple_5.xml;trans;
-30;DMRTest.at:163;trans/receive dmr-testsuite/test_simple_6.xml;trans;
-31;DMRTest.at:164;trans/receive dmr-testsuite/test_simple_7.xml;trans;
-32;DMRTest.at:165;trans/receive dmr-testsuite/test_simple_8.xml;trans;
-33;DMRTest.at:166;trans/receive dmr-testsuite/test_simple_9.xml;trans;
-34;DMRTest.at:167;trans/receive dmr-testsuite/test_simple_9.1.xml;trans;
-35;DMRTest.at:168;trans/receive dmr-testsuite/test_simple_10.xml;trans;
-36;DMRTest.at:170;trans/receive dmr-testsuite/test_array_1.xml;trans;
-37;DMRTest.at:171;trans/receive dmr-testsuite/test_array_2.xml;trans;
-38;DMRTest.at:172;trans/receive dmr-testsuite/test_array_3.xml;trans;
-39;DMRTest.at:173;trans/receive dmr-testsuite/test_array_4.xml;trans;
-40;DMRTest.at:174;trans/receive dmr-testsuite/test_array_5.xml;trans;
-41;DMRTest.at:175;trans/receive dmr-testsuite/test_array_6.xml;trans;
-42;DMRTest.at:176;trans/receive dmr-testsuite/test_array_7.xml;trans;
-43;DMRTest.at:177;trans/receive dmr-testsuite/test_array_8.xml;trans;
-44;DMRTest.at:178;trans/receive dmr-testsuite/test_array_10.xml;trans;
-45;DMRTest.at:179;trans/receive dmr-testsuite/test_array_11.xml;trans;
-46;DMRTest.at:181;intern data dmr-testsuite/test_simple_1.xml;intern;
-47;DMRTest.at:182;intern data dmr-testsuite/test_simple_2.xml;intern;
-48;DMRTest.at:183;intern data dmr-testsuite/test_simple_3.xml;intern;
-49;DMRTest.at:184;intern data dmr-testsuite/test_simple_4.xml;intern;
-50;DMRTest.at:185;intern data dmr-testsuite/test_simple_5.xml;intern;
-51;DMRTest.at:186;intern data dmr-testsuite/test_simple_6.xml;intern;
-52;DMRTest.at:187;intern data dmr-testsuite/test_simple_7.xml;intern;
-53;DMRTest.at:188;intern data dmr-testsuite/test_simple_8.xml;intern;
-54;DMRTest.at:189;intern data dmr-testsuite/test_simple_9.xml;intern;
-55;DMRTest.at:190;intern data dmr-testsuite/test_simple_9.1.xml;intern;
-56;DMRTest.at:191;intern data dmr-testsuite/test_simple_10.xml;intern;
-57;DMRTest.at:193;intern data dmr-testsuite/test_array_1.xml;intern;
-58;DMRTest.at:194;intern data dmr-testsuite/test_array_2.xml;intern;
-59;DMRTest.at:195;intern data dmr-testsuite/test_array_3.xml;intern;
-60;DMRTest.at:196;intern data dmr-testsuite/test_array_4.xml;intern;
-61;DMRTest.at:197;intern data dmr-testsuite/test_array_5.xml;intern;
-62;DMRTest.at:198;intern data dmr-testsuite/test_array_6.xml;intern;
-63;DMRTest.at:199;intern data dmr-testsuite/test_array_7.xml;intern;
-64;DMRTest.at:200;intern data dmr-testsuite/test_array_8.xml;intern;
-65;DMRTest.at:201;intern data dmr-testsuite/test_array_10.xml;intern;
-66;DMRTest.at:202;intern data dmr-testsuite/test_array_11.xml;intern;
-67;DMRTest.at:206;trans/receive dmr-testsuite/test_array_4.xml a;trans;
-68;DMRTest.at:207;trans/receive dmr-testsuite/test_array_4.xml a[][] ;trans;
-69;DMRTest.at:209;trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];/col=[3];a;trans;
-70;DMRTest.at:211;trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];/col=[3];a[][] ;trans;
-71;DMRTest.at:213;trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];/col=[3];a[][];b[0][];c[0:][0:] ;trans;
-72;DMRTest.at:215;trans/receive dmr-testsuite/test_array_4.xml x[][] ;trans;
-73;DMRTest.at:216;trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];x[][] ;trans;
-74;DMRTest.at:218;trans/receive dmr-testsuite/test_array_4.xml c[2:][2:] ;trans;
-75;DMRTest.at:220;trans/receive dmr-testsuite/test_simple_6.xml s;trans;
-76;DMRTest.at:221;trans/receive dmr-testsuite/test_simple_6.xml s.i1;trans;
-77;DMRTest.at:222;trans/receive dmr-testsuite/test_simple_6.xml s.s;trans;
-78;DMRTest.at:223;trans/receive dmr-testsuite/test_simple_6.1.xml s.inner.i2;trans;
-79;DMRTest.at:225;trans/receive dmr-testsuite/test_simple_6.xml s{i1};trans;
-80;DMRTest.at:226;trans/receive dmr-testsuite/test_simple_6.xml s{s};trans;
-81;DMRTest.at:227;trans/receive dmr-testsuite/test_simple_6.1.xml s{inner.i2};trans;
-82;DMRTest.at:228;trans/receive dmr-testsuite/test_simple_6.1.xml s{inner{i2}};trans;
-83;DMRTest.at:231;trans/receive dmr-testsuite/test_array_6.xml a;trans;
-84;DMRTest.at:232;trans/receive dmr-testsuite/test_array_6.xml a[][] ;trans;
-85;DMRTest.at:233;trans/receive dmr-testsuite/test_array_6.xml /row=[0:1];a[][] ;trans;
-86;DMRTest.at:234;trans/receive dmr-testsuite/test_array_6.xml /row=[0:1];a[][1:2] ;trans;
-87;DMRTest.at:237;trans/receive dmr-testsuite/test_array_6.2.xml a;trans;
-88;DMRTest.at:238;trans/receive dmr-testsuite/test_array_6.2.xml a{i;j};trans;
-89;DMRTest.at:239;trans/receive dmr-testsuite/test_array_6.2.xml a.i;trans;
-90;DMRTest.at:240;trans/receive dmr-testsuite/test_array_6.2.xml a{i};trans;
-91;DMRTest.at:241;trans/receive dmr-testsuite/test_array_6.2.xml a.i[0][1:2] ;trans;
-92;DMRTest.at:242;trans/receive dmr-testsuite/test_array_6.2.xml a{i[0][1:2]} ;trans;
-93;DMRTest.at:243;trans/receive dmr-testsuite/test_array_6.2.xml /row=[0:1];a.i[][1:2] ;trans;
-94;DMRTest.at:244;trans/receive dmr-testsuite/test_array_6.2.xml /row=[0:1];a{i[][1:2]} ;trans;
-95;DMRTest.at:246;trans/receive dmr-testsuite/test_array_6.2.xml a.j;trans;
-96;DMRTest.at:249;trans/receive dmr-testsuite/test_array_6.1.xml a;trans;
-97;DMRTest.at:252;trans/receive dmr-testsuite/test_array_6.1.xml /row=[1:2];a[][0] ;trans;
-98;DMRTest.at:253;trans/receive dmr-testsuite/test_array_6.1.xml /row=[1:2];a[][0]{i;j} ;trans;
-99;DMRTest.at:255;trans/receive dmr-testsuite/test_array_6.1.xml row=[1:2];a[][0]{i;j} ;trans;
-100;DMRTest.at:258;trans/receive dmr-testsuite/test_array_6.1.xml a{i[1:2][1:3];j} ;trans;
-101;DMRTest.at:259;trans/receive dmr-testsuite/test_array_6.1.xml a[][]{i[1:2][1:3];j} ;trans;
-102;DMRTest.at:263;trans/receive dmr-testsuite/test_array_6.1.xml /row=[1];a[][0]{i[][0:1]} ;trans;
-103;DMRTest.at:266;trans/receive dmr-testsuite/test_simple_7.xml s;trans;
-104;DMRTest.at:267;trans/receive dmr-testsuite/test_simple_7.xml s{i1;s};trans;
-105;DMRTest.at:269;trans/receive dmr-testsuite/test_simple_7.xml s.i1;trans;
-106;DMRTest.at:270;trans/receive dmr-testsuite/test_simple_7.xml s{i1};trans;
-107;DMRTest.at:272;trans/receive dmr-testsuite/test_simple_8.xml outer;trans;
-108;DMRTest.at:273;trans/receive dmr-testsuite/test_simple_8.xml outer.s.s;trans;
-109;DMRTest.at:274;trans/receive dmr-testsuite/test_simple_8.xml outer{s{s}};trans;
-110;DMRTest.at:276;trans/receive dmr-testsuite/test_array_7.xml s;trans;
-111;DMRTest.at:277;trans/receive dmr-testsuite/test_array_7.xml s{i1;s};trans;
-112;DMRTest.at:279;trans/receive dmr-testsuite/test_array_7.xml s.i1;trans;
-113;DMRTest.at:280;trans/receive dmr-testsuite/test_array_7.xml s{i1};trans;
-114;DMRTest.at:282;trans/receive dmr-testsuite/test_array_7.xml s[1] ;trans;
-115;DMRTest.at:283;trans/receive dmr-testsuite/test_array_7.xml s[1]{i1;s};trans;
-116;DMRTest.at:285;trans/receive dmr-testsuite/test_array_7.xml s[1]{i1};trans;
-117;DMRTest.at:288;trans/receive dmr-testsuite/test_array_8.xml /col=[1:2];s[1][]{i1};trans;
-118;DMRTest.at:289;trans/receive dmr-testsuite/test_array_8.xml col=[1:2];s[1][]{i1};trans;
-119;DMRTest.at:292;trans/receive dmr-testsuite/test_array_7.1.xml ;trans;
-120;DMRTest.at:293;trans/receive dmr-testsuite/test_array_7.1.xml s;trans;
-121;DMRTest.at:295;trans/receive dmr-testsuite/test_array_7.1.xml s.i1;trans;
-122;DMRTest.at:296;trans/receive dmr-testsuite/test_array_7.1.xml s.i1[][] ;trans;
-123;DMRTest.at:297;trans/receive dmr-testsuite/test_array_7.1.xml s{i1};trans;
-124;DMRTest.at:298;trans/receive dmr-testsuite/test_array_7.1.xml s{i1[][]} ;trans;
-125;DMRTest.at:300;trans/receive dmr-testsuite/test_array_7.1.xml s.i1[0][0] ;trans;
-126;DMRTest.at:301;trans/receive dmr-testsuite/test_array_7.1.xml s{i1[0][0]} ;trans;
-127;DMRTest.at:303;trans/receive dmr-testsuite/test_array_7.1.xml s.i1[0:2][1:2] ;trans;
-128;DMRTest.at:307;trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s ;trans;
-129;DMRTest.at:309;trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s.i1 ;trans;
-130;DMRTest.at:310;trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s.i1[][] ;trans;
-131;DMRTest.at:311;trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s{i1} ;trans;
-132;DMRTest.at:312;trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s{i1[][]} ;trans;
-133;DMRTest.at:315;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[]{i1};trans;
-134;DMRTest.at:316;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[]{i1[][]};trans;
-135;DMRTest.at:317;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s{i1[][]};trans;
-136;DMRTest.at:319;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[]{i1[0][]};trans;
-137;DMRTest.at:320;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s{i1[0][]};trans;
-138;DMRTest.at:322;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[0]{i1};trans;
-139;DMRTest.at:323;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[0]{i1[][]};trans;
-140;DMRTest.at:325;trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[0]{i1[0][]};trans;
-141;DMRTest.at:329;trans/receive dmr-testsuite/test_array_1.xml scale(x,1) ;trans;
-142;DMRTest.at:330;trans/receive dmr-testsuite/test_array_1.xml scale(x,10) ;trans;
-143;DMRTest.at:331;trans/receive dmr-testsuite/test_array_1.xml scale(x,-10) ;trans;
-144;DMRTest.at:332;trans/receive dmr-testsuite/test_array_1.xml scale(x,0.001) ;trans;
-145;DMRTest.at:333;trans/receive dmr-testsuite/test_array_1.xml scale(x,-0.001) ;trans;
-146;DMRTest.at:337;trans/receive dmr-testsuite/test_array_1.xml scale(x,0x7fffffffffffffff) ;trans;
-147;DMRTest.at:339;trans/receive dmr-testsuite/test_array_1.xml scale(x,0x8fffffffffffffff) ;trans;
-148;DMRTest.at:343;trans/receive dmr-testsuite/test_array_5.xml scale(a,0.001) ;trans;
-149;DMRTest.at:344;trans/receive dmr-testsuite/test_array_5.xml scale(b,0.001) ;trans;
-150;DMRTest.at:346;trans/receive dmr-testsuite/test_array_5.xml scale(c,0.001) ;trans;
-151;DMRTest.at:347;trans/receive dmr-testsuite/test_array_5.xml scale(d,0.001) ;trans;
-152;DMRTest.at:352;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(u,10) ;trans;
-153;DMRTest.at:353;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(u,v) ;trans;
-154;DMRTest.at:354;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(scale(u,10),0.01) ;trans;
-155;DMRTest.at:357;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(Point.x,10) ;trans;
-156;DMRTest.at:358;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(Point.x,Point.y) ;trans;
-157;DMRTest.at:359;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(scale(Point.x,10),0.01) ;trans;
-158;DMRTest.at:362;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Byte(20:1,2,3,4),10) ;trans;
-159;DMRTest.at:363;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int8(20:10,11,12,-9),10) ;trans;
-160;DMRTest.at:364;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$UInt16(20:1,2,3,4),10) ;trans;
-161;DMRTest.at:365;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int16(20:1,2,3,-4),10) ;trans;
-162;DMRTest.at:366;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$UInt32(20:1,2,3,4),10) ;trans;
-163;DMRTest.at:367;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int32(20:1,2,3,-4),10) ;trans;
-164;DMRTest.at:368;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$UInt64(20:1,2,3,0xffffffffffffffff),1) ;trans;
-165;DMRTest.at:369;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int64(20:1,2,3,0x7fffffffffffffff),1) ;trans;
-166;DMRTest.at:370;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Float32(20:1,2,3,4.55),10) ;trans;
-167;DMRTest.at:371;trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Float64(20:1,2,3,4.55),10) ;trans;
-168;DMRTest.at:375;trans/receive dmr-testsuite/vol_1_ce_10.xml scale(lat,10) ;trans;
-169;DMRTest.at:376;trans/receive dmr-testsuite/vol_1_ce_10.xml scale(lat,10);scale(lon,10) ;trans;
-170;DMRTest.at:377;trans/receive dmr-testsuite/vol_1_ce_10.xml scale(lat,10);scale(lon,10) lat[10:11][10:11];lon[10:11][10:11];trans;
-"
-# List of the all the test groups.
-at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
-
-# at_fn_validate_ranges NAME...
-# -----------------------------
-# Validate and normalize the test group number contained in each variable
-# NAME. Leading zeroes are treated as decimal.
-at_fn_validate_ranges ()
-{
-  for at_grp
-  do
-    eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 170; then
-      $as_echo "invalid test group: $at_value" >&2
-      exit 1
-    fi
-    case $at_value in
-      0*) # We want to treat leading 0 as decimal, like expr and test, but
-	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
-	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
-	  # expr fork, but it is not worth the effort to determine if the
-	  # shell supports XSI when the user can just avoid leading 0.
-	  eval $at_grp='`expr $at_value + 0`' ;;
-    esac
-  done
-}
-
-##
-## Set up package specific options.
-##
-
-at_arg_given_generate_parse=false
-
-at_arg_given_generate_trans=false
-
-at_arg_given_generate_trans_ce=false
-
-
-at_prev=
-for at_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$at_prev"; then
-    at_option=$at_prev=$at_option
-    at_prev=
-  fi
-
-  case $at_option in
-  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
-  *)    at_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $at_option in
-    --help | -h )
-	at_help_p=:
-	;;
-
-    --list | -l )
-	at_list_p=:
-	;;
-
-    --version | -V )
-	at_version_p=:
-	;;
-
-    --clean | -c )
-	at_clean=:
-	;;
-
-    --color )
-	at_color=always
-	;;
-    --color=* )
-	case $at_optarg in
-	no | never | none) at_color=never ;;
-	auto | tty | if-tty) at_color=auto ;;
-	always | yes | force) at_color=always ;;
-	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
-	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
-	esac
-	;;
-
-    --debug | -d )
-	at_debug_p=:
-	;;
-
-    --errexit | -e )
-	at_debug_p=:
-	at_errexit_p=:
-	;;
-
-    --verbose | -v )
-	at_verbose=; at_quiet=:
-	;;
-
-    --trace | -x )
-	at_traceon='set -x'
-	at_trace_echo=echo
-	at_check_filter_trace=at_fn_filter_trace
-	;;
-
-    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
-	at_fn_validate_ranges at_option
-	as_fn_append at_groups "$at_option$as_nl"
-	;;
-
-    # Ranges
-    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
-	at_range_start=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_start
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,$p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '1,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
-    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
-    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`expr $at_option : '\(.*\)-'`
-	at_range_end=`expr $at_option : '.*-\(.*\)'`
-	if test $at_range_start -gt $at_range_end; then
-	  at_tmp=$at_range_end
-	  at_range_end=$at_range_start
-	  at_range_start=$at_tmp
-	fi
-	at_fn_validate_ranges at_range_start at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    # Directory selection.
-    --directory | -C )
-	at_prev=--directory
-	;;
-    --directory=* )
-	at_change_dir=:
-	at_dir=$at_optarg
-	if test x- = "x$at_dir" ; then
-	  at_dir=./-
-	fi
-	;;
-
-    # Parallel execution.
-    --jobs | -j )
-	at_jobs=0
-	;;
-    --jobs=* | -j[0-9]* )
-	if test -n "$at_optarg"; then
-	  at_jobs=$at_optarg
-	else
-	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
-	fi
-	case $at_jobs in *[!0-9]*)
-	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
-	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
-	esac
-	;;
-
-    # Keywords.
-    --keywords | -k )
-	at_prev=--keywords
-	;;
-    --keywords=* )
-	at_groups_selected=$at_help_all
-	at_save_IFS=$IFS
-	IFS=,
-	set X $at_optarg
-	shift
-	IFS=$at_save_IFS
-	for at_keyword
-	do
-	  at_invert=
-	  case $at_keyword in
-	  '!'*)
-	    at_invert="-v"
-	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
-	    ;;
-	  esac
-	  # It is on purpose that we match the test group titles too.
-	  at_groups_selected=`$as_echo "$at_groups_selected" |
-	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
-	done
-	# Smash the keywords.
-	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
-	as_fn_append at_groups "$at_groups_selected$as_nl"
-	;;
-    --recheck)
-	at_recheck=:
-	;;
-    --generate_parse )
-	at_prev=--generate_parse
-	;;
-    --generate_parse=* )
-	at_arg_generate_parse=$at_optarg
-	at_arg_given_generate_parse=:
-	echo "./dmr-test -x -p $at_arg_generate_parse > $at_arg_generate_parse.baseline 2>&1";
-     ./dmr-test -x -p $at_arg_generate_parse > $at_arg_generate_parse.baseline 2>&1;
-     echo "Built baseline for $at_arg_generate_parse";
-     exit
-	;;
-
-    --generate_trans )
-	at_prev=--generate_trans
-	;;
-    --generate_trans=* )
-	at_arg_generate_trans=$at_optarg
-	at_arg_given_generate_trans=:
-	echo "./dmr-test -x -t $at_arg_generate_trans > $at_arg_generate_trans.trans_base 2>&1";
-     ./dmr-test -x -t $at_arg_generate_trans > $at_arg_generate_trans.trans_base 2>&1;
-     echo "Built baseline for $at_arg_generate_trans";
-     exit
-	;;
-
-    --generate_trans_ce )
-	at_prev=--generate_trans_ce
-	;;
-    --generate_trans_ce=* )
-	at_arg_generate_trans_ce=$at_optarg
-	at_arg_given_generate_trans_ce=:
-	data=`echo $at_arg_generate_trans_ce | sed 's@\(.*\),\(.*\),\(.*\)@\1 at g'`
-     ce=`echo $at_arg_generate_trans_ce | sed 's@\(.*\),\(.*\),\(.*\)@\2 at g'`
-     code=`echo $at_arg_generate_trans_ce | sed 's@\(.*\),\(.*\),\(.*\)@\3 at g'`
-     echo "./dmr-test -x -t $data -c $ce > $data.$code.trans_base 2>&1";
-     ./dmr-test -x -t $data -c "$ce" > $data.$code.trans_base 2>&1;
-     echo "Built baseline for $at_arg_generate_trans_ce";
-     exit
-	;;
-
-
-    *=*)
-	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-	# Reject names that are not valid shell variable names.
-	case $at_envvar in
-	  '' | [0-9]* | *[!_$as_cr_alnum]* )
-	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
-	esac
-	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-	# Export now, but save eval for later and for debug scripts.
-	export $at_envvar
-	as_fn_append at_debug_args " $at_envvar='$at_value'"
-	;;
-
-     *) $as_echo "$as_me: invalid option: $at_option" >&2
-	$as_echo "Try \`$0 --help' for more information." >&2
-	exit 1
-	;;
-  esac
-done
-
-# Verify our last option didn't require an argument
-if test -n "$at_prev"; then :
-  as_fn_error $? "\`$at_prev' requires an argument"
-fi
-
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-
-# Selected test groups.
-if test -z "$at_groups$at_recheck"; then
-  at_groups=$at_groups_all
-else
-  if test -n "$at_recheck" && test -r "$at_suite_log"; then
-    at_oldfails=`sed -n '
-      /^Failed tests:$/,/^Skipped tests:$/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^Unexpected passes:$/,/^## Detailed failed tests/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^## Detailed failed tests/q
-      ' "$at_suite_log"`
-    as_fn_append at_groups "$at_oldfails$as_nl"
-  fi
-  # Sort the tests, removing duplicates.
-  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
-fi
-
-if test x"$at_color" = xalways \
-   || { test x"$at_color" = xauto && test -t 1; }; then
-  at_red=`printf '\033[0;31m'`
-  at_grn=`printf '\033[0;32m'`
-  at_lgn=`printf '\033[1;32m'`
-  at_blu=`printf '\033[1;34m'`
-  at_std=`printf '\033[m'`
-else
-  at_red= at_grn= at_lgn= at_blu= at_std=
-fi
-
-# Help message.
-if $at_help_p; then
-  cat <<_ATEOF || at_write_fail=1
-Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
-
-Run all the tests, or the selected TESTS, given by numeric ranges, and
-save a detailed log file.  Upon failure, create debugging scripts.
-
-Do not change environment variables directly.  Instead, set them via
-command line arguments.  Set \`AUTOTEST_PATH' to select the executables
-to exercise.  Each relative directory is expanded as build and source
-directories relative to the top level of this distribution.
-E.g., from within the build directory /tmp/foo-1.0, invoking this:
-
-  $ $0 AUTOTEST_PATH=bin
-
-is equivalent to the following, assuming the source directory is /src/foo-1.0:
-
-  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Operation modes:
-  -h, --help     print the help message, then exit
-  -V, --version  print version number, then exit
-  -c, --clean    remove all the files this test suite might create and exit
-  -l, --list     describes all the tests, or the selected TESTS
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Execution tuning:
-  -C, --directory=DIR
-                 change to directory DIR before starting
-      --color[=never|auto|always]
-                 enable colored test results on terminal, or always
-  -j, --jobs[=N]
-                 Allow N jobs at once; infinite jobs with no arg (default 1)
-  -k, --keywords=KEYWORDS
-                 select the tests matching all the comma-separated KEYWORDS
-                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
-      --recheck  select all tests that failed or passed unexpectedly last time
-  -e, --errexit  abort as soon as a test fails; implies --debug
-  -v, --verbose  force more detailed output
-                 default for debugging scripts
-  -d, --debug    inhibit clean up and top-level logging
-                 default for debugging scripts
-  -x, --trace    enable tests shell tracing
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Other options:
-_ATEOF
-
-cat <<_ATEOF || at_write_fail=1
---generate_parse=arg   Build the baseline file for parser test 'arg'
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
---generate_trans=arg  Build the baseline file for round trip transmission test 'arg'
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
---generate_trans_ce=dataset,ce,ext  Build the baseline (ext) file for round trip transmission test 'arg' with 'ce'
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Report bugs to <opendap-tech at opendap.org>.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# List of tests.
-if $at_list_p; then
-  cat <<_ATEOF || at_write_fail=1
-libdap 3.15.1 test suite: dmr-test test groups:
-
- NUM: FILE-NAME:LINE     TEST-GROUP-NAME
-      KEYWORDS
-
-_ATEOF
-  # Pass an empty line as separator between selected groups and help.
-  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
-    awk 'NF == 1 && FS != ";" {
-	   selected[$ 1] = 1
-	   next
-	 }
-	 /^$/ { FS = ";" }
-	 NF > 0 {
-	   if (selected[$ 1]) {
-	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
-	     if ($ 4) {
-	       lmax = 79
-	       indent = "     "
-	       line = indent
-	       len = length (line)
-	       n = split ($ 4, a, " ")
-	       for (i = 1; i <= n; i++) {
-		 l = length (a[i]) + 1
-		 if (i > 1 && len + l > lmax) {
-		   print line
-		   line = indent " " a[i]
-		   len = length (line)
-		 } else {
-		   line = line " " a[i]
-		   len += l
-		 }
-	       }
-	       if (n)
-		 print line
-	     }
-	   }
-	 }' || at_write_fail=1
-  exit $at_write_fail
-fi
-if $at_version_p; then
-  $as_echo "$as_me (libdap 3.15.1)" &&
-  cat <<\_ATEOF || at_write_fail=1
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This test suite is free software; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# Should we print banners?  Yes if more than one test is run.
-case $at_groups in #(
-  *$as_nl* )
-      at_print_banners=: ;; #(
-  * ) at_print_banners=false ;;
-esac
-# Text for banner N, set to a single space once printed.
-
-# Take any -C into account.
-if $at_change_dir ; then
-  test x != "x$at_dir" && cd "$at_dir" \
-    || as_fn_error $? "unable to change directory"
-  at_dir=`pwd`
-fi
-
-# Load the config files for any default variable assignments.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || as_fn_error $? "invalid content: $at_file"
-done
-
-# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
-: "${at_top_build_prefix=$at_top_builddir}"
-
-# Perform any assignments requested during argument parsing.
-eval "$at_debug_args"
-
-# atconfig delivers names relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir_var in srcdir top_srcdir top_build_prefix
-  do
-    eval at_val=\$at_$at_dir_var
-    case $at_val in
-      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
-      *) at_prefix=../../ ;;
-    esac
-    eval "$at_dir_var=\$at_prefix\$at_val"
-  done
-fi
-
-## -------------------- ##
-## Directory structure. ##
-## -------------------- ##
-
-# This is the set of directories and files used by this script
-# (non-literals are capitalized):
-#
-# TESTSUITE         - the testsuite
-# TESTSUITE.log     - summarizes the complete testsuite run
-# TESTSUITE.dir/    - created during a run, remains after -d or failed test
-# + at-groups/      - during a run: status of all groups in run
-# | + NNN/          - during a run: meta-data about test group NNN
-# | | + check-line  - location (source file and line) of current AT_CHECK
-# | | + status      - exit status of current AT_CHECK
-# | | + stdout      - stdout of current AT_CHECK
-# | | + stder1      - stderr, including trace
-# | | + stderr      - stderr, with trace filtered out
-# | | + test-source - portion of testsuite that defines group
-# | | + times       - timestamps for computing duration
-# | | + pass        - created if group passed
-# | | + xpass       - created if group xpassed
-# | | + fail        - created if group failed
-# | | + xfail       - created if group xfailed
-# | | + skip        - created if group skipped
-# + at-stop         - during a run: end the run if this file exists
-# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
-# + 0..NNN/         - created for each group NNN, remains after -d or failed test
-# | + TESTSUITE.log - summarizes the group results
-# | + ...           - files created during the group
-
-# The directory the whole suite works in.
-# Should be absolute to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite ($at_dir might have changed since earlier).
-at_suite_log=$at_dir/$as_me.log
-# The directory containing helper files per test group.
-at_helper_dir=$at_suite_dir/at-groups
-# Stop file: if it exists, do not start new jobs.
-at_stop_file=$at_suite_dir/at-stop
-# The fifo used for the job dispatcher.
-at_job_fifo=$at_suite_dir/at-job-fifo
-
-if $at_clean; then
-  test -d "$at_suite_dir" &&
-    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-  rm -f -r "$at_suite_dir" "$at_suite_log"
-  exit $?
-fi
-
-# Don't take risks: use only absolute directories in PATH.
-#
-# For stand-alone test suites (ie. atconfig was not found),
-# AUTOTEST_PATH is relative to `.'.
-#
-# For embedded test suites, AUTOTEST_PATH is relative to the top level
-# of the package.  Then expand it into build/src parts, since users
-# may create executables in both places.
-AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
-at_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $AUTOTEST_PATH $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
-case $as_dir in
-  [\\/]* | ?:[\\/]* )
-    as_fn_append at_path "$as_dir"
-    ;;
-  * )
-    if test -z "$at_top_build_prefix"; then
-      # Stand-alone test suite.
-      as_fn_append at_path "$as_dir"
-    else
-      # Embedded test suite.
-      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
-      as_fn_append at_path "$at_top_srcdir/$as_dir"
-    fi
-    ;;
-esac
-  done
-IFS=$as_save_IFS
-
-
-# Now build and simplify PATH.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-at_new_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $at_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -d "$as_dir" || continue
-case $as_dir in
-  [\\/]* | ?:[\\/]* ) ;;
-  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
-esac
-case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
-  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
-  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
-esac
-  done
-IFS=$as_save_IFS
-
-PATH=$at_new_path
-export PATH
-
-# Setting up the FDs.
-
-
-
-# 5 is the log file.  Not to be overwritten if `-d'.
-if $at_debug_p; then
-  at_suite_log=/dev/null
-else
-  : >"$at_suite_log"
-fi
-exec 5>>"$at_suite_log"
-
-# Banners and logs.
-$as_echo "## ----------------------------------- ##
-## libdap 3.15.1 test suite: dmr-test. ##
-## ----------------------------------- ##"
-{
-  $as_echo "## ----------------------------------- ##
-## libdap 3.15.1 test suite: dmr-test. ##
-## ----------------------------------- ##"
-  echo
-
-  $as_echo "$as_me: command line was:"
-  $as_echo "  \$ $0 $at_cli_args"
-  echo
-
-  # If ChangeLog exists, list a few lines in case it might help determining
-  # the exact version.
-  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
-    $as_echo "## ---------- ##
-## ChangeLog. ##
-## ---------- ##"
-    echo
-    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
-    echo
-  fi
-
-  {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-}
-  echo
-
-  # Contents of the config files.
-  for at_file in atconfig atlocal
-  do
-    test -r $at_file || continue
-    $as_echo "$as_me: $at_file:"
-    sed 's/^/| /' $at_file
-    echo
-  done
-} >&5
-
-
-## ------------------------- ##
-## Autotest shell functions. ##
-## ------------------------- ##
-
-# at_fn_banner NUMBER
-# -------------------
-# Output banner NUMBER, provided the testsuite is running multiple groups and
-# this particular banner has not yet been printed.
-at_fn_banner ()
-{
-  $at_print_banners || return 0
-  eval at_banner_text=\$at_banner_text_$1
-  test "x$at_banner_text" = "x " && return 0
-  eval "at_banner_text_$1=\" \""
-  if test -z "$at_banner_text"; then
-    $at_first || echo
-  else
-    $as_echo "$as_nl$at_banner_text$as_nl"
-  fi
-} # at_fn_banner
-
-# at_fn_check_prepare_notrace REASON LINE
-# ---------------------------------------
-# Perform AT_CHECK preparations for the command at LINE for an untraceable
-# command; REASON is the reason for disabling tracing.
-at_fn_check_prepare_notrace ()
-{
-  $at_trace_echo "Not enabling shell tracing (command contains $1)"
-  $as_echo "$2" >"$at_check_line_file"
-  at_check_trace=: at_check_filter=:
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_trace LINE
-# ------------------------------
-# Perform AT_CHECK preparations for the command at LINE for a traceable
-# command.
-at_fn_check_prepare_trace ()
-{
-  $as_echo "$1" >"$at_check_line_file"
-  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_dynamic COMMAND LINE
-# ----------------------------------------
-# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
-# preparation function.
-at_fn_check_prepare_dynamic ()
-{
-  case $1 in
-    *$as_nl*)
-      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
-    *)
-      at_fn_check_prepare_trace "$2" ;;
-  esac
-}
-
-# at_fn_filter_trace
-# ------------------
-# Remove the lines in the file "$at_stderr" generated by "set -x" and print
-# them to stderr.
-at_fn_filter_trace ()
-{
-  mv "$at_stderr" "$at_stder1"
-  grep '^ *+' "$at_stder1" >&2
-  grep -v '^ *+' "$at_stder1" >"$at_stderr"
-}
-
-# at_fn_log_failure FILE-LIST
-# ---------------------------
-# Copy the files in the list on stdout with a "> " prefix, and exit the shell
-# with a failure exit code.
-at_fn_log_failure ()
-{
-  for file
-    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
-  echo 1 > "$at_status_file"
-  exit 1
-}
-
-# at_fn_check_skip EXIT-CODE LINE
-# -------------------------------
-# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
-# the test group subshell with that same exit code. Use LINE in any report
-# about test failure.
-at_fn_check_skip ()
-{
-  case $1 in
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$2: hard failure"; exit 99;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-  esac
-}
-
-# at_fn_check_status EXPECTED EXIT-CODE LINE
-# ------------------------------------------
-# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
-# Otherwise, if it is 77 or 99, exit the test group subshell with that same
-# exit code; if it is anything else print an error message referring to LINE,
-# and fail the test.
-at_fn_check_status ()
-{
-  case $2 in
-    $1 ) ;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$3: hard failure"; exit 99;;
-    *) $as_echo "$3: exit code was $2, expected $1"
-      at_failed=:;;
-  esac
-}
-
-# at_fn_diff_devnull FILE
-# -----------------------
-# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
-# invocations.
-at_fn_diff_devnull ()
-{
-  test -s "$1" || return 0
-  $at_diff "$at_devnull" "$1"
-}
-
-# at_fn_test NUMBER
-# -----------------
-# Parse out test NUMBER from the tail of this file.
-at_fn_test ()
-{
-  eval at_sed=\$at_sed$1
-  sed "$at_sed" "$at_myself" > "$at_test_source"
-}
-
-# at_fn_create_debugging_script
-# -----------------------------
-# Create the debugging script $at_group_dir/run which will reproduce the
-# current test group.
-at_fn_create_debugging_script ()
-{
-  {
-    echo "#! /bin/sh" &&
-    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
-    $as_echo "cd '$at_dir'" &&
-    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
-    echo 'exit 1'
-  } >"$at_group_dir/run" &&
-  chmod +x "$at_group_dir/run"
-}
-
-## -------------------------------- ##
-## End of autotest shell functions. ##
-## -------------------------------- ##
-{
-  $as_echo "## ---------------- ##
-## Tested programs. ##
-## ---------------- ##"
-  echo
-} >&5
-
-# Report what programs are being tested.
-for at_program in : $at_tested
-do
-  test "$at_program" = : && continue
-  case $at_program in
-    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
-    * )
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -f "$as_dir/$at_program" && break
-  done
-IFS=$as_save_IFS
-
-    at_program_=$as_dir/$at_program ;;
-  esac
-  if test -f "$at_program_"; then
-    {
-      $as_echo "$at_srcdir/DMRTest.at:3: $at_program_ --version"
-      "$at_program_" --version </dev/null
-      echo
-    } >&5 2>&1
-  else
-    as_fn_error $? "cannot find $at_program" "$LINENO" 5
-  fi
-done
-
-{
-  $as_echo "## ------------------ ##
-## Running the tests. ##
-## ------------------ ##"
-} >&5
-
-at_start_date=`date`
-at_start_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: starting at: $at_start_date" >&5
-
-# Create the master directory if it doesn't already exist.
-as_dir="$at_suite_dir"; as_fn_mkdir_p ||
-  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
-
-# Can we diff with `/dev/null'?  DU 5.0 refuses.
-if diff /dev/null /dev/null >/dev/null 2>&1; then
-  at_devnull=/dev/null
-else
-  at_devnull=$at_suite_dir/devnull
-  >"$at_devnull"
-fi
-
-# Use `diff -u' when possible.
-if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
-then
-  at_diff='diff -u'
-else
-  at_diff=diff
-fi
-
-# Get the last needed group.
-for at_group in : $at_groups; do :; done
-
-# Extract the start and end lines of each test group at the tail
-# of this file
-awk '
-BEGIN { FS="" }
-/^#AT_START_/ {
-  start = NR
-}
-/^#AT_STOP_/ {
-  test = substr ($ 0, 10)
-  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
-  if (test == "'"$at_group"'") exit
-}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
-. "$at_suite_dir/at-source-lines" ||
-  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
-rm -f "$at_suite_dir/at-source-lines"
-
-# Set number of jobs for `-j'; avoid more jobs than test groups.
-set X $at_groups; shift; at_max_jobs=$#
-if test $at_max_jobs -eq 0; then
-  at_jobs=1
-fi
-if test $at_jobs -ne 1 &&
-   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
-  at_jobs=$at_max_jobs
-fi
-
-# If parallel mode, don't output banners, don't split summary lines.
-if test $at_jobs -ne 1; then
-  at_print_banners=false
-  at_quiet=:
-fi
-
-# Set up helper dirs.
-rm -rf "$at_helper_dir" &&
-mkdir "$at_helper_dir" &&
-cd "$at_helper_dir" &&
-{ test -z "$at_groups" || mkdir $at_groups; } ||
-as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
-
-# Functions for running a test group.  We leave the actual
-# test group execution outside of a shell function in order
-# to avoid hitting zsh 4.x exit status bugs.
-
-# at_fn_group_prepare
-# -------------------
-# Prepare for running a test group.
-at_fn_group_prepare ()
-{
-  # The directory for additional per-group helper files.
-  at_job_dir=$at_helper_dir/$at_group
-  # The file containing the location of the last AT_CHECK.
-  at_check_line_file=$at_job_dir/check-line
-  # The file containing the exit status of the last command.
-  at_status_file=$at_job_dir/status
-  # The files containing the output of the tested commands.
-  at_stdout=$at_job_dir/stdout
-  at_stder1=$at_job_dir/stder1
-  at_stderr=$at_job_dir/stderr
-  # The file containing the code for a test group.
-  at_test_source=$at_job_dir/test-source
-  # The file containing dates.
-  at_times_file=$at_job_dir/times
-
-  # Be sure to come back to the top test directory.
-  cd "$at_suite_dir"
-
-  # Clearly separate the test groups when verbose.
-  $at_first || $at_verbose echo
-
-  at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-
-  # Create a fresh directory for the next test group, and enter.
-  # If one already exists, the user may have invoked ./run from
-  # within that directory; we remove the contents, but not the
-  # directory itself, so that we aren't pulling the rug out from
-  # under the shell's notion of the current directory.
-  at_group_dir=$at_suite_dir/$at_group_normalized
-  at_group_log=$at_group_dir/$as_me.log
-  if test -d "$at_group_dir"; then
-  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
-  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
-fi ||
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
-$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
-  # Be tolerant if the above `rm' was not able to remove the directory.
-  as_dir="$at_group_dir"; as_fn_mkdir_p
-
-  echo 0 > "$at_status_file"
-
-  # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log.
-  if test -z "$at_verbose"; then
-    at_tee_pipe='tee -a "$at_group_log"'
-  else
-    at_tee_pipe='cat >> "$at_group_log"'
-  fi
-}
-
-# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
-# -------------------------------------------------
-# Declare the test group ORDINAL, located at LINE with group description DESC,
-# and residing under BANNER. Use PAD to align the status column.
-at_fn_group_banner ()
-{
-  at_setup_line="$2"
-  test -n "$5" && at_fn_banner $5
-  at_desc="$3"
-  case $1 in
-    [0-9])      at_desc_line="  $1: ";;
-    [0-9][0-9]) at_desc_line=" $1: " ;;
-    *)          at_desc_line="$1: "  ;;
-  esac
-  as_fn_append at_desc_line "$3$4"
-  $at_quiet $as_echo_n "$at_desc_line"
-  echo "#                             -*- compilation -*-" >> "$at_group_log"
-}
-
-# at_fn_group_postprocess
-# -----------------------
-# Perform cleanup after running a test group.
-at_fn_group_postprocess ()
-{
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd "$at_suite_dir"
-
-  if test ! -f "$at_check_line_file"; then
-    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
-      A failure happened in a test group before any test could be
-      run. This means that test suite is improperly designed.  Please
-      report this failure to <opendap-tech at opendap.org>.
-_ATEOF
-    $as_echo "$at_setup_line" >"$at_check_line_file"
-    at_status=99
-  fi
-  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
-  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
-  case $at_xfail:$at_status in
-    yes:0)
-	at_msg="UNEXPECTED PASS"
-	at_res=xpass
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    no:0)
-	at_msg="ok"
-	at_res=pass
-	at_errexit=false
-	at_color=$at_grn
-	;;
-    *:77)
-	at_msg='skipped ('`cat "$at_check_line_file"`')'
-	at_res=skip
-	at_errexit=false
-	at_color=$at_blu
-	;;
-    no:* | *:99)
-	at_msg='FAILED ('`cat "$at_check_line_file"`')'
-	at_res=fail
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    yes:*)
-	at_msg='expected failure ('`cat "$at_check_line_file"`')'
-	at_res=xfail
-	at_errexit=false
-	at_color=$at_lgn
-	;;
-  esac
-  echo "$at_res" > "$at_job_dir/$at_res"
-  # In parallel mode, output the summary line only afterwards.
-  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
-    $as_echo "$at_desc_line $at_color$at_msg$at_std"
-  else
-    # Make sure there is a separator even with long titles.
-    $as_echo " $at_color$at_msg$at_std"
-  fi
-  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-  case $at_status in
-    0|77)
-      # $at_times_file is only available if the group succeeded.
-      # We're not including the group log, so the success message
-      # is written in the global log separately.  But we also
-      # write to the group log in case they're using -d.
-      if test -f "$at_times_file"; then
-	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
-	rm -f "$at_times_file"
-      fi
-      $as_echo "$at_log_msg" >> "$at_group_log"
-      $as_echo "$at_log_msg" >&5
-
-      # Cleanup the group directory, unless the user wants the files
-      # or the success was unexpected.
-      if $at_debug_p || test $at_res = xpass; then
-	at_fn_create_debugging_script
-	if test $at_res = xpass && $at_errexit; then
-	  echo stop > "$at_stop_file"
-	fi
-      else
-	if test -d "$at_group_dir"; then
-	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-	  rm -fr "$at_group_dir"
-	fi
-	rm -f "$at_test_source"
-      fi
-      ;;
-    *)
-      # Upon failure, include the log into the testsuite's global
-      # log.  The failure message is written in the group log.  It
-      # is later included in the global log.
-      $as_echo "$at_log_msg" >> "$at_group_log"
-
-      # Upon failure, keep the group directory for autopsy, and create
-      # the debugging script.  With -e, do not start any further tests.
-      at_fn_create_debugging_script
-      if $at_errexit; then
-	echo stop > "$at_stop_file"
-      fi
-      ;;
-  esac
-}
-
-
-## ------------ ##
-## Driver loop. ##
-## ------------ ##
-
-
-if (set -m && set +m && set +b) >/dev/null 2>&1; then
-  set +b
-  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
-else
-  at_job_control_on=: at_job_control_off=: at_job_group=
-fi
-
-for at_signal in 1 2 15; do
-  trap 'set +x; set +e
-	$at_job_control_off
-	at_signal='"$at_signal"'
-	echo stop > "$at_stop_file"
-	trap "" $at_signal
-	at_pgids=
-	for at_pgid in `jobs -p 2>/dev/null`; do
-	  at_pgids="$at_pgids $at_job_group$at_pgid"
-	done
-	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
-	wait
-	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
-	  echo >&2
-	fi
-	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
-	set x $at_signame
-	test 1 -gt 2 && at_signame=$at_signal
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
-$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
-	as_fn_arith 128 + $at_signal && exit_status=$as_val
-	as_fn_exit $exit_status' $at_signal
-done
-
-rm -f "$at_stop_file"
-at_first=:
-
-if test $at_jobs -ne 1 &&
-     rm -f "$at_job_fifo" &&
-     test -n "$at_job_group" &&
-     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
-then
-  # FIFO job dispatcher.
-
-  trap 'at_pids=
-	for at_pid in `jobs -p`; do
-	  at_pids="$at_pids $at_job_group$at_pid"
-	done
-	if test -n "$at_pids"; then
-	  at_sig=TSTP
-	  test "${TMOUT+set}" = set && at_sig=STOP
-	  kill -$at_sig $at_pids 2>/dev/null
-	fi
-	kill -STOP $$
-	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
-
-  echo
-  # Turn jobs into a list of numbers, starting from 1.
-  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
-
-  set X $at_joblist
-  shift
-  for at_group in $at_groups; do
-    $at_job_control_on 2>/dev/null
-    (
-      # Start one test group.
-      $at_job_control_off
-      if $at_first; then
-	exec 7>"$at_job_fifo"
-      else
-	exec 6<&-
-      fi
-      trap 'set +x; set +e
-	    trap "" PIPE
-	    echo stop > "$at_stop_file"
-	    echo >&7
-	    as_fn_exit 141' PIPE
-      at_fn_group_prepare
-      if cd "$at_group_dir" &&
-	 at_fn_test $at_group &&
-	 . "$at_test_source"
-      then :; else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-	at_failed=:
-      fi
-      at_fn_group_postprocess
-      echo >&7
-    ) &
-    $at_job_control_off
-    if $at_first; then
-      at_first=false
-      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
-    fi
-    shift # Consume one token.
-    if test $# -gt 0; then :; else
-      read at_token <&6 || break
-      set x $*
-    fi
-    test -f "$at_stop_file" && break
-  done
-  exec 7>&-
-  # Read back the remaining ($at_jobs - 1) tokens.
-  set X $at_joblist
-  shift
-  if test $# -gt 0; then
-    shift
-    for at_job
-    do
-      read at_token
-    done <&6
-  fi
-  exec 6<&-
-  wait
-else
-  # Run serially, avoid forks and other potential surprises.
-  for at_group in $at_groups; do
-    at_fn_group_prepare
-    if cd "$at_group_dir" &&
-       at_fn_test $at_group &&
-       . "$at_test_source"; then :; else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-      at_failed=:
-    fi
-    at_fn_group_postprocess
-    test -f "$at_stop_file" && break
-    at_first=false
-  done
-fi
-
-# Wrap up the test suite with summary statistics.
-cd "$at_helper_dir"
-
-# Use ?..???? when the list must remain sorted, the faster * otherwise.
-at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
-at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
-at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
-at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
-		 echo $f; done | sed '/?/d; s,/xpass,,'`
-at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
-		echo $f; done | sed '/?/d; s,/fail,,'`
-
-set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
-shift; at_group_count=$#
-set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
-set X $at_xfail_list; shift; at_xfail_count=$#
-set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
-set X $at_skip_list; shift; at_skip_count=$#
-
-as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
-as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
-as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
-
-# Back to the top directory.
-cd "$at_dir"
-rm -rf "$at_helper_dir"
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: ending at: $at_stop_date" >&5
-case $at_start_time,$at_stop_time in
-  [0-9]*,[0-9]*)
-    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
-    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
-    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
-    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
-    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
-    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-    $as_echo "$as_me: test suite duration: $at_duration" >&5
-    ;;
-esac
-
-echo
-$as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-echo
-{
-  echo
-  $as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-  at_color=$at_red
-else
-  # Don't you just love exponential explosion of the number of cases?
-  at_color=$at_red
-  case $at_xpass_count:$at_fail_count:$at_xfail_count in
-    # So far, so good.
-    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
-    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_color$at_result$at_std"
-  echo "$at_result" >&5
-else
-  echo "${at_color}ERROR: $at_result$at_std" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    $as_echo "## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##"
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL "$at_myself" $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL "$at_myself" $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL "$at_myself" $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      $as_echo "## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##"
-      echo
-      for at_group in $at_fail_list
-      do
-	at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
-	echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## ${at_top_build_prefix}config.log ##
-_ASBOX
-      sed 's/^/| /' ${at_top_build_prefix}config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  if $at_debug_p; then
-    at_msg='per-test log files'
-  else
-    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
-  fi
-  $as_echo "Please send $at_msg and all information you think might help:
-
-   To: <opendap-tech at opendap.org>
-   Subject: [libdap 3.15.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
-
-You may investigate any problem if you feel able to do so, in which
-case the test suite provides a good starting point.  Its output may
-be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
-"
-  exit 1
-fi
-
-exit 0
-
-## ------------- ##
-## Actual tests. ##
-## ------------- ##
-#AT_START_1
-at_fn_group_banner 1 'DMRTest.at:128' \
-  "parse dmr-testsuite/test_simple_1.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "1. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_1.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:128: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:128"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:128"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:128: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:128"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:128"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_1
-#AT_START_2
-at_fn_group_banner 2 'DMRTest.at:129' \
-  "parse dmr-testsuite/test_simple_2.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "2. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_2.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:129: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:129"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:129"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:129: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:129"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:129"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_2
-#AT_START_3
-at_fn_group_banner 3 'DMRTest.at:130' \
-  "parse dmr-testsuite/test_simple_3.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "3. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_3.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:130: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:130"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:130"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:130: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:130"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:130"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_3
-#AT_START_4
-at_fn_group_banner 4 'DMRTest.at:132' \
-  "parse dmr-testsuite/test_simple_3_error_1.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "4. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_3_error_1.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:132: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:132"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:132"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:132: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:132"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:132"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_4
-#AT_START_5
-at_fn_group_banner 5 'DMRTest.at:133' \
-  "parse dmr-testsuite/test_simple_3_error_2.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "5. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_3_error_2.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:133: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:133"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:133"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:133: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:133"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:133"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_5
-#AT_START_6
-at_fn_group_banner 6 'DMRTest.at:134' \
-  "parse dmr-testsuite/test_simple_3_error_3.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "6. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_3_error_3.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:134: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:134"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:134"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:134: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:134"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:134"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_6
-#AT_START_7
-at_fn_group_banner 7 'DMRTest.at:136' \
-  "parse dmr-testsuite/test_simple_4.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "7. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_4.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:136: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:136"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:136"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:136: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:136"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:136"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_7
-#AT_START_8
-at_fn_group_banner 8 'DMRTest.at:137' \
-  "parse dmr-testsuite/test_simple_5.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "8. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_5.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:137: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:137"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:137"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:137: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:137"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:137"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_8
-#AT_START_9
-at_fn_group_banner 9 'DMRTest.at:138' \
-  "parse dmr-testsuite/test_simple_6.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "9. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:138: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:138"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:138"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:138: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:138"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:138"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_9
-#AT_START_10
-at_fn_group_banner 10 'DMRTest.at:139' \
-  "parse dmr-testsuite/test_simple_7.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "10. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:139: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:139"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:139"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:139: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:139"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:139"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_10
-#AT_START_11
-at_fn_group_banner 11 'DMRTest.at:140' \
-  "parse dmr-testsuite/test_simple_8.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "11. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_8.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:140: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:140"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:140"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:140: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:140"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:140"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_11
-#AT_START_12
-at_fn_group_banner 12 'DMRTest.at:141' \
-  "parse dmr-testsuite/test_simple_9.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "12. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_9.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:141: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:141"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:141"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:141: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:141"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:141"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_12
-#AT_START_13
-at_fn_group_banner 13 'DMRTest.at:142' \
-  "parse dmr-testsuite/test_simple_9.1.xml" "        "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "13. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_9.1.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:142: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:142"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:142"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:142: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:142"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:142"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_13
-#AT_START_14
-at_fn_group_banner 14 'DMRTest.at:143' \
-  "parse dmr-testsuite/test_simple_10.xml" "         "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "14. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_10.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:143: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:143"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:143"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:143: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:143"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:143"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_14
-#AT_START_15
-at_fn_group_banner 15 'DMRTest.at:145' \
-  "parse dmr-testsuite/test_array_1.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "15. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:145: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:145"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:145"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:145: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:145"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:145"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_15
-#AT_START_16
-at_fn_group_banner 16 'DMRTest.at:146' \
-  "parse dmr-testsuite/test_array_2.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "16. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_2.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:146: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:146"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:146"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:146: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:146"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:146"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_16
-#AT_START_17
-at_fn_group_banner 17 'DMRTest.at:147' \
-  "parse dmr-testsuite/test_array_3.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "17. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_3.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:147: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:147"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:147"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:147: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:147"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:147"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_17
-#AT_START_18
-at_fn_group_banner 18 'DMRTest.at:148' \
-  "parse dmr-testsuite/test_array_4.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "18. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:148: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:148"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:148"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:148: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:148"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:148"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_18
-#AT_START_19
-at_fn_group_banner 19 'DMRTest.at:149' \
-  "parse dmr-testsuite/test_array_5.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "19. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:149: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:149"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:149"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:149: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:149"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:149"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_19
-#AT_START_20
-at_fn_group_banner 20 'DMRTest.at:150' \
-  "parse dmr-testsuite/test_array_6.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "20. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:150: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:150"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:150"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:150: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:150"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:150"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_20
-#AT_START_21
-at_fn_group_banner 21 'DMRTest.at:151' \
-  "parse dmr-testsuite/test_array_7.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "21. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:151: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:151"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:151"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:151: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:151"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:151"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_21
-#AT_START_22
-at_fn_group_banner 22 'DMRTest.at:152' \
-  "parse dmr-testsuite/test_array_8.xml" "           "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "22. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_8.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:152: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:152"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:152"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:152: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:152"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:152"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_22
-#AT_START_23
-at_fn_group_banner 23 'DMRTest.at:153' \
-  "parse dmr-testsuite/test_array_10.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "23. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_10.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:153: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:153"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:153"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:153: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:153"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:153"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_23
-#AT_START_24
-at_fn_group_banner 24 'DMRTest.at:154' \
-  "parse dmr-testsuite/test_array_11.xml" "          "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "24. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_11.xml
-    baseline=$input.baseline
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:154: \$abs_builddir/dmr-test -x -p \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -p $input || true" "DMRTest.at:154"
-( $at_check_trace; $abs_builddir/dmr-test -x -p $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:154"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:154: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:154"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:154"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_24
-#AT_START_25
-at_fn_group_banner 25 'DMRTest.at:158' \
-  "trans/receive dmr-testsuite/test_simple_1.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "25. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_1.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:158: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:158"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:158"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:158: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:158"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:158"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_25
-#AT_START_26
-at_fn_group_banner 26 'DMRTest.at:159' \
-  "trans/receive dmr-testsuite/test_simple_2.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "26. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_2.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:159: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:159"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:159"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:159: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:159"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:159"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_26
-#AT_START_27
-at_fn_group_banner 27 'DMRTest.at:160' \
-  "trans/receive dmr-testsuite/test_simple_3.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "27. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_3.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:160: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:160"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:160"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:160: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:160"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:160"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_27
-#AT_START_28
-at_fn_group_banner 28 'DMRTest.at:161' \
-  "trans/receive dmr-testsuite/test_simple_4.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "28. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_4.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:161: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:161"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:161"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:161: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:161"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:161"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_28
-#AT_START_29
-at_fn_group_banner 29 'DMRTest.at:162' \
-  "trans/receive dmr-testsuite/test_simple_5.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "29. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_5.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:162: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:162"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:162"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:162: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:162"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:162"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_29
-#AT_START_30
-at_fn_group_banner 30 'DMRTest.at:163' \
-  "trans/receive dmr-testsuite/test_simple_6.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "30. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:163: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:163"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:163"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:163: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:163"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:163"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_30
-#AT_START_31
-at_fn_group_banner 31 'DMRTest.at:164' \
-  "trans/receive dmr-testsuite/test_simple_7.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "31. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:164: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:164"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:164"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:164: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:164"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:164"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_31
-#AT_START_32
-at_fn_group_banner 32 'DMRTest.at:165' \
-  "trans/receive dmr-testsuite/test_simple_8.xml" "  "
-at_xfail=no
-      test "xfail" = "xfail" && at_xfail=yes
-(
-  $as_echo "32. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_8.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:165: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:165"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:165"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:165: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:165"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:165"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_32
-#AT_START_33
-at_fn_group_banner 33 'DMRTest.at:166' \
-  "trans/receive dmr-testsuite/test_simple_9.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "33. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_9.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:166: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:166"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:166"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:166: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:166"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:166"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_33
-#AT_START_34
-at_fn_group_banner 34 'DMRTest.at:167' \
-  "trans/receive dmr-testsuite/test_simple_9.1.xml" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "34. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_9.1.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:167: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:167"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:167"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:167: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:167"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:167"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_34
-#AT_START_35
-at_fn_group_banner 35 'DMRTest.at:168' \
-  "trans/receive dmr-testsuite/test_simple_10.xml" " "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "35. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_10.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:168: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:168"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:168"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:168: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:168"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:168"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_35
-#AT_START_36
-at_fn_group_banner 36 'DMRTest.at:170' \
-  "trans/receive dmr-testsuite/test_array_1.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "36. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:170: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:170"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:170"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:170: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:170"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:170"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_36
-#AT_START_37
-at_fn_group_banner 37 'DMRTest.at:171' \
-  "trans/receive dmr-testsuite/test_array_2.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "37. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_2.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:171: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:171"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:171"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:171: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:171"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:171"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_37
-#AT_START_38
-at_fn_group_banner 38 'DMRTest.at:172' \
-  "trans/receive dmr-testsuite/test_array_3.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "38. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_3.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:172: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:172"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:172"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:172: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:172"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:172"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_38
-#AT_START_39
-at_fn_group_banner 39 'DMRTest.at:173' \
-  "trans/receive dmr-testsuite/test_array_4.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "39. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:173: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:173"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:173"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:173: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:173"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:173"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_39
-#AT_START_40
-at_fn_group_banner 40 'DMRTest.at:174' \
-  "trans/receive dmr-testsuite/test_array_5.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "40. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:174: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:174"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:174"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:174: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:174"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:174"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_40
-#AT_START_41
-at_fn_group_banner 41 'DMRTest.at:175' \
-  "trans/receive dmr-testsuite/test_array_6.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "41. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:175: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:175"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:175"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:175: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:175"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:175"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_41
-#AT_START_42
-at_fn_group_banner 42 'DMRTest.at:176' \
-  "trans/receive dmr-testsuite/test_array_7.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "42. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:176: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:176"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:176"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:176: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:176"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:176"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_42
-#AT_START_43
-at_fn_group_banner 43 'DMRTest.at:177' \
-  "trans/receive dmr-testsuite/test_array_8.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "43. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_8.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:177: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:177"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:177"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:177: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:177"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:177"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_43
-#AT_START_44
-at_fn_group_banner 44 'DMRTest.at:178' \
-  "trans/receive dmr-testsuite/test_array_10.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "44. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_10.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:178: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:178"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:178"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:178: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:178"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:178"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_44
-#AT_START_45
-at_fn_group_banner 45 'DMRTest.at:179' \
-  "trans/receive dmr-testsuite/test_array_11.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "45. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_11.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:179: \$abs_builddir/dmr-test -x -t \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input || true" "DMRTest.at:179"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:179"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:179: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:179"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:179"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_45
-#AT_START_46
-at_fn_group_banner 46 'DMRTest.at:181' \
-  "intern data dmr-testsuite/test_simple_1.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "46. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_1.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:181: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:181"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:181"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:181: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:181"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:181"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_46
-#AT_START_47
-at_fn_group_banner 47 'DMRTest.at:182' \
-  "intern data dmr-testsuite/test_simple_2.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "47. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_2.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:182: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:182"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:182"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:182: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:182"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:182"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_47
-#AT_START_48
-at_fn_group_banner 48 'DMRTest.at:183' \
-  "intern data dmr-testsuite/test_simple_3.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "48. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_3.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:183: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:183"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:183"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:183: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:183"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:183"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_48
-#AT_START_49
-at_fn_group_banner 49 'DMRTest.at:184' \
-  "intern data dmr-testsuite/test_simple_4.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "49. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_4.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:184: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:184"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:184"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:184: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:184"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:184"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_49
-#AT_START_50
-at_fn_group_banner 50 'DMRTest.at:185' \
-  "intern data dmr-testsuite/test_simple_5.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "50. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_5.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:185: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:185"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:185"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:185: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:185"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:185"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_50
-#AT_START_51
-at_fn_group_banner 51 'DMRTest.at:186' \
-  "intern data dmr-testsuite/test_simple_6.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "51. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:186: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:186"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:186"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:186: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:186"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:186"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_51
-#AT_START_52
-at_fn_group_banner 52 'DMRTest.at:187' \
-  "intern data dmr-testsuite/test_simple_7.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "52. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:187: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:187"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:187"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:187: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:187"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:187"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_52
-#AT_START_53
-at_fn_group_banner 53 'DMRTest.at:188' \
-  "intern data dmr-testsuite/test_simple_8.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "53. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_8.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:188: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:188"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:188"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:188: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:188"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:188"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_53
-#AT_START_54
-at_fn_group_banner 54 'DMRTest.at:189' \
-  "intern data dmr-testsuite/test_simple_9.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "54. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_9.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:189: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:189"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:189"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:189: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:189"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:189"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_54
-#AT_START_55
-at_fn_group_banner 55 'DMRTest.at:190' \
-  "intern data dmr-testsuite/test_simple_9.1.xml" "  "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "55. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_9.1.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:190: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:190"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:190"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:190: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:190"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:190"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_55
-#AT_START_56
-at_fn_group_banner 56 'DMRTest.at:191' \
-  "intern data dmr-testsuite/test_simple_10.xml" "   "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "56. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_10.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:191: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:191"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:191"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:191: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:191"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:191"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_56
-#AT_START_57
-at_fn_group_banner 57 'DMRTest.at:193' \
-  "intern data dmr-testsuite/test_array_1.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "57. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:193: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:193"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:193"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:193: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:193"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:193"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_57
-#AT_START_58
-at_fn_group_banner 58 'DMRTest.at:194' \
-  "intern data dmr-testsuite/test_array_2.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "58. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_2.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:194: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:194"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:194"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:194: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:194"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:194"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_58
-#AT_START_59
-at_fn_group_banner 59 'DMRTest.at:195' \
-  "intern data dmr-testsuite/test_array_3.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "59. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_3.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:195: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:195"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:195"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:195: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:195"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:195"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_59
-#AT_START_60
-at_fn_group_banner 60 'DMRTest.at:196' \
-  "intern data dmr-testsuite/test_array_4.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "60. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:196: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:196"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:196"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:196: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:196"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:196"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_60
-#AT_START_61
-at_fn_group_banner 61 'DMRTest.at:197' \
-  "intern data dmr-testsuite/test_array_5.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "61. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:197: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:197"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:197"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:197: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:197"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:197"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_61
-#AT_START_62
-at_fn_group_banner 62 'DMRTest.at:198' \
-  "intern data dmr-testsuite/test_array_6.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "62. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:198: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:198"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:198"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:198: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:198"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:198"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_62
-#AT_START_63
-at_fn_group_banner 63 'DMRTest.at:199' \
-  "intern data dmr-testsuite/test_array_7.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "63. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:199: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:199"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:199"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:199: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:199"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:199"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_63
-#AT_START_64
-at_fn_group_banner 64 'DMRTest.at:200' \
-  "intern data dmr-testsuite/test_array_8.xml" "     "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "64. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_8.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:200: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:200"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:200"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:200: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:200"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:200"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_64
-#AT_START_65
-at_fn_group_banner 65 'DMRTest.at:201' \
-  "intern data dmr-testsuite/test_array_10.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "65. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_10.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:201: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:201"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:201"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:201: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:201"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:201"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_65
-#AT_START_66
-at_fn_group_banner 66 'DMRTest.at:202' \
-  "intern data dmr-testsuite/test_array_11.xml" "    "
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "66. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_11.xml
-    baseline=$input.trans_base
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:202: \$abs_builddir/dmr-test -x -i \$input || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -i $input || true" "DMRTest.at:202"
-( $at_check_trace; $abs_builddir/dmr-test -x -i $input || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:202"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:202: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:202"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:202"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_66
-#AT_START_67
-at_fn_group_banner 67 'DMRTest.at:206' \
-  "trans/receive dmr-testsuite/test_array_4.xml a" " "
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "67. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:206: \$abs_builddir/dmr-test -x -t \$input -c \"a\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a\" || true" "DMRTest.at:206"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:206"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:206: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:206"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:206"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_67
-#AT_START_68
-at_fn_group_banner 68 'DMRTest.at:207' \
-  "trans/receive dmr-testsuite/test_array_4.xml a[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "68. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:207: \$abs_builddir/dmr-test -x -t \$input -c \"a[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a[][] \" || true" "DMRTest.at:207"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:207"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:207: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:207"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:207"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_68
-#AT_START_69
-at_fn_group_banner 69 'DMRTest.at:209' \
-  "trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];/col=[3];a" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "69. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:209: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];/col=[3];a\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];/col=[3];a\" || true" "DMRTest.at:209"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];/col=[3];a" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:209"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:209: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:209"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:209"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_69
-#AT_START_70
-at_fn_group_banner 70 'DMRTest.at:211' \
-  "trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];/col=[3];a[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "70. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:211: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];/col=[3];a[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];/col=[3];a[][] \" || true" "DMRTest.at:211"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];/col=[3];a[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:211"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:211: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:211"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:211"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_70
-#AT_START_71
-at_fn_group_banner 71 'DMRTest.at:213' \
-  "trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];/col=[3];a[][];b[0][];c[0:][0:] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "71. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.5.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:213: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];/col=[3];a[][];b[0][];c[0:][0:] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];/col=[3];a[][];b[0][];c[0:][0:] \" || true" "DMRTest.at:213"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];/col=[3];a[][];b[0][];c[0:][0:] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:213"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:213: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:213"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:213"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_71
-#AT_START_72
-at_fn_group_banner 72 'DMRTest.at:215' \
-  "trans/receive dmr-testsuite/test_array_4.xml x[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "72. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.6.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:215: \$abs_builddir/dmr-test -x -t \$input -c \"x[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"x[][] \" || true" "DMRTest.at:215"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "x[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:215"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:215: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:215"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:215"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_72
-#AT_START_73
-at_fn_group_banner 73 'DMRTest.at:216' \
-  "trans/receive dmr-testsuite/test_array_4.xml /row=[0:1];x[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "73. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.7.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:216: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];x[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];x[][] \" || true" "DMRTest.at:216"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];x[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:216"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:216: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:216"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:216"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_73
-#AT_START_74
-at_fn_group_banner 74 'DMRTest.at:218' \
-  "trans/receive dmr-testsuite/test_array_4.xml c[2:][2:] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "74. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_4.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_4.xml.8.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:218: \$abs_builddir/dmr-test -x -t \$input -c \"c[2:][2:] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"c[2:][2:] \" || true" "DMRTest.at:218"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "c[2:][2:] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:218"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:218: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:218"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:218"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_74
-#AT_START_75
-at_fn_group_banner 75 'DMRTest.at:220' \
-  "trans/receive dmr-testsuite/test_simple_6.xml s" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "75. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:220: \$abs_builddir/dmr-test -x -t \$input -c \"s\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s\" || true" "DMRTest.at:220"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:220"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:220: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:220"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:220"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_75
-#AT_START_76
-at_fn_group_banner 76 'DMRTest.at:221' \
-  "trans/receive dmr-testsuite/test_simple_6.xml s.i1" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "76. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:221: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1\" || true" "DMRTest.at:221"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:221"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:221: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:221"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:221"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_76
-#AT_START_77
-at_fn_group_banner 77 'DMRTest.at:222' \
-  "trans/receive dmr-testsuite/test_simple_6.xml s.s" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "77. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:222: \$abs_builddir/dmr-test -x -t \$input -c \"s.s\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.s\" || true" "DMRTest.at:222"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.s" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:222"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:222: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:222"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:222"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_77
-#AT_START_78
-at_fn_group_banner 78 'DMRTest.at:223' \
-  "trans/receive dmr-testsuite/test_simple_6.1.xml s.inner.i2" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "78. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.1.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:223: \$abs_builddir/dmr-test -x -t \$input -c \"s.inner.i2\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.inner.i2\" || true" "DMRTest.at:223"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.inner.i2" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:223"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:223: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:223"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:223"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_78
-#AT_START_79
-at_fn_group_banner 79 'DMRTest.at:225' \
-  "trans/receive dmr-testsuite/test_simple_6.xml s{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "79. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:225: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1}\" || true" "DMRTest.at:225"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:225"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:225: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:225"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:225"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_79
-#AT_START_80
-at_fn_group_banner 80 'DMRTest.at:226' \
-  "trans/receive dmr-testsuite/test_simple_6.xml s{s}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "80. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:226: \$abs_builddir/dmr-test -x -t \$input -c \"s{s}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{s}\" || true" "DMRTest.at:226"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{s}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:226"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:226: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:226"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:226"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_80
-#AT_START_81
-at_fn_group_banner 81 'DMRTest.at:227' \
-  "trans/receive dmr-testsuite/test_simple_6.1.xml s{inner.i2}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "81. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.1.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:227: \$abs_builddir/dmr-test -x -t \$input -c \"s{inner.i2}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{inner.i2}\" || true" "DMRTest.at:227"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{inner.i2}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:227"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:227: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:227"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:227"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_81
-#AT_START_82
-at_fn_group_banner 82 'DMRTest.at:228' \
-  "trans/receive dmr-testsuite/test_simple_6.1.xml s{inner{i2}}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "82. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_6.1.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:228: \$abs_builddir/dmr-test -x -t \$input -c \"s{inner{i2}}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{inner{i2}}\" || true" "DMRTest.at:228"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{inner{i2}}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:228"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:228: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:228"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:228"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_82
-#AT_START_83
-at_fn_group_banner 83 'DMRTest.at:231' \
-  "trans/receive dmr-testsuite/test_array_6.xml a" " "
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "83. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:231: \$abs_builddir/dmr-test -x -t \$input -c \"a\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a\" || true" "DMRTest.at:231"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:231"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:231: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:231"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:231"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_83
-#AT_START_84
-at_fn_group_banner 84 'DMRTest.at:232' \
-  "trans/receive dmr-testsuite/test_array_6.xml a[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "84. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:232: \$abs_builddir/dmr-test -x -t \$input -c \"a[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a[][] \" || true" "DMRTest.at:232"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:232"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:232: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:232"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:232"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_84
-#AT_START_85
-at_fn_group_banner 85 'DMRTest.at:233' \
-  "trans/receive dmr-testsuite/test_array_6.xml /row=[0:1];a[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "85. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:233: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];a[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];a[][] \" || true" "DMRTest.at:233"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];a[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:233"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:233: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:233"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:233"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_85
-#AT_START_86
-at_fn_group_banner 86 'DMRTest.at:234' \
-  "trans/receive dmr-testsuite/test_array_6.xml /row=[0:1];a[][1:2] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "86. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:234: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];a[][1:2] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];a[][1:2] \" || true" "DMRTest.at:234"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];a[][1:2] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:234"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:234: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:234"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:234"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_86
-#AT_START_87
-at_fn_group_banner 87 'DMRTest.at:237' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "87. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:237: \$abs_builddir/dmr-test -x -t \$input -c \"a\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a\" || true" "DMRTest.at:237"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:237"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:237: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:237"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:237"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_87
-#AT_START_88
-at_fn_group_banner 88 'DMRTest.at:238' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a{i;j}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "88. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:238: \$abs_builddir/dmr-test -x -t \$input -c \"a{i;j}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a{i;j}\" || true" "DMRTest.at:238"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a{i;j}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:238"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:238: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:238"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:238"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_88
-#AT_START_89
-at_fn_group_banner 89 'DMRTest.at:239' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a.i" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "89. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:239: \$abs_builddir/dmr-test -x -t \$input -c \"a.i\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a.i\" || true" "DMRTest.at:239"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a.i" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:239"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:239: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:239"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:239"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_89
-#AT_START_90
-at_fn_group_banner 90 'DMRTest.at:240' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a{i}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "90. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:240: \$abs_builddir/dmr-test -x -t \$input -c \"a{i}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a{i}\" || true" "DMRTest.at:240"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a{i}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:240"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:240: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:240"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:240"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_90
-#AT_START_91
-at_fn_group_banner 91 'DMRTest.at:241' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a.i[0][1:2] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "91. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:241: \$abs_builddir/dmr-test -x -t \$input -c \"a.i[0][1:2] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a.i[0][1:2] \" || true" "DMRTest.at:241"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a.i[0][1:2] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:241"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:241: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:241"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:241"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_91
-#AT_START_92
-at_fn_group_banner 92 'DMRTest.at:242' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a{i[0][1:2]} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "92. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:242: \$abs_builddir/dmr-test -x -t \$input -c \"a{i[0][1:2]} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a{i[0][1:2]} \" || true" "DMRTest.at:242"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a{i[0][1:2]} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:242"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:242: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:242"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:242"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_92
-#AT_START_93
-at_fn_group_banner 93 'DMRTest.at:243' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml /row=[0:1];a.i[][1:2] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "93. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:243: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];a.i[][1:2] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];a.i[][1:2] \" || true" "DMRTest.at:243"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];a.i[][1:2] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:243"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:243: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:243"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:243"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_93
-#AT_START_94
-at_fn_group_banner 94 'DMRTest.at:244' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml /row=[0:1];a{i[][1:2]} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "94. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:244: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[0:1];a{i[][1:2]} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[0:1];a{i[][1:2]} \" || true" "DMRTest.at:244"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[0:1];a{i[][1:2]} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:244"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:244: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:244"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:244"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_94
-#AT_START_95
-at_fn_group_banner 95 'DMRTest.at:246' \
-  "trans/receive dmr-testsuite/test_array_6.2.xml a.j" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "95. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.2.xml.5.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:246: \$abs_builddir/dmr-test -x -t \$input -c \"a.j\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a.j\" || true" "DMRTest.at:246"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a.j" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:246"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:246: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:246"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:246"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_95
-#AT_START_96
-at_fn_group_banner 96 'DMRTest.at:249' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml a" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "96. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:249: \$abs_builddir/dmr-test -x -t \$input -c \"a\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a\" || true" "DMRTest.at:249"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:249"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:249: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:249"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:249"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_96
-#AT_START_97
-at_fn_group_banner 97 'DMRTest.at:252' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml /row=[1:2];a[][0] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "97. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:252: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[1:2];a[][0] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[1:2];a[][0] \" || true" "DMRTest.at:252"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[1:2];a[][0] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:252"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:252: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:252"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:252"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_97
-#AT_START_98
-at_fn_group_banner 98 'DMRTest.at:253' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml /row=[1:2];a[][0]{i;j} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "98. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:253: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[1:2];a[][0]{i;j} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[1:2];a[][0]{i;j} \" || true" "DMRTest.at:253"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[1:2];a[][0]{i;j} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:253"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:253: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:253"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:253"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_98
-#AT_START_99
-at_fn_group_banner 99 'DMRTest.at:255' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml row=[1:2];a[][0]{i;j} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "99. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:255: \$abs_builddir/dmr-test -x -t \$input -c \"row=[1:2];a[][0]{i;j} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"row=[1:2];a[][0]{i;j} \" || true" "DMRTest.at:255"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "row=[1:2];a[][0]{i;j} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:255"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:255: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:255"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:255"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_99
-#AT_START_100
-at_fn_group_banner 100 'DMRTest.at:258' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml a{i[1:2][1:3];j} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "100. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:258: \$abs_builddir/dmr-test -x -t \$input -c \"a{i[1:2][1:3];j} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a{i[1:2][1:3];j} \" || true" "DMRTest.at:258"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a{i[1:2][1:3];j} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:258"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:258: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:258"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:258"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_100
-#AT_START_101
-at_fn_group_banner 101 'DMRTest.at:259' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml a[][]{i[1:2][1:3];j} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "101. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:259: \$abs_builddir/dmr-test -x -t \$input -c \"a[][]{i[1:2][1:3];j} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"a[][]{i[1:2][1:3];j} \" || true" "DMRTest.at:259"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "a[][]{i[1:2][1:3];j} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:259"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:259: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:259"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:259"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_101
-#AT_START_102
-at_fn_group_banner 102 'DMRTest.at:263' \
-  "trans/receive dmr-testsuite/test_array_6.1.xml /row=[1];a[][0]{i[][0:1]} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "102. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_6.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_6.1.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:263: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[1];a[][0]{i[][0:1]} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[1];a[][0]{i[][0:1]} \" || true" "DMRTest.at:263"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[1];a[][0]{i[][0:1]} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:263"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:263: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:263"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:263"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_102
-#AT_START_103
-at_fn_group_banner 103 'DMRTest.at:266' \
-  "trans/receive dmr-testsuite/test_simple_7.xml s" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "103. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_7.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:266: \$abs_builddir/dmr-test -x -t \$input -c \"s\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s\" || true" "DMRTest.at:266"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:266"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:266: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:266"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:266"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_103
-#AT_START_104
-at_fn_group_banner 104 'DMRTest.at:267' \
-  "trans/receive dmr-testsuite/test_simple_7.xml s{i1;s}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "104. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_7.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:267: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1;s}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1;s}\" || true" "DMRTest.at:267"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1;s}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:267"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:267: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:267"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:267"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_104
-#AT_START_105
-at_fn_group_banner 105 'DMRTest.at:269' \
-  "trans/receive dmr-testsuite/test_simple_7.xml s.i1" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "105. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_7.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:269: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1\" || true" "DMRTest.at:269"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:269"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:269: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:269"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:269"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_105
-#AT_START_106
-at_fn_group_banner 106 'DMRTest.at:270' \
-  "trans/receive dmr-testsuite/test_simple_7.xml s{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "106. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_7.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:270: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1}\" || true" "DMRTest.at:270"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:270"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:270: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:270"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:270"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_106
-#AT_START_107
-at_fn_group_banner 107 'DMRTest.at:272' \
-  "trans/receive dmr-testsuite/test_simple_8.xml outer" ""
-at_xfail=no
-      test "Xxfail" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "107. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_8.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_8.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:272: \$abs_builddir/dmr-test -x -t \$input -c \"outer\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"outer\" || true" "DMRTest.at:272"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "outer" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:272"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:272: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:272"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:272"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_107
-#AT_START_108
-at_fn_group_banner 108 'DMRTest.at:273' \
-  "trans/receive dmr-testsuite/test_simple_8.xml outer.s.s" ""
-at_xfail=no
-      test "Xxfail" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "108. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_8.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_8.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:273: \$abs_builddir/dmr-test -x -t \$input -c \"outer.s.s\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"outer.s.s\" || true" "DMRTest.at:273"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "outer.s.s" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:273"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:273: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:273"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:273"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_108
-#AT_START_109
-at_fn_group_banner 109 'DMRTest.at:274' \
-  "trans/receive dmr-testsuite/test_simple_8.xml outer{s{s}}" ""
-at_xfail=no
-      test "Xxfail" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "109. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_simple_8.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_simple_8.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:274: \$abs_builddir/dmr-test -x -t \$input -c \"outer{s{s}}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"outer{s{s}}\" || true" "DMRTest.at:274"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "outer{s{s}}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:274"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:274: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:274"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:274"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_109
-#AT_START_110
-at_fn_group_banner 110 'DMRTest.at:276' \
-  "trans/receive dmr-testsuite/test_array_7.xml s" " "
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "110. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:276: \$abs_builddir/dmr-test -x -t \$input -c \"s\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s\" || true" "DMRTest.at:276"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:276"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:276: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:276"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:276"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_110
-#AT_START_111
-at_fn_group_banner 111 'DMRTest.at:277' \
-  "trans/receive dmr-testsuite/test_array_7.xml s{i1;s}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "111. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:277: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1;s}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1;s}\" || true" "DMRTest.at:277"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1;s}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:277"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:277: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:277"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:277"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_111
-#AT_START_112
-at_fn_group_banner 112 'DMRTest.at:279' \
-  "trans/receive dmr-testsuite/test_array_7.xml s.i1" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "112. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:279: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1\" || true" "DMRTest.at:279"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:279"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:279: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:279"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:279"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_112
-#AT_START_113
-at_fn_group_banner 113 'DMRTest.at:280' \
-  "trans/receive dmr-testsuite/test_array_7.xml s{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "113. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:280: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1}\" || true" "DMRTest.at:280"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:280"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:280: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:280"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:280"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_113
-#AT_START_114
-at_fn_group_banner 114 'DMRTest.at:282' \
-  "trans/receive dmr-testsuite/test_array_7.xml s[1] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "114. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:282: \$abs_builddir/dmr-test -x -t \$input -c \"s[1] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s[1] \" || true" "DMRTest.at:282"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s[1] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:282"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:282: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:282"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:282"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_114
-#AT_START_115
-at_fn_group_banner 115 'DMRTest.at:283' \
-  "trans/receive dmr-testsuite/test_array_7.xml s[1]{i1;s}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "115. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:283: \$abs_builddir/dmr-test -x -t \$input -c \"s[1]{i1;s}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s[1]{i1;s}\" || true" "DMRTest.at:283"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s[1]{i1;s}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:283"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:283: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:283"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:283"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_115
-#AT_START_116
-at_fn_group_banner 116 'DMRTest.at:285' \
-  "trans/receive dmr-testsuite/test_array_7.xml s[1]{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "116. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:285: \$abs_builddir/dmr-test -x -t \$input -c \"s[1]{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s[1]{i1}\" || true" "DMRTest.at:285"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s[1]{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:285"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:285: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:285"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:285"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_116
-#AT_START_117
-at_fn_group_banner 117 'DMRTest.at:288' \
-  "trans/receive dmr-testsuite/test_array_8.xml /col=[1:2];s[1][]{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "117. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_8.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_8.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:288: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[1][]{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[1][]{i1}\" || true" "DMRTest.at:288"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[1][]{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:288"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:288: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:288"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:288"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_117
-#AT_START_118
-at_fn_group_banner 118 'DMRTest.at:289' \
-  "trans/receive dmr-testsuite/test_array_8.xml col=[1:2];s[1][]{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "118. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_8.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_8.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:289: \$abs_builddir/dmr-test -x -t \$input -c \"col=[1:2];s[1][]{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"col=[1:2];s[1][]{i1}\" || true" "DMRTest.at:289"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "col=[1:2];s[1][]{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:289"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:289: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:289"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:289"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_118
-#AT_START_119
-at_fn_group_banner 119 'DMRTest.at:292' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "119. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:292: \$abs_builddir/dmr-test -x -t \$input -c \"\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"\" || true" "DMRTest.at:292"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:292"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:292: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:292"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:292"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_119
-#AT_START_120
-at_fn_group_banner 120 'DMRTest.at:293' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "120. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:293: \$abs_builddir/dmr-test -x -t \$input -c \"s\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s\" || true" "DMRTest.at:293"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:293"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:293: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:293"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:293"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_120
-#AT_START_121
-at_fn_group_banner 121 'DMRTest.at:295' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s.i1" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "121. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:295: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1\" || true" "DMRTest.at:295"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:295"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:295: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:295"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:295"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_121
-#AT_START_122
-at_fn_group_banner 122 'DMRTest.at:296' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s.i1[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "122. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:296: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1[][] \" || true" "DMRTest.at:296"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:296"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:296: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:296"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:296"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_122
-#AT_START_123
-at_fn_group_banner 123 'DMRTest.at:297' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "123. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:297: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1}\" || true" "DMRTest.at:297"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:297"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:297: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:297"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:297"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_123
-#AT_START_124
-at_fn_group_banner 124 'DMRTest.at:298' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s{i1[][]} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "124. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:298: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1[][]} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1[][]} \" || true" "DMRTest.at:298"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1[][]} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:298"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:298: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:298"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:298"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_124
-#AT_START_125
-at_fn_group_banner 125 'DMRTest.at:300' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s.i1[0][0] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "125. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:300: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1[0][0] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1[0][0] \" || true" "DMRTest.at:300"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1[0][0] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:300"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:300: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:300"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:300"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_125
-#AT_START_126
-at_fn_group_banner 126 'DMRTest.at:301' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s{i1[0][0]} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "126. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:301: \$abs_builddir/dmr-test -x -t \$input -c \"s{i1[0][0]} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s{i1[0][0]} \" || true" "DMRTest.at:301"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s{i1[0][0]} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:301"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:301: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:301"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:301"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_126
-#AT_START_127
-at_fn_group_banner 127 'DMRTest.at:303' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml s.i1[0:2][1:2] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "127. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:303: \$abs_builddir/dmr-test -x -t \$input -c \"s.i1[0:2][1:2] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"s.i1[0:2][1:2] \" || true" "DMRTest.at:303"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "s.i1[0:2][1:2] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:303"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:303: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:303"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:303"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_127
-#AT_START_128
-at_fn_group_banner 128 'DMRTest.at:307' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "128. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.5.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:307: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[2:3];/col=[2:3];s \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[2:3];/col=[2:3];s \" || true" "DMRTest.at:307"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[2:3];/col=[2:3];s " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:307"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:307: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:307"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:307"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_128
-#AT_START_129
-at_fn_group_banner 129 'DMRTest.at:309' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s.i1 " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "129. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.6.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:309: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[2:3];/col=[2:3];s.i1 \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[2:3];/col=[2:3];s.i1 \" || true" "DMRTest.at:309"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[2:3];/col=[2:3];s.i1 " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:309"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:309: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:309"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:309"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_129
-#AT_START_130
-at_fn_group_banner 130 'DMRTest.at:310' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s.i1[][] " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "130. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.6.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:310: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[2:3];/col=[2:3];s.i1[][] \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[2:3];/col=[2:3];s.i1[][] \" || true" "DMRTest.at:310"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[2:3];/col=[2:3];s.i1[][] " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:310"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:310: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:310"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:310"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_130
-#AT_START_131
-at_fn_group_banner 131 'DMRTest.at:311' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s{i1} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "131. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.6.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:311: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[2:3];/col=[2:3];s{i1} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[2:3];/col=[2:3];s{i1} \" || true" "DMRTest.at:311"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[2:3];/col=[2:3];s{i1} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:311"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:311: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:311"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:311"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_131
-#AT_START_132
-at_fn_group_banner 132 'DMRTest.at:312' \
-  "trans/receive dmr-testsuite/test_array_7.1.xml /row=[2:3];/col=[2:3];s{i1[][]} " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "132. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.1.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.1.xml.6.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:312: \$abs_builddir/dmr-test -x -t \$input -c \"/row=[2:3];/col=[2:3];s{i1[][]} \" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/row=[2:3];/col=[2:3];s{i1[][]} \" || true" "DMRTest.at:312"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/row=[2:3];/col=[2:3];s{i1[][]} " || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:312"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:312: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:312"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:312"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_132
-#AT_START_133
-at_fn_group_banner 133 'DMRTest.at:315' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[]{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "133. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:315: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[]{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[]{i1}\" || true" "DMRTest.at:315"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[]{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:315"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:315: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:315"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:315"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_133
-#AT_START_134
-at_fn_group_banner 134 'DMRTest.at:316' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[]{i1[][]}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "134. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:316: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[]{i1[][]}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[]{i1[][]}\" || true" "DMRTest.at:316"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[]{i1[][]}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:316"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:316: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:316"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:316"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_134
-#AT_START_135
-at_fn_group_banner 135 'DMRTest.at:317' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s{i1[][]}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "135. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.1.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:317: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s{i1[][]}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s{i1[][]}\" || true" "DMRTest.at:317"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s{i1[][]}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:317"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:317: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:317"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:317"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_135
-#AT_START_136
-at_fn_group_banner 136 'DMRTest.at:319' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[]{i1[0][]}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "136. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:319: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[]{i1[0][]}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[]{i1[0][]}\" || true" "DMRTest.at:319"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[]{i1[0][]}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:319"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:319: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:319"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:319"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_136
-#AT_START_137
-at_fn_group_banner 137 'DMRTest.at:320' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s{i1[0][]}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "137. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.2.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:320: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s{i1[0][]}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s{i1[0][]}\" || true" "DMRTest.at:320"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s{i1[0][]}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:320"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:320: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:320"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:320"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_137
-#AT_START_138
-at_fn_group_banner 138 'DMRTest.at:322' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[0]{i1}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "138. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:322: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[0]{i1}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[0]{i1}\" || true" "DMRTest.at:322"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[0]{i1}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:322"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:322: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:322"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:322"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_138
-#AT_START_139
-at_fn_group_banner 139 'DMRTest.at:323' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[0]{i1[][]}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "139. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.3.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:323: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[0]{i1[][]}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[0]{i1[][]}\" || true" "DMRTest.at:323"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[0]{i1[][]}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:323"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:323: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:323"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:323"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_139
-#AT_START_140
-at_fn_group_banner 140 'DMRTest.at:325' \
-  "trans/receive dmr-testsuite/test_array_7.2.xml /col=[1:2];s[0]{i1[0][]}" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "140. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_7.2.xml
-    baseline=$abs_srcdir/dmr-testsuite/test_array_7.2.xml.4.trans_base
-
-    # echo "baseline: $baseline"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:325: \$abs_builddir/dmr-test -x -t \$input -c \"/col=[1:2];s[0]{i1[0][]}\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -c \"/col=[1:2];s[0]{i1[0][]}\" || true" "DMRTest.at:325"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -c "/col=[1:2];s[0]{i1[0][]}" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:325"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:325: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:325"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:325"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_140
-#AT_START_141
-at_fn_group_banner 141 'DMRTest.at:329' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,1) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "141. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,1)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.1.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:329: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:329"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:329"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:329: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:329"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:329"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_141
-#AT_START_142
-at_fn_group_banner 142 'DMRTest.at:330' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "142. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.2.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:330: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:330"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:330"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:330: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:330"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:330"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_142
-#AT_START_143
-at_fn_group_banner 143 'DMRTest.at:331' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,-10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "143. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,-10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.3.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:331: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:331"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:331"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:331: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:331"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:331"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_143
-#AT_START_144
-at_fn_group_banner 144 'DMRTest.at:332' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,0.001) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "144. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,0.001)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.4.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:332: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:332"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:332"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:332: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:332"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:332"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_144
-#AT_START_145
-at_fn_group_banner 145 'DMRTest.at:333' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,-0.001) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "145. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,-0.001)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.5.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:333: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:333"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:333"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:333: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:333"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:333"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_145
-#AT_START_146
-at_fn_group_banner 146 'DMRTest.at:337' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,0x7fffffffffffffff) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "146. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,0x7fffffffffffffff)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.6.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:337: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:337"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:337"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:337: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:337"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:337"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_146
-#AT_START_147
-at_fn_group_banner 147 'DMRTest.at:339' \
-  "trans/receive dmr-testsuite/test_array_1.xml scale(x,0x8fffffffffffffff) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "147. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_1.xml
-    fe="scale(x,0x8fffffffffffffff)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_1.xml.7.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:339: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:339"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:339"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:339: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:339"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:339"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_147
-#AT_START_148
-at_fn_group_banner 148 'DMRTest.at:343' \
-  "trans/receive dmr-testsuite/test_array_5.xml scale(a,0.001) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "148. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    fe="scale(a,0.001)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_5.xml.1.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:343: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:343"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:343"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:343: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:343"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:343"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_148
-#AT_START_149
-at_fn_group_banner 149 'DMRTest.at:344' \
-  "trans/receive dmr-testsuite/test_array_5.xml scale(b,0.001) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "149. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    fe="scale(b,0.001)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_5.xml.2.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:344: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:344"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:344"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:344: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:344"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:344"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_149
-#AT_START_150
-at_fn_group_banner 150 'DMRTest.at:346' \
-  "trans/receive dmr-testsuite/test_array_5.xml scale(c,0.001) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "150. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    fe="scale(c,0.001)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_5.xml.3.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:346: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:346"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:346"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:346: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:346"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:346"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_150
-#AT_START_151
-at_fn_group_banner 151 'DMRTest.at:347' \
-  "trans/receive dmr-testsuite/test_array_5.xml scale(d,0.001) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "151. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/test_array_5.xml
-    fe="scale(d,0.001)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/test_array_5.xml.4.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:347: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:347"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:347"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:347: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:347"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:347"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_151
-#AT_START_152
-at_fn_group_banner 152 'DMRTest.at:352' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(u,10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "152. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(u,10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.1.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:352: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:352"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:352"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:352: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:352"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:352"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_152
-#AT_START_153
-at_fn_group_banner 153 'DMRTest.at:353' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(u,v) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "153. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(u,v)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.2.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:353: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:353"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:353"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:353: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:353"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:353"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_153
-#AT_START_154
-at_fn_group_banner 154 'DMRTest.at:354' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(scale(u,10),0.01) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "154. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(scale(u,10),0.01)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.3.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:354: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:354"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:354"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:354: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:354"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:354"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_154
-#AT_START_155
-at_fn_group_banner 155 'DMRTest.at:357' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(Point.x,10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "155. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(Point.x,10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.4.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:357: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:357"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:357"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:357: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:357"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:357"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_155
-#AT_START_156
-at_fn_group_banner 156 'DMRTest.at:358' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(Point.x,Point.y) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "156. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(Point.x,Point.y)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.5.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:358: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:358"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:358"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:358: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:358"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:358"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_156
-#AT_START_157
-at_fn_group_banner 157 'DMRTest.at:359' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(scale(Point.x,10),0.01) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "157. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(scale(Point.x,10),0.01)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.6.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:359: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:359"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:359"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:359: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:359"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:359"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_157
-#AT_START_158
-at_fn_group_banner 158 'DMRTest.at:362' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Byte(20:1,2,3,4),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "158. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Byte(20:1,2,3,4),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.7.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:362: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:362"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:362"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:362: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:362"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:362"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_158
-#AT_START_159
-at_fn_group_banner 159 'DMRTest.at:363' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int8(20:10,11,12,-9),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "159. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Int8(20:10,11,12,-9),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.8.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:363: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:363"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:363"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:363: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:363"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:363"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_159
-#AT_START_160
-at_fn_group_banner 160 'DMRTest.at:364' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$UInt16(20:1,2,3,4),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "160. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$UInt16(20:1,2,3,4),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.9.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:364: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:364"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:364"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:364: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:364"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:364"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_160
-#AT_START_161
-at_fn_group_banner 161 'DMRTest.at:365' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int16(20:1,2,3,-4),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "161. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Int16(20:1,2,3,-4),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.10.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:365: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:365"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:365"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:365: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:365"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:365"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_161
-#AT_START_162
-at_fn_group_banner 162 'DMRTest.at:366' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$UInt32(20:1,2,3,4),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "162. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$UInt32(20:1,2,3,4),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.11.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:366: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:366"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:366"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:366: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:366"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:366"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_162
-#AT_START_163
-at_fn_group_banner 163 'DMRTest.at:367' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int32(20:1,2,3,-4),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "163. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Int32(20:1,2,3,-4),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.12.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:367: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:367"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:367"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:367: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:367"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:367"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_163
-#AT_START_164
-at_fn_group_banner 164 'DMRTest.at:368' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$UInt64(20:1,2,3,0xffffffffffffffff),1) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "164. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$UInt64(20:1,2,3,0xffffffffffffffff),1)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.13.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:368: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:368"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:368"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:368: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:368"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:368"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_164
-#AT_START_165
-at_fn_group_banner 165 'DMRTest.at:369' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Int64(20:1,2,3,0x7fffffffffffffff),1) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "165. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Int64(20:1,2,3,0x7fffffffffffffff),1)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.14.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:369: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:369"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:369"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:369: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:369"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:369"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_165
-#AT_START_166
-at_fn_group_banner 166 'DMRTest.at:370' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Float32(20:1,2,3,4.55),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "166. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Float32(20:1,2,3,4.55),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.15.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:370: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:370"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:370"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:370: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:370"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:370"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_166
-#AT_START_167
-at_fn_group_banner 167 'DMRTest.at:371' \
-  "trans/receive dmr-testsuite/vol_1_ce_1.xml scale(\\\$Float64(20:1,2,3,4.55),10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "167. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml
-    fe="scale(\$Float64(20:1,2,3,4.55),10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_1.xml.16.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:371: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:371"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:371"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:371: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:371"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:371"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_167
-#AT_START_168
-at_fn_group_banner 168 'DMRTest.at:375' \
-  "trans/receive dmr-testsuite/vol_1_ce_10.xml scale(lat,10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "168. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_10.xml
-    fe="scale(lat,10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_10.xml.1.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:375: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:375"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:375"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:375: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:375"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:375"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_168
-#AT_START_169
-at_fn_group_banner 169 'DMRTest.at:376' \
-  "trans/receive dmr-testsuite/vol_1_ce_10.xml scale(lat,10);scale(lon,10) " ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "169. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_10.xml
-    fe="scale(lat,10);scale(lon,10)"
-    ce=""
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_10.xml.2.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:376: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:376"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:376"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:376: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:376"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:376"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_169
-#AT_START_170
-at_fn_group_banner 170 'DMRTest.at:377' \
-  "trans/receive dmr-testsuite/vol_1_ce_10.xml scale(lat,10);scale(lon,10) lat[10:11][10:11];lon[10:11][10:11]" ""
-at_xfail=no
-      test "Xpass" = "Xxfail" && at_xfail=yes
-(
-  $as_echo "170. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    input=$abs_srcdir/dmr-testsuite/vol_1_ce_10.xml
-    fe="scale(lat,10);scale(lon,10)"
-    ce="lat[10:11][10:11];lon[10:11][10:11]"
-    baseline=$abs_srcdir/dmr-testsuite/vol_1_ce_10.xml.3.func_base
-    # This doesn't work for some reason. jhrg 3/13/14 expect="pass"
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:377: \$abs_builddir/dmr-test -x -t \$input -f \"\$fe\" -c \"\$ce\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/dmr-test -x -t $input -f \"$fe\" -c \"$ce\" || true" "DMRTest.at:377"
-( $at_check_trace; $abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:377"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/DMRTest.at:377: diff -b -B \$baseline stdout || diff -b -B \$baseline stderr"
-at_fn_check_prepare_dynamic "diff -b -B $baseline stdout || diff -b -B $baseline stderr" "DMRTest.at:377"
-( $at_check_trace; diff -b -B $baseline stdout || diff -b -B $baseline stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/DMRTest.at:377"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_170
diff --git a/tests/DMRTest.at b/tests/DMRTest.at
index 0e66303..8a2ebd5 100644
--- a/tests/DMRTest.at
+++ b/tests/DMRTest.at
@@ -2,29 +2,10 @@
 
 AT_INIT([dmr-test])
 
-AT_ARG_OPTION_ARG([generate_parse],
-    [--generate_parse=arg   Build the baseline file for parser test 'arg'],
-    [echo "./dmr-test -x -p $at_arg_generate_parse > $at_arg_generate_parse.baseline 2>&1";
-     ./dmr-test -x -p $at_arg_generate_parse > $at_arg_generate_parse.baseline 2>&1;
-     echo "Built baseline for $at_arg_generate_parse";
-     exit],[])
-
-AT_ARG_OPTION_ARG([generate_trans],
-    [--generate_trans=arg  Build the baseline file for round trip transmission test 'arg'],
-    [echo "./dmr-test -x -t $at_arg_generate_trans > $at_arg_generate_trans.trans_base 2>&1";
-     ./dmr-test -x -t $at_arg_generate_trans > $at_arg_generate_trans.trans_base 2>&1;
-     echo "Built baseline for $at_arg_generate_trans";
-     exit],[])
-
-AT_ARG_OPTION_ARG([generate_trans_ce],
-    [--generate_trans_ce=dataset,ce,ext  Build the baseline (ext) file for round trip transmission test 'arg' with 'ce'],
-    [data=`echo $at_arg_generate_trans_ce | sed 's@\(.*\),\(.*\),\(.*\)@\1 at g'`
-     ce=`echo $at_arg_generate_trans_ce | sed 's@\(.*\),\(.*\),\(.*\)@\2 at g'`
-     code=`echo $at_arg_generate_trans_ce | sed 's@\(.*\),\(.*\),\(.*\)@\3 at g'`
-     echo "./dmr-test -x -t $data -c $ce > $data.$code.trans_base 2>&1";
-     ./dmr-test -x -t $data -c "$ce" > $data.$code.trans_base 2>&1;
-     echo "Built baseline for $at_arg_generate_trans_ce";
-     exit],[])
+AT_ARG_OPTION_ARG([baselines],
+    [--baselines=yes|no   Build the baseline file for parser test 'arg'],
+    [echo "baselines set to $at_arg_baselines";
+     baselines=$at_arg_baselines],[baselines=])
 
 # There is no easy way to write a --generate... option for the function expression
 # tests. Better to do it by hand... Use ... .num.func_base as the extension for the
@@ -40,9 +21,16 @@ m4_define([DMR_PARSE], [
     input=$abs_srcdir/$1
     baseline=$input.baseline
     
-    AT_CHECK([$abs_builddir/dmr-test -x -p $input || true], [], [stdout], [stderr])
-    AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
-    AT_XFAIL_IF([test "$2" = "xfail"])
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -p $input || true], [], [stdout], [])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -p $input || true], [], [stdout], [stderr])
+        AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+        AT_XFAIL_IF([test "$2" = "xfail"])
+        ])
     
     AT_CLEANUP
 ])
@@ -51,16 +39,60 @@ m4_define([DMR_PARSE], [
 # This code tests the values printed when the received document is decoded.
 m4_define([DMR_TRANS], [
     # Test transmitting data (i.e., writing the Data DMR to a file and then decoding it)
-    AT_SETUP([trans/receive $1])
+    AT_SETUP([trans $1])
     AT_KEYWORDS([trans])
     
-    input=$abs_srcdir/$1
-    baseline=$input.trans_base
+    # WORD_ORDER is set by configure in atlocal.
+    # This is a fix for the issue where the CRC32 checksum is different
+    # on little- and big-endian machines, so we use different baseline
+    # files.  jhrg 9/30/15
+        
+    input=$abs_srcdir/dmr-testsuite/$1
+    baseline=$abs_srcdir/dmr-testsuite/$WORD_ORDER/$1.trans_base
+    
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input], [0], [stdout], [ignore])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input || true], [], [stdout], [stderr])
+        AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+    
+        AT_XFAIL_IF([test "$2" = "xfail"])
+        ])
+        
+    AT_CLEANUP
+])
 
-    AT_CHECK([$abs_builddir/dmr-test -x -t $input || true], [], [stdout], [stderr])
-    AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+# Usage DMR_TRANS_UNIVERSAL $1 <test_input> $2 <pass/xfail>
+# This code tests the values printed when the received document is decoded.
+m4_define([DMR_TRANS_UNIVERSAL], [
+    # Test transmitting data (i.e., writing the Data DMR to a file and then decoding it)
+    AT_SETUP([trans $1])
+    AT_KEYWORDS([trans])
+    
+    # WORD_ORDER is set by configure in atlocal.
+    # This is a fix for the issue where the CRC32 checksum is different
+    # on little- and big-endian machines, so we use different baseline
+    # files.  jhrg 9/30/15
+    
+    input=$abs_srcdir/dmr-testsuite/$1
+    baseline=$abs_srcdir/dmr-testsuite/universal/$1.trans_base
+    
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        echo "The command <>$abs_builddir/dmr-test -x -t $input $checksum_filt<>"
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input | sed 's@<Value>[[0-9a-f]][[0-9a-f]]*</Value>@@' ], [0], [stdout], [ignore])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input | sed 's@<Value>[[0-9a-f]][[0-9a-f]]*</Value>@@' ], [], [stdout], [ignore])
+        AT_CHECK([diff -b -B $baseline stdout], [], [ignore],[],[])
     
-    AT_XFAIL_IF([test "$2" = "xfail"])
+        AT_XFAIL_IF([test "$2" = "xfail"])
+        ])
+        
     AT_CLEANUP
 ])
 
@@ -69,18 +101,24 @@ m4_define([DMR_TRANS], [
 m4_define([DMR_TRANS_CE], [
     # Test transmitting data (i.e., writing the Data DMR to a file and then decoding it)
     # after applying a constraint expression to the source DMR.
-    AT_SETUP([trans/receive $1 $2])
-    AT_KEYWORDS([trans])
-    
-    input=$abs_srcdir/$1
-    baseline=$abs_srcdir/$3
+    AT_SETUP([trans ce $1 $2 $3])
+    AT_KEYWORDS([trans_ce])
     
-    # echo "baseline: $baseline"
-
-    AT_CHECK([$abs_builddir/dmr-test -x -t $input -c "$2" || true], [], [stdout], [stderr])
-    AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+    # See above regarding $WORD_ORDER
+    input=$abs_srcdir/dmr-testsuite/$1
+    baseline=$abs_srcdir/dmr-testsuite/$WORD_ORDER/$3
+
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input -c "$2"], [], [stdout], [])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input -c "$2" || true], [], [stdout], [stderr])
+        AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+        AT_XFAIL_IF([test "X$4" = "Xxfail"])
+        ])
     
-    AT_XFAIL_IF([test "X$4" = "Xxfail"])
     AT_CLEANUP
 ])
 
@@ -90,19 +128,52 @@ m4_define([DMR_TRANS_FUNC_CE], [
     # Test transmitting data (i.e., writing the Data DMR to a file and then decoding it)
     # after applying a function and constraint expression to the source DMR. If either
     # the function or constraint are empty strings, they will be ignored.
-    AT_SETUP([trans/receive $1 $2 $3])
-    AT_KEYWORDS([trans])
+    AT_SETUP([trans $1 $2 $3 $4])
+    AT_KEYWORDS([trans_func_ce])
     
-    input=$abs_srcdir/$1
+    input=$abs_srcdir/dmr-testsuite/$1
     fe="$2"
     ce="$3"
-    baseline=$abs_srcdir/$4
-    # This doesn't work for some reason. jhrg 3/13/14 expect="$5"
+    baseline=$abs_srcdir/dmr-testsuite/$WORD_ORDER/$4
+    
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce"], [], [stdout], [])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true], [], [stdout], [stderr])
+        AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+        AT_XFAIL_IF([test "X$5" = "Xxfail"])
+        ])
+
+    AT_CLEANUP
+])
+
+# Usage DMR_TRANS_SERIES_CE <test_input> <ce> <baseline> <pass/xfail>
+# This macro tests CEs using the series values from the Test classes.
+# It's intended to be used to test the filter expressions.
+# 
+# This is a 'universal' test - the baselines do not differ for word order
+# because the checksums are removed. jhrg 5/5/16
+m4_define([DMR_TRANS_SERIES_CE], [
+    AT_SETUP([filter $1 $2 $3])
+    AT_KEYWORDS([filter])
     
-    AT_CHECK([$abs_builddir/dmr-test -x -t $input -f "$fe" -c "$ce" || true], [], [stdout], [stderr])
-    AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+    input=$abs_srcdir/dmr-testsuite/$1
+    ce="$2"
+    baseline=$abs_srcdir/dmr-testsuite/universal/$3
     
-    AT_XFAIL_IF([test "X$5" = "Xxfail"])
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -e -t $input -c "$ce" | sed 's@<Value>[[0-9a-f]][[0-9a-f]]*</Value>@@' ], [], [stdout], [])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -e -t $input -c "$ce" | sed 's@<Value>[[0-9a-f]][[0-9a-f]]*</Value>@@' ], [], [stdout], [])
+        AT_CHECK([diff -b -B $baseline stdout], [], [ignore],[],[])
+        AT_XFAIL_IF([test "X$4" = "Xxfail"])
+        ])
 
     AT_CLEANUP
 ])
@@ -112,16 +183,28 @@ m4_define([DMR_TRANS_FUNC_CE], [
 m4_define([DMR_INTERN], [
     # Test reading/interning data (i.e., using the read() methods to load up objects with
     # values without running them through serialize/deserialize)
-    AT_SETUP([intern data $1])
+    AT_SETUP([intern $1])
     AT_KEYWORDS([intern])
     
-    input=$abs_srcdir/$1
-    baseline=$input.trans_base
-
-    AT_CHECK([$abs_builddir/dmr-test -x -i $input || true], [], [stdout], [stderr])
-    AT_CHECK([diff -b -B $baseline stdout || diff -b -B $baseline stderr], [], [ignore],[],[])
+    # WORD_ORDER is set by configure in atlocal.
+    # This is a fix for the issue where the CRC32 checksum is different
+    # on little- and big-endian machines, so we use different baseline
+    # files.  jhrg 9/30/15
+    input=$abs_srcdir/dmr-testsuite/$1
+    baseline=$abs_srcdir/dmr-testsuite/$WORD_ORDER/$1.intern_base
+
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -i $input], [], [stdout], [])
+        AT_CHECK([mv stdout $baseline.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/dmr-test -x -i $input || true], [], [stdout], [stderr])
+        AT_CHECK([diff -b -B $baseline stdout], [], [ignore], [], [])
     
-    AT_XFAIL_IF([test "$2" = "xfail"])
+        AT_XFAIL_IF([test "$2" = "xfail"])
+        ])
+        
     AT_CLEANUP
 ])
 
@@ -154,227 +237,321 @@ DMR_PARSE([dmr-testsuite/test_array_10.xml], [pass])
 DMR_PARSE([dmr-testsuite/test_array_11.xml], [pass])
 
 # Transmit: Test building and then decoding the response
-
-DMR_TRANS([dmr-testsuite/test_simple_1.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_2.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_3.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_4.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_5.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_6.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_7.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_8.xml], [xfail])
-DMR_TRANS([dmr-testsuite/test_simple_9.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_9.1.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_simple_10.xml], [pass])
-
-DMR_TRANS([dmr-testsuite/test_array_1.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_2.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_3.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_4.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_5.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_6.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_7.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_8.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_10.xml], [pass])
-DMR_TRANS([dmr-testsuite/test_array_11.xml], [pass])
-
-DMR_INTERN([dmr-testsuite/test_simple_1.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_2.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_3.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_4.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_5.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_6.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_7.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_8.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_9.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_9.1.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_simple_10.xml], [pass])
-
-DMR_INTERN([dmr-testsuite/test_array_1.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_2.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_3.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_4.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_5.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_6.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_7.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_8.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_10.xml], [pass])
-DMR_INTERN([dmr-testsuite/test_array_11.xml], [pass])
-
-# Test various factes of the CE parser and evaluation engine
-
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [a], [dmr-testsuite/test_array_4.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [a[[]][[]] ], [dmr-testsuite/test_array_4.xml.1.trans_base], [pass])
-
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [/row=[[0:1]];/col=[[3]];a],  [dmr-testsuite/test_array_4.xml.3.trans_base], [pass])
+# These calls don't include the 'dmr-testsuite' directory because the tests
+# need to choose baselines based on the word order. We could probably re-
+# organize these so that the dir names where here - which I prefer, but
+# the new 'baselines' option makes it far easier to build the baselines, and
+# that was the primary reason for keeping the directory names here and explicit;
+# it made it much easier to sort out what input to use when building a baseline.
+
+DMR_TRANS([test_simple_1.xml], [pass])
+DMR_TRANS([test_simple_2.xml], [pass])
+DMR_TRANS([test_simple_3.xml], [pass])
+DMR_TRANS([test_simple_4.xml], [pass])
+DMR_TRANS([test_simple_5.xml], [pass])
+DMR_TRANS([test_simple_6.xml], [pass])
+DMR_TRANS([test_simple_7.xml], [pass])
+DMR_TRANS([test_simple_8.xml], [xfail])
+DMR_TRANS([test_simple_9.xml], [pass])
+DMR_TRANS([test_simple_9.1.xml], [pass])
+DMR_TRANS([test_simple_10.xml], [pass])
+
+DMR_TRANS([test_array_1.xml], [pass])
+DMR_TRANS([test_array_2.xml], [pass])
+DMR_TRANS([test_array_3.xml], [pass])
+DMR_TRANS([test_array_4.xml], [pass])
+DMR_TRANS([test_array_5.xml], [pass])
+DMR_TRANS([test_array_6.xml], [pass])
+DMR_TRANS([test_array_7.xml], [pass])
+DMR_TRANS([test_array_8.xml], [pass])
+DMR_TRANS([test_array_10.xml], [pass])
+DMR_TRANS([test_array_11.xml], [pass])
+
+DMR_INTERN([test_simple_1.xml], [pass])
+DMR_INTERN([test_simple_2.xml], [pass])
+DMR_INTERN([test_simple_3.xml], [pass])
+DMR_INTERN([test_simple_4.xml], [pass])
+DMR_INTERN([test_simple_5.xml], [pass])
+DMR_INTERN([test_simple_6.xml], [pass])
+DMR_INTERN([test_simple_7.xml], [pass])
+DMR_INTERN([test_simple_8.xml], [pass])
+DMR_INTERN([test_simple_9.xml], [pass])
+DMR_INTERN([test_simple_9.1.xml], [pass])
+DMR_INTERN([test_simple_10.xml], [pass])
+
+DMR_INTERN([test_array_1.xml], [pass])
+DMR_INTERN([test_array_2.xml], [pass])
+DMR_INTERN([test_array_3.xml], [pass])
+DMR_INTERN([test_array_4.xml], [pass])
+DMR_INTERN([test_array_5.xml], [pass])
+DMR_INTERN([test_array_6.xml], [pass])
+DMR_INTERN([test_array_7.xml], [pass])
+DMR_INTERN([test_array_8.xml], [pass])
+DMR_INTERN([test_array_10.xml], [pass])
+DMR_INTERN([test_array_11.xml], [pass])
+
+# Test zero-length arrays. jhrg 1/28/16
+DMR_PARSE([dmr-testsuite/test_array_9.xml], [pass])
+DMR_PARSE([dmr-testsuite/test_array_12.xml], [pass])
+DMR_PARSE([dmr-testsuite/test_array_13.xml], [pass])
+DMR_PARSE([dmr-testsuite/test_array_14.xml], [pass])
+
+# Test empty Structures. jhrg 1/29/16
+DMR_PARSE([dmr-testsuite/test_simple_6.2.xml], [pass])
+DMR_PARSE([dmr-testsuite/test_simple_6.3.xml], [pass])
+
+DMR_TRANS([test_array_9.xml], [pass])
+DMR_TRANS([test_array_12.xml], [pass])
+DMR_TRANS([test_array_13.xml], [pass])
+DMR_TRANS([test_array_14.xml], [pass])
+
+DMR_TRANS([test_simple_6.2.xml], [pass])
+DMR_TRANS([test_simple_6.3.xml], [pass])
+
+# Test out the 'universal' tests
+DMR_TRANS_UNIVERSAL([test_array_9.xml], [pass])
+DMR_TRANS_UNIVERSAL([test_array_12.xml], [pass])
+DMR_TRANS_UNIVERSAL([test_array_13.xml], [pass])
+DMR_TRANS_UNIVERSAL([test_array_14.xml], [pass])
+
+DMR_TRANS_UNIVERSAL([test_simple_6.2.xml], [pass])
+DMR_TRANS_UNIVERSAL([test_simple_6.3.xml], [pass])
+
+DMR_INTERN([test_array_9.xml], [pass])
+DMR_INTERN([test_array_12.xml], [pass])
+DMR_INTERN([test_array_13.xml], [pass])
+DMR_INTERN([test_array_14.xml], [pass])
+
+DMR_INTERN([test_simple_6.2.xml], [pass])
+DMR_INTERN([test_simple_6.3.xml], [pass])
+
+# These tests only work for little-endian machines at this time. If baselines for
+# big-endian machines are built, this AS_IF can be removed.
+
+# Added these tests as part of https://opendap.atlassian.net/browse/HYRAX-98.
+# jhrg 4/13/16
+ 
+AS_IF([test "$WORD_ORDER" = "little-endian"],
+[
+DMR_TRANS_CE([test_array_3.1.dmr], [row;x], [test_array_3.1.dmr.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_3.1.dmr], [row=[[2:3]];x], [test_array_3.1.dmr.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_3.1.dmr], [row=[[2:3]];x[[0:1]]], [test_array_3.1.dmr.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_3.1.dmr], [x[[0:1]]], [test_array_3.1.dmr.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_3.1.dmr], [x], [test_array_3.1.dmr.5.trans_base], [pass])
+],
+[])
+
+# Test various facets of the CE parser and evaluation engine
+
+DMR_TRANS_CE([test_array_4.xml], [a], [test_array_4.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_4.xml], [a[[]][[]] ], [test_array_4.xml.1.trans_base], [pass])
+
+DMR_TRANS_CE([test_array_4.xml], [/row=[[0:1]];/col=[[3]];a],  [test_array_4.xml.3.trans_base], [pass])
     
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [/row=[[0:1]];/col=[[3]];a[[]][[]] ],  [dmr-testsuite/test_array_4.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_4.xml], [/row=[[0:1]];/col=[[3]];a[[]][[]] ],  [test_array_4.xml.4.trans_base], [pass])
     
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [/row=[[0:1]];/col=[[3]];a[[]][[]];b[[0]][[]];c[[0:]][[0:]] ],  [dmr-testsuite/test_array_4.xml.5.trans_base], [pass])
+DMR_TRANS_CE([test_array_4.xml], [/row=[[0:1]];/col=[[3]];a[[]][[]];b[[0]][[]];c[[0:]][[0:]] ],  [test_array_4.xml.5.trans_base], [pass])
     
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [x[[]][[]] ], [dmr-testsuite/test_array_4.xml.6.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [/row=[[0:1]];x[[]][[]] ], [dmr-testsuite/test_array_4.xml.7.trans_base], [pass])
+DMR_TRANS_CE([test_array_4.xml], [x[[]][[]] ], [/test_array_4.xml.6.trans_base], [pass])
+DMR_TRANS_CE([test_array_4.xml], [/row=[[0:1]];x[[]][[]] ], [test_array_4.xml.7.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_4.xml], [c[[2:]][[2:]] ], [dmr-testsuite/test_array_4.xml.8.trans_base], [pass])
+DMR_TRANS_CE([test_array_4.xml], [c[[2:]][[2:]] ], [test_array_4.xml.8.trans_base], [pass])
     
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.xml], [s], [dmr-testsuite/test_simple_6.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.xml], [s.i1], [dmr-testsuite/test_simple_6.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.xml], [s.s], [dmr-testsuite/test_simple_6.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.1.xml], [s.inner.i2], [dmr-testsuite/test_simple_6.1.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.xml], [s], [test_simple_6.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.xml], [s.i1], [test_simple_6.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.xml], [s.s], [test_simple_6.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.1.xml], [s.inner.i2], [test_simple_6.1.xml.1.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.xml], [s{i1}], [dmr-testsuite/test_simple_6.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.xml], [s{s}], [dmr-testsuite/test_simple_6.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.1.xml], [s{inner.i2}], [dmr-testsuite/test_simple_6.1.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_6.1.xml], [s{inner{i2}}], [dmr-testsuite/test_simple_6.1.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.xml], [s{i1}], [test_simple_6.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.xml], [s{s}], [test_simple_6.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.1.xml], [s{inner.i2}], [test_simple_6.1.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_simple_6.1.xml], [s{inner{i2}}], [test_simple_6.1.xml.1.trans_base], [pass])
 
 # test_array_6 holds a 2D array of Structure
-DMR_TRANS_CE([dmr-testsuite/test_array_6.xml], [a], [dmr-testsuite/test_array_6.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.xml], [a[[]][[]] ], [dmr-testsuite/test_array_6.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.xml], [/row=[[0:1]];a[[]][[]] ], [dmr-testsuite/test_array_6.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.xml], [/row=[[0:1]];a[[]][[1:2]] ], [dmr-testsuite/test_array_6.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.xml], [a], [test_array_6.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.xml], [a[[]][[]] ], [test_array_6.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.xml], [/row=[[0:1]];a[[]][[]] ], [test_array_6.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.xml], [/row=[[0:1]];a[[]][[1:2]] ], [test_array_6.xml.3.trans_base], [pass])
 
 # test_array holds a Structure that has a 2D array for a field
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a], [dmr-testsuite/test_array_6.2.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a{i;j}], [dmr-testsuite/test_array_6.2.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a.i], [dmr-testsuite/test_array_6.2.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a{i}], [dmr-testsuite/test_array_6.2.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a.i[[0]][[1:2]] ], [dmr-testsuite/test_array_6.2.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a{i[[0]][[1:2]]} ], [dmr-testsuite/test_array_6.2.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [/row=[[0:1]];a.i[[]][[1:2]] ], [dmr-testsuite/test_array_6.2.xml.4.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [/row=[[0:1]];a{i[[]][[1:2]]} ], [dmr-testsuite/test_array_6.2.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a], [test_array_6.2.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a{i;j}], [test_array_6.2.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a.i], [test_array_6.2.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a{i}], [test_array_6.2.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a.i[[0]][[1:2]] ], [test_array_6.2.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a{i[[0]][[1:2]]} ], [test_array_6.2.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [/row=[[0:1]];a.i[[]][[1:2]] ], [test_array_6.2.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [/row=[[0:1]];a{i[[]][[1:2]]} ], [test_array_6.2.xml.4.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_6.2.xml], [a.j], [dmr-testsuite/test_array_6.2.xml.5.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.2.xml], [a.j], [test_array_6.2.xml.5.trans_base], [pass])
 
 # test_array_6.1 is an array of Structure that holds an array and a scalar
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [a], [dmr-testsuite/test_array_6.1.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [a], [test_array_6.1.xml.1.trans_base], [pass])
 
 # slice the structure but not the field
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [/row=[[1:2]];a[[]][[0]] ], [dmr-testsuite/test_array_6.1.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [/row=[[1:2]];a[[]][[0]]{i;j} ], [dmr-testsuite/test_array_6.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [/row=[[1:2]];a[[]][[0]] ], [test_array_6.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [/row=[[1:2]];a[[]][[0]]{i;j} ], [test_array_6.1.xml.2.trans_base], [pass])
 # Do we really need the FQN?
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [row=[[1:2]];a[[]][[0]]{i;j} ], [dmr-testsuite/test_array_6.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [row=[[1:2]];a[[]][[0]]{i;j} ], [test_array_6.1.xml.2.trans_base], [pass])
 
 # slice the field but not the structure
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [a{i[[1:2]][[1:3]];j} ], [dmr-testsuite/test_array_6.1.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [a[[]][[]]{i[[1:2]][[1:3]];j} ], [dmr-testsuite/test_array_6.1.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [a{i[[1:2]][[1:3]];j} ], [test_array_6.1.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [a[[]][[]]{i[[1:2]][[1:3]];j} ], [test_array_6.1.xml.3.trans_base], [pass])
 
 # slice both the structure and the array it contains using both the shared dim and 
 # a local slice for each
-DMR_TRANS_CE([dmr-testsuite/test_array_6.1.xml], [/row=[[1]];a[[]][[0]]{i[[]][[0:1]]} ], [dmr-testsuite/test_array_6.1.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_6.1.xml], [/row=[[1]];a[[]][[0]]{i[[]][[0:1]]} ], [test_array_6.1.xml.4.trans_base], [pass])
 
 # Test sequences and arrays of sequences
-DMR_TRANS_CE([dmr-testsuite/test_simple_7.xml], [s], [dmr-testsuite/test_simple_7.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_7.xml], [s{i1;s}], [dmr-testsuite/test_simple_7.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_simple_7.xml], [s], [test_simple_7.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_simple_7.xml], [s{i1;s}], [test_simple_7.xml.1.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_simple_7.xml], [s.i1], [dmr-testsuite/test_simple_7.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_simple_7.xml], [s{i1}], [dmr-testsuite/test_simple_7.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_simple_7.xml], [s.i1], [test_simple_7.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_simple_7.xml], [s{i1}], [test_simple_7.xml.2.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_simple_8.xml], [outer], [dmr-testsuite/test_simple_8.xml.1.trans_base], [xfail])
-DMR_TRANS_CE([dmr-testsuite/test_simple_8.xml], [outer.s.s], [dmr-testsuite/test_simple_8.xml.2.trans_base], [xfail])
-DMR_TRANS_CE([dmr-testsuite/test_simple_8.xml], [outer{s{s}}], [dmr-testsuite/test_simple_8.xml.2.trans_base], [xfail])
+DMR_TRANS_CE([test_simple_8.xml], [outer], [test_simple_8.xml.1.trans_base], [xfail])
+DMR_TRANS_CE([test_simple_8.xml], [outer.s.s], [test_simple_8.xml.2.trans_base], [xfail])
+DMR_TRANS_CE([test_simple_8.xml], [outer{s{s}}], [test_simple_8.xml.2.trans_base], [xfail])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s], [dmr-testsuite/test_array_7.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s{i1;s}], [dmr-testsuite/test_array_7.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s], [test_array_7.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s{i1;s}], [test_array_7.xml.1.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s.i1], [dmr-testsuite/test_array_7.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s{i1}], [dmr-testsuite/test_array_7.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s.i1], [test_array_7.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s{i1}], [test_array_7.xml.2.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s[[1]] ], [dmr-testsuite/test_array_7.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s[[1]]{i1;s}], [dmr-testsuite/test_array_7.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s[[1]] ], [test_array_7.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s[[1]]{i1;s}], [test_array_7.xml.3.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.xml], [s[[1]]{i1}], [dmr-testsuite/test_array_7.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.xml], [s[[1]]{i1}], [test_array_7.xml.4.trans_base], [pass])
 
 # test_array_8 has a 2D Sequence that uses a shared dim
-DMR_TRANS_CE([dmr-testsuite/test_array_8.xml], [/col=[[1:2]];s[[1]][[]]{i1}], [dmr-testsuite/test_array_8.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_8.xml], [col=[[1:2]];s[[1]][[]]{i1}], [dmr-testsuite/test_array_8.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_8.xml], [/col=[[1:2]];s[[1]][[]]{i1}], [test_array_8.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_8.xml], [col=[[1:2]];s[[1]][[]]{i1}], [test_array_8.xml.1.trans_base], [pass])
 
 # test_array_7.1 holds a sequence that has an array for one of its fields
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [], [dmr-testsuite/test_array_7.1.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s], [dmr-testsuite/test_array_7.1.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [], [test_array_7.1.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s], [test_array_7.1.xml.1.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s.i1], [dmr-testsuite/test_array_7.1.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s.i1[[]][[]] ], [dmr-testsuite/test_array_7.1.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s{i1}], [dmr-testsuite/test_array_7.1.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s{i1[[]][[]]} ], [dmr-testsuite/test_array_7.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s.i1], [test_array_7.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s.i1[[]][[]] ], [test_array_7.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s{i1}], [test_array_7.1.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s{i1[[]][[]]} ], [test_array_7.1.xml.2.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s.i1[[0]][[0]] ], [dmr-testsuite/test_array_7.1.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s{i1[[0]][[0]]} ], [dmr-testsuite/test_array_7.1.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s.i1[[0]][[0]] ], [test_array_7.1.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s{i1[[0]][[0]]} ], [test_array_7.1.xml.3.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [s.i1[[0:2]][[1:2]] ], [dmr-testsuite/test_array_7.1.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [s.i1[[0:2]][[1:2]] ], [test_array_7.1.xml.4.trans_base], [pass])
 
 # Should this CE be supported? jhrg 12/23/13
-# DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]] ], [dmr-testsuite/test_array_7.1.xml.5.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s ], [dmr-testsuite/test_array_7.1.xml.5.trans_base], [pass])
+# DMR_TRANS_CE([test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]] ], [test_array_7.1.xml.5.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s ], [test_array_7.1.xml.5.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s.i1 ], [dmr-testsuite/test_array_7.1.xml.6.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s.i1[[]][[]] ], [dmr-testsuite/test_array_7.1.xml.6.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s{i1} ], [dmr-testsuite/test_array_7.1.xml.6.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s{i1[[]][[]]} ], [dmr-testsuite/test_array_7.1.xml.6.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s.i1 ], [test_array_7.1.xml.6.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s.i1[[]][[]] ], [test_array_7.1.xml.6.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s{i1} ], [test_array_7.1.xml.6.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.1.xml], [/row=[[2:3]];/col=[[2:3]];s{i1[[]][[]]} ], [test_array_7.1.xml.6.trans_base], [pass])
 
 # test_array_7.2 is a sequence array that holds an array as one of its fields
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s[[]]{i1}], [dmr-testsuite/test_array_7.2.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s[[]]{i1[[]][[]]}], [dmr-testsuite/test_array_7.2.xml.1.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s{i1[[]][[]]}], [dmr-testsuite/test_array_7.2.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s[[]]{i1}], [test_array_7.2.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s[[]]{i1[[]][[]]}], [test_array_7.2.xml.1.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s{i1[[]][[]]}], [test_array_7.2.xml.1.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s[[]]{i1[[0]][[]]}], [dmr-testsuite/test_array_7.2.xml.2.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s{i1[[0]][[]]}], [dmr-testsuite/test_array_7.2.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s[[]]{i1[[0]][[]]}], [test_array_7.2.xml.2.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s{i1[[0]][[]]}], [test_array_7.2.xml.2.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s[[0]]{i1}], [dmr-testsuite/test_array_7.2.xml.3.trans_base], [pass])
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s[[0]]{i1[[]][[]]}], [dmr-testsuite/test_array_7.2.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s[[0]]{i1}], [test_array_7.2.xml.3.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s[[0]]{i1[[]][[]]}], [test_array_7.2.xml.3.trans_base], [pass])
 
-DMR_TRANS_CE([dmr-testsuite/test_array_7.2.xml], [/col=[[1:2]];s[[0]]{i1[[0]][[]]}], [dmr-testsuite/test_array_7.2.xml.4.trans_base], [pass])
+DMR_TRANS_CE([test_array_7.2.xml], [/col=[[1:2]];s[[0]]{i1[[0]][[]]}], [test_array_7.2.xml.4.trans_base], [pass])
 
 # Test the function parser and evaluator. The function 'scale' is defined 
 # for both DAP2 and DAP4 in D4TestFunction.cc/h
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,1)], [], [dmr-testsuite/test_array_1.xml.1.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,10)], [], [dmr-testsuite/test_array_1.xml.2.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,-10)], [], [dmr-testsuite/test_array_1.xml.3.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,0.001)], [], [dmr-testsuite/test_array_1.xml.4.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,-0.001)], [], [dmr-testsuite/test_array_1.xml.5.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,1)], [], [test_array_1.xml.1.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,10)], [], [test_array_1.xml.2.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,-10)], [], [test_array_1.xml.3.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,0.001)], [], [test_array_1.xml.4.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,-0.001)], [], [test_array_1.xml.5.func_base], [pass])
 
 # Test the largest signed int64 value (it will be stored in a D4RValue that 
 # holds a Int64 variable).
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,0x7fffffffffffffff)], [], [dmr-testsuite/test_array_1.xml.6.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,0x7fffffffffffffff)], [], [test_array_1.xml.6.func_base], [pass])
 # This only fits in a unsigned long long (DAP4's UInt64)
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_1.xml], [scale(x,0x8fffffffffffffff)], [], [dmr-testsuite/test_array_1.xml.7.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_1.xml], [scale(x,0x8fffffffffffffff)], [], [test_array_1.xml.7.func_base], [pass])
 
 # test_array_5 has 64 bit ints in c and d; a and b are Int8 and UInt8 types
 # all of these test arrays that use named dimensions
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_5.xml], [scale(a,0.001)], [], [dmr-testsuite/test_array_5.xml.1.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_5.xml], [scale(b,0.001)], [], [dmr-testsuite/test_array_5.xml.2.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_5.xml], [scale(a,0.001)], [], [test_array_5.xml.1.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_5.xml], [scale(b,0.001)], [], [test_array_5.xml.2.func_base], [pass])
 
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_5.xml], [scale(c,0.001)], [], [dmr-testsuite/test_array_5.xml.3.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/test_array_5.xml], [scale(d,0.001)], [], [dmr-testsuite/test_array_5.xml.4.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_5.xml], [scale(c,0.001)], [], [test_array_5.xml.3.func_base], [pass])
+DMR_TRANS_FUNC_CE([test_array_5.xml], [scale(d,0.001)], [], [test_array_5.xml.4.func_base], [pass])
 
 # Use the vol_1_ce_* datasets for tests
 
 # Test using variables for source values and functional composition
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(u,10)], [], [dmr-testsuite/vol_1_ce_1.xml.1.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(u,v)], [], [dmr-testsuite/vol_1_ce_1.xml.2.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(scale(u,10),0.01)], [], [dmr-testsuite/vol_1_ce_1.xml.3.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(u,10)], [], [vol_1_ce_1.xml.1.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(u,v)], [], [vol_1_ce_1.xml.2.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(scale(u,10),0.01)], [], [vol_1_ce_1.xml.3.func_base], [pass])
 
 # Test name parsing for Structure members
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(Point.x,10)], [], [dmr-testsuite/vol_1_ce_1.xml.4.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(Point.x,Point.y)], [], [dmr-testsuite/vol_1_ce_1.xml.5.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(scale(Point.x,10),0.01)], [], [dmr-testsuite/vol_1_ce_1.xml.6.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(Point.x,10)], [], [vol_1_ce_1.xml.4.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(Point.x,Point.y)], [], [vol_1_ce_1.xml.5.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(scale(Point.x,10),0.01)], [], [vol_1_ce_1.xml.6.func_base], [pass])
 
 # Test the 'array constant' special form (we need a dataset only because the parser needs a DMR to run)
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Byte(20:1,2,3,4),10)], [], [dmr-testsuite/vol_1_ce_1.xml.7.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Int8(20:10,11,12,-9),10)], [], [dmr-testsuite/vol_1_ce_1.xml.8.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$UInt16(20:1,2,3,4),10)], [], [dmr-testsuite/vol_1_ce_1.xml.9.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Int16(20:1,2,3,-4),10)], [], [dmr-testsuite/vol_1_ce_1.xml.10.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$UInt32(20:1,2,3,4),10)], [], [dmr-testsuite/vol_1_ce_1.xml.11.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Int32(20:1,2,3,-4),10)], [], [dmr-testsuite/vol_1_ce_1.xml.12.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$UInt64(20:1,2,3,0xffffffffffffffff),1)], [], [dmr-testsuite/vol_1_ce_1.xml.13.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Int64(20:1,2,3,0x7fffffffffffffff),1)], [], [dmr-testsuite/vol_1_ce_1.xml.14.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Float32(20:1,2,3,4.55),10)], [], [dmr-testsuite/vol_1_ce_1.xml.15.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_1.xml], [scale(\$Float64(20:1,2,3,4.55),10)], [], [dmr-testsuite/vol_1_ce_1.xml.16.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Byte(20:1,2,3,4),10)], [], [vol_1_ce_1.xml.7.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Int8(20:10,11,12,-9),10)], [], [vol_1_ce_1.xml.8.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$UInt16(20:1,2,3,4),10)], [], [vol_1_ce_1.xml.9.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Int16(20:1,2,3,-4),10)], [], [vol_1_ce_1.xml.10.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$UInt32(20:1,2,3,4),10)], [], [vol_1_ce_1.xml.11.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Int32(20:1,2,3,-4),10)], [], [vol_1_ce_1.xml.12.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$UInt64(20:1,2,3,0xffffffffffffffff),1)], [], [vol_1_ce_1.xml.13.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Int64(20:1,2,3,0x7fffffffffffffff),1)], [], [vol_1_ce_1.xml.14.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Float32(20:1,2,3,4.55),10)], [], [vol_1_ce_1.xml.15.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_1.xml], [scale(\$Float64(20:1,2,3,4.55),10)], [], [vol_1_ce_1.xml.16.func_base], [pass])
 
 # Test a sequence of function calls and the application of a Constraint to 
 # a function result
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_10.xml], [scale(lat,10)], [], [dmr-testsuite/vol_1_ce_10.xml.1.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_10.xml], [scale(lat,10);scale(lon,10)], [], [dmr-testsuite/vol_1_ce_10.xml.2.func_base], [pass])
-DMR_TRANS_FUNC_CE([dmr-testsuite/vol_1_ce_10.xml], [scale(lat,10);scale(lon,10)], [lat[[10:11]][[10:11]];lon[[10:11]][[10:11]]], [dmr-testsuite/vol_1_ce_10.xml.3.func_base], [pass])
-
-
+DMR_TRANS_FUNC_CE([vol_1_ce_10.xml], [scale(lat,10)], [], [vol_1_ce_10.xml.1.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_10.xml], [scale(lat,10);scale(lon,10)], [], [vol_1_ce_10.xml.2.func_base], [pass])
+DMR_TRANS_FUNC_CE([vol_1_ce_10.xml], [scale(lat,10);scale(lon,10)], [lat[[10:11]][[10:11]];lon[[10:11]][[10:11]]], [vol_1_ce_10.xml.3.func_base], [pass])
+
+# Tests added for the D4Sequence filter support. jhrg 4/28/16
+# These will be 'universal' tests (the idea was introduced on the 
+# master branch and tested out up above. See the calls to 
+# DMR_TRANS_UNIVERSAL jhrg 5/5/16
+
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s], [test_simple_7.xml.f.trans_base], [pass])
+
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1==1024], [test_simple_7.xml.f1.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1!=1024], [test_simple_7.xml.f2.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1<=1024], [test_simple_7.xml.f3.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1<1024], [test_simple_7.xml.f4.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1<=1024], [test_simple_7.xml.f5.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1>1024], [test_simple_7.xml.f6.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1>=1024], [test_simple_7.xml.f7.trans_base], [pass])
+
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|1024<i1], [test_simple_7.xml.f8.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|1024<=i1<=32768], [test_simple_7.xml.f9.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|i1>=1024.0], [test_simple_7.xml.fa.trans_base], [pass])
+
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s==\"Silly test string: 2\"], [test_simple_7.xml.fs1.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s!=\"Silly test string: 2\"], [test_simple_7.xml.fs2.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s<\"Silly test string: 2\"], [test_simple_7.xml.fs3.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s<=\"Silly test string: 2\"], [test_simple_7.xml.fs4.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s>\"Silly test string: 2\"], [test_simple_7.xml.fs5.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s>=\"Silly test string: 2\"], [test_simple_7.xml.fs6.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s|s~=\".*2\"], [test_simple_7.xml.fs7.trans_base], [pass])
+
+# Test filtering a sequence that has only one field projected, including filtering on the values
+# of a filed not projected.
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s{i1}|i1<32768], [test_simple_7.xml.g1.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_7.xml], [s{i1}|s<=\"Silly test string: 2\"], [test_simple_7.xml.g1.trans_base], [pass])
+
+# A nested sequence with flots in the outer sequence and the int, string combination in the inner
+DMR_TRANS_SERIES_CE([test_simple_8.1.xml], [outer], [test_simple_8.1.xml.f1.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_8.1.xml], [outer{x;y}], [test_simple_8.1.xml.f2.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_8.1.xml], [outer{x;y;inner}], [test_simple_8.1.xml.f3.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_8.1.xml], [outer{x;y;inner|i1<1000}], [test_simple_8.1.xml.f4.trans_base], [pass])
+DMR_TRANS_SERIES_CE([test_simple_8.1.xml], [outer{x;y;inner|i1<1000}|x<0.0], [test_simple_8.1.xml.f5.trans_base], [pass])
 
diff --git a/tests/EXPRTest b/tests/EXPRTest
deleted file mode 100755
index 7af3380..0000000
--- a/tests/EXPRTest
+++ /dev/null
@@ -1,8001 +0,0 @@
-#! /bin/sh
-# Generated from EXPRTest.at by GNU Autoconf 2.69.
-#
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
-#
-# This test suite is free software; the Free Software Foundation gives
-# unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# How were we run?
-at_cli_args="$@"
-
-
-# Not all shells have the 'times' builtin; the subshell is needed to make
-# sure we discard the 'times: not found' message from the shell.
-at_times_p=false
-(times) >/dev/null 2>&1 && at_times_p=:
-
-# CLI Arguments to pass to the debugging scripts.
-at_debug_args=
-# -e sets to true
-at_errexit_p=false
-# Shall we be verbose?  ':' means no, empty means yes.
-at_verbose=:
-at_quiet=
-# Running several jobs in parallel, 0 means as many as test groups.
-at_jobs=1
-at_traceon=:
-at_trace_echo=:
-at_check_filter_trace=:
-
-# Shall we keep the debug scripts?  Must be `:' when the suite is
-# run by a debug script, so that the script doesn't remove itself.
-at_debug_p=false
-# Display help message?
-at_help_p=false
-# Display the version message?
-at_version_p=false
-# List test groups?
-at_list_p=false
-# --clean
-at_clean=false
-# Test groups to run
-at_groups=
-# Whether to rerun failed tests.
-at_recheck=
-# Whether a write failure occurred
-at_write_fail=0
-
-# The directory we run the suite in.  Default to . if no -C option.
-at_dir=`pwd`
-# An absolute reference to this testsuite script.
-case $as_myself in
-  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
-  * ) at_myself=$at_dir/$as_myself ;;
-esac
-# Whether -C is in effect.
-at_change_dir=false
-
-# Whether to enable colored test results.
-at_color=no
-# List of the tested programs.
-at_tested=''
-# As many question marks as there are digits in the last test group number.
-# Used to normalize the test group numbers so that `ls' lists them in
-# numerical order.
-at_format='???'
-# Description of all the test groups.
-at_help_all="1;EXPRTest.at:45;expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k i (pass);expr;
-2;EXPRTest.at:45;expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k i (pass);expr;
-3;EXPRTest.at:46;expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k i,j (pass);expr;
-4;EXPRTest.at:46;expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k i,j (pass);expr;
-5;EXPRTest.at:47;expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' (pass);expr;
-6;EXPRTest.at:47;expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' (pass);expr;
-7;EXPRTest.at:48;expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' (pass);expr;
-8;EXPRTest.at:48;expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' (pass);expr;
-9;EXPRTest.at:49;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s1 (pass);expr;
-10;EXPRTest.at:49;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s1 (pass);expr;
-11;EXPRTest.at:50;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2 (pass);expr;
-12;EXPRTest.at:50;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2 (pass);expr;
-13;EXPRTest.at:51;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2,s3 (pass);expr;
-14;EXPRTest.at:51;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2,s3 (pass);expr;
-15;EXPRTest.at:52;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o (pass);expr;
-16;EXPRTest.at:52;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o (pass);expr;
-17;EXPRTest.at:54;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m (pass);expr;
-18;EXPRTest.at:54;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m (pass);expr;
-19;EXPRTest.at:55;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l (pass);expr;
-20;EXPRTest.at:55;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l (pass);expr;
-21;EXPRTest.at:57;expr-test -w \$abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] (pass);expr;
-22;EXPRTest.at:57;expr-test -W \$abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] (pass);expr;
-23;EXPRTest.at:58;expr-test -w \$abs_srcdir/expr-testsuite/test.3 -k i[1:10] (pass);expr;
-24;EXPRTest.at:58;expr-test -W \$abs_srcdir/expr-testsuite/test.3 -k i[1:10] (pass);expr;
-25;EXPRTest.at:59;expr-test -w \$abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' (pass);expr;
-26;EXPRTest.at:59;expr-test -W \$abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' (pass);expr;
-27;EXPRTest.at:68;expr-test -b -w \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' (pass);expr;
-28;EXPRTest.at:71;expr-test -b -W \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' (pass);expr;
-29;EXPRTest.at:77;expr-test -w \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' (pass);expr;
-30;EXPRTest.at:77;expr-test -W \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' (pass);expr;
-31;EXPRTest.at:79;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] (pass);expr;
-32;EXPRTest.at:79;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] (pass);expr;
-33;EXPRTest.at:80;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] (pass);expr;
-34;EXPRTest.at:80;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] (pass);expr;
-35;EXPRTest.at:81;expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i (pass);expr;
-36;EXPRTest.at:81;expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i (pass);expr;
-37;EXPRTest.at:82;expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] (pass);expr;
-38;EXPRTest.at:82;expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] (pass);expr;
-39;EXPRTest.at:83;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] (pass);expr;
-40;EXPRTest.at:83;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] (pass);expr;
-41;EXPRTest.at:84;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.length (pass);expr;
-42;EXPRTest.at:84;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.length (pass);expr;
-43;EXPRTest.at:85;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.length,g.width (pass);expr;
-44;EXPRTest.at:85;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.length,g.width (pass);expr;
-45;EXPRTest.at:86;expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k j,o (pass);expr;
-46;EXPRTest.at:86;expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k j,o (pass);expr;
-47;EXPRTest.at:87;expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" (pass);expr;
-48;EXPRTest.at:87;expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" (pass);expr;
-49;EXPRTest.at:88;expr-test -w \$abs_srcdir/expr-testsuite/test.7 -k x,y,f (pass);expr;
-50;EXPRTest.at:88;expr-test -W \$abs_srcdir/expr-testsuite/test.7 -k x,y,f (pass);expr;
-51;EXPRTest.at:89;expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" (pass);expr;
-52;EXPRTest.at:89;expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" (pass);expr;
-53;EXPRTest.at:90;expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" (pass);expr;
-54;EXPRTest.at:90;expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" (pass);expr;
-55;EXPRTest.at:91;expr-test -w \$abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" (pass);expr;
-56;EXPRTest.at:91;expr-test -W \$abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" (pass);expr;
-57;EXPRTest.at:92;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] (pass);expr;
-58;EXPRTest.at:92;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] (pass);expr;
-59;EXPRTest.at:93;expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] (pass);expr;
-60;EXPRTest.at:93;expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] (pass);expr;
-61;EXPRTest.at:97;expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) (pass);expr;
-62;EXPRTest.at:97;expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) (pass);expr;
-63;EXPRTest.at:98;expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) (pass);expr;
-64;EXPRTest.at:98;expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) (pass);expr;
-65;EXPRTest.at:100;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) (pass);expr;
-66;EXPRTest.at:100;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) (pass);expr;
-67;EXPRTest.at:102;expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) (pass);expr;
-68;EXPRTest.at:102;expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) (pass);expr;
-69;EXPRTest.at:104;expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"\" -b (pass);expr;
-70;EXPRTest.at:104;expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"\" -b (pass);expr;
-71;EXPRTest.at:105;expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b (pass);expr;
-72;EXPRTest.at:105;expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b (pass);expr;
-73;EXPRTest.at:106;expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b (pass);expr;
-74;EXPRTest.at:106;expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b (pass);expr;
-75;EXPRTest.at:107;expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b (pass);expr;
-76;EXPRTest.at:107;expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b (pass);expr;
-77;EXPRTest.at:108;expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"\" -b (pass);expr;
-78;EXPRTest.at:108;expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"\" -b (pass);expr;
-79;EXPRTest.at:109;expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b (pass);expr;
-80;EXPRTest.at:109;expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b (pass);expr;
-81;EXPRTest.at:110;expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b (pass);expr;
-82;EXPRTest.at:110;expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b (pass);expr;
-83;EXPRTest.at:111;expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b (pass);expr;
-84;EXPRTest.at:111;expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b (pass);expr;
-85;EXPRTest.at:112;expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b (pass);expr;
-86;EXPRTest.at:112;expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b (pass);expr;
-87;EXPRTest.at:113;expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b (pass);expr;
-88;EXPRTest.at:113;expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b (pass);expr;
-89;EXPRTest.at:114;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"\" -b (pass);expr;
-90;EXPRTest.at:114;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"\" -b (pass);expr;
-91;EXPRTest.at:115;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b (pass);expr;
-92;EXPRTest.at:115;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b (pass);expr;
-93;EXPRTest.at:116;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b (pass);expr;
-94;EXPRTest.at:116;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b (pass);expr;
-95;EXPRTest.at:117;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b (pass);expr;
-96;EXPRTest.at:117;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b (pass);expr;
-97;EXPRTest.at:118;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b (pass);expr;
-98;EXPRTest.at:118;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b (pass);expr;
-99;EXPRTest.at:119;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b (pass);expr;
-100;EXPRTest.at:119;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b (pass);expr;
-101;EXPRTest.at:120;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b (pass);expr;
-102;EXPRTest.at:120;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b (pass);expr;
-103;EXPRTest.at:121;expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b (pass);expr;
-104;EXPRTest.at:121;expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b (pass);expr;
-105;EXPRTest.at:123;expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k i (pass);expr;
-106;EXPRTest.at:123;expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k i (pass);expr;
-107;EXPRTest.at:124;expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  (pass);expr;
-108;EXPRTest.at:124;expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  (pass);expr;
-109;EXPRTest.at:125;expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  (pass);expr;
-110;EXPRTest.at:125;expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  (pass);expr;
-111;EXPRTest.at:126;expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  (pass);expr;
-112;EXPRTest.at:126;expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  (pass);expr;
-113;EXPRTest.at:127;expr-test -b -w \$abs_srcdir/expr-testsuite/test.c0 -k SST (pass);expr;
-114;EXPRTest.at:127;expr-test -b -W \$abs_srcdir/expr-testsuite/test.c0 -k SST (pass);expr;
-115;EXPRTest.at:129;expr-test -b -w \$abs_srcdir/expr-testsuite/test.f -k \"\" (pass);expr;
-116;EXPRTest.at:129;expr-test -b -W \$abs_srcdir/expr-testsuite/test.f -k \"\" (pass);expr;
-117;EXPRTest.at:130;expr-test -b -w \$abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" (pass);expr;
-118;EXPRTest.at:130;expr-test -b -W \$abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" (pass);expr;
-"
-# List of the all the test groups.
-at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
-
-# at_fn_validate_ranges NAME...
-# -----------------------------
-# Validate and normalize the test group number contained in each variable
-# NAME. Leading zeroes are treated as decimal.
-at_fn_validate_ranges ()
-{
-  for at_grp
-  do
-    eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 118; then
-      $as_echo "invalid test group: $at_value" >&2
-      exit 1
-    fi
-    case $at_value in
-      0*) # We want to treat leading 0 as decimal, like expr and test, but
-	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
-	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
-	  # expr fork, but it is not worth the effort to determine if the
-	  # shell supports XSI when the user can just avoid leading 0.
-	  eval $at_grp='`expr $at_value + 0`' ;;
-    esac
-  done
-}
-
-at_prev=
-for at_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$at_prev"; then
-    at_option=$at_prev=$at_option
-    at_prev=
-  fi
-
-  case $at_option in
-  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
-  *)    at_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $at_option in
-    --help | -h )
-	at_help_p=:
-	;;
-
-    --list | -l )
-	at_list_p=:
-	;;
-
-    --version | -V )
-	at_version_p=:
-	;;
-
-    --clean | -c )
-	at_clean=:
-	;;
-
-    --color )
-	at_color=always
-	;;
-    --color=* )
-	case $at_optarg in
-	no | never | none) at_color=never ;;
-	auto | tty | if-tty) at_color=auto ;;
-	always | yes | force) at_color=always ;;
-	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
-	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
-	esac
-	;;
-
-    --debug | -d )
-	at_debug_p=:
-	;;
-
-    --errexit | -e )
-	at_debug_p=:
-	at_errexit_p=:
-	;;
-
-    --verbose | -v )
-	at_verbose=; at_quiet=:
-	;;
-
-    --trace | -x )
-	at_traceon='set -x'
-	at_trace_echo=echo
-	at_check_filter_trace=at_fn_filter_trace
-	;;
-
-    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
-	at_fn_validate_ranges at_option
-	as_fn_append at_groups "$at_option$as_nl"
-	;;
-
-    # Ranges
-    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
-	at_range_start=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_start
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,$p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '1,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
-    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
-    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`expr $at_option : '\(.*\)-'`
-	at_range_end=`expr $at_option : '.*-\(.*\)'`
-	if test $at_range_start -gt $at_range_end; then
-	  at_tmp=$at_range_end
-	  at_range_end=$at_range_start
-	  at_range_start=$at_tmp
-	fi
-	at_fn_validate_ranges at_range_start at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    # Directory selection.
-    --directory | -C )
-	at_prev=--directory
-	;;
-    --directory=* )
-	at_change_dir=:
-	at_dir=$at_optarg
-	if test x- = "x$at_dir" ; then
-	  at_dir=./-
-	fi
-	;;
-
-    # Parallel execution.
-    --jobs | -j )
-	at_jobs=0
-	;;
-    --jobs=* | -j[0-9]* )
-	if test -n "$at_optarg"; then
-	  at_jobs=$at_optarg
-	else
-	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
-	fi
-	case $at_jobs in *[!0-9]*)
-	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
-	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
-	esac
-	;;
-
-    # Keywords.
-    --keywords | -k )
-	at_prev=--keywords
-	;;
-    --keywords=* )
-	at_groups_selected=$at_help_all
-	at_save_IFS=$IFS
-	IFS=,
-	set X $at_optarg
-	shift
-	IFS=$at_save_IFS
-	for at_keyword
-	do
-	  at_invert=
-	  case $at_keyword in
-	  '!'*)
-	    at_invert="-v"
-	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
-	    ;;
-	  esac
-	  # It is on purpose that we match the test group titles too.
-	  at_groups_selected=`$as_echo "$at_groups_selected" |
-	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
-	done
-	# Smash the keywords.
-	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
-	as_fn_append at_groups "$at_groups_selected$as_nl"
-	;;
-    --recheck)
-	at_recheck=:
-	;;
-
-    *=*)
-	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-	# Reject names that are not valid shell variable names.
-	case $at_envvar in
-	  '' | [0-9]* | *[!_$as_cr_alnum]* )
-	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
-	esac
-	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-	# Export now, but save eval for later and for debug scripts.
-	export $at_envvar
-	as_fn_append at_debug_args " $at_envvar='$at_value'"
-	;;
-
-     *) $as_echo "$as_me: invalid option: $at_option" >&2
-	$as_echo "Try \`$0 --help' for more information." >&2
-	exit 1
-	;;
-  esac
-done
-
-# Verify our last option didn't require an argument
-if test -n "$at_prev"; then :
-  as_fn_error $? "\`$at_prev' requires an argument"
-fi
-
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-
-# Selected test groups.
-if test -z "$at_groups$at_recheck"; then
-  at_groups=$at_groups_all
-else
-  if test -n "$at_recheck" && test -r "$at_suite_log"; then
-    at_oldfails=`sed -n '
-      /^Failed tests:$/,/^Skipped tests:$/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^Unexpected passes:$/,/^## Detailed failed tests/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^## Detailed failed tests/q
-      ' "$at_suite_log"`
-    as_fn_append at_groups "$at_oldfails$as_nl"
-  fi
-  # Sort the tests, removing duplicates.
-  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
-fi
-
-if test x"$at_color" = xalways \
-   || { test x"$at_color" = xauto && test -t 1; }; then
-  at_red=`printf '\033[0;31m'`
-  at_grn=`printf '\033[0;32m'`
-  at_lgn=`printf '\033[1;32m'`
-  at_blu=`printf '\033[1;34m'`
-  at_std=`printf '\033[m'`
-else
-  at_red= at_grn= at_lgn= at_blu= at_std=
-fi
-
-# Help message.
-if $at_help_p; then
-  cat <<_ATEOF || at_write_fail=1
-Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
-
-Run all the tests, or the selected TESTS, given by numeric ranges, and
-save a detailed log file.  Upon failure, create debugging scripts.
-
-Do not change environment variables directly.  Instead, set them via
-command line arguments.  Set \`AUTOTEST_PATH' to select the executables
-to exercise.  Each relative directory is expanded as build and source
-directories relative to the top level of this distribution.
-E.g., from within the build directory /tmp/foo-1.0, invoking this:
-
-  $ $0 AUTOTEST_PATH=bin
-
-is equivalent to the following, assuming the source directory is /src/foo-1.0:
-
-  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Operation modes:
-  -h, --help     print the help message, then exit
-  -V, --version  print version number, then exit
-  -c, --clean    remove all the files this test suite might create and exit
-  -l, --list     describes all the tests, or the selected TESTS
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Execution tuning:
-  -C, --directory=DIR
-                 change to directory DIR before starting
-      --color[=never|auto|always]
-                 enable colored test results on terminal, or always
-  -j, --jobs[=N]
-                 Allow N jobs at once; infinite jobs with no arg (default 1)
-  -k, --keywords=KEYWORDS
-                 select the tests matching all the comma-separated KEYWORDS
-                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
-      --recheck  select all tests that failed or passed unexpectedly last time
-  -e, --errexit  abort as soon as a test fails; implies --debug
-  -v, --verbose  force more detailed output
-                 default for debugging scripts
-  -d, --debug    inhibit clean up and top-level logging
-                 default for debugging scripts
-  -x, --trace    enable tests shell tracing
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Report bugs to <opendap-tech at opendap.org>.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# List of tests.
-if $at_list_p; then
-  cat <<_ATEOF || at_write_fail=1
-libdap 3.15.1 test suite: expr-test test groups:
-
- NUM: FILE-NAME:LINE     TEST-GROUP-NAME
-      KEYWORDS
-
-_ATEOF
-  # Pass an empty line as separator between selected groups and help.
-  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
-    awk 'NF == 1 && FS != ";" {
-	   selected[$ 1] = 1
-	   next
-	 }
-	 /^$/ { FS = ";" }
-	 NF > 0 {
-	   if (selected[$ 1]) {
-	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
-	     if ($ 4) {
-	       lmax = 79
-	       indent = "     "
-	       line = indent
-	       len = length (line)
-	       n = split ($ 4, a, " ")
-	       for (i = 1; i <= n; i++) {
-		 l = length (a[i]) + 1
-		 if (i > 1 && len + l > lmax) {
-		   print line
-		   line = indent " " a[i]
-		   len = length (line)
-		 } else {
-		   line = line " " a[i]
-		   len += l
-		 }
-	       }
-	       if (n)
-		 print line
-	     }
-	   }
-	 }' || at_write_fail=1
-  exit $at_write_fail
-fi
-if $at_version_p; then
-  $as_echo "$as_me (libdap 3.15.1)" &&
-  cat <<\_ATEOF || at_write_fail=1
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This test suite is free software; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# Should we print banners?  Yes if more than one test is run.
-case $at_groups in #(
-  *$as_nl* )
-      at_print_banners=: ;; #(
-  * ) at_print_banners=false ;;
-esac
-# Text for banner N, set to a single space once printed.
-
-# Take any -C into account.
-if $at_change_dir ; then
-  test x != "x$at_dir" && cd "$at_dir" \
-    || as_fn_error $? "unable to change directory"
-  at_dir=`pwd`
-fi
-
-# Load the config files for any default variable assignments.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || as_fn_error $? "invalid content: $at_file"
-done
-
-# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
-: "${at_top_build_prefix=$at_top_builddir}"
-
-# Perform any assignments requested during argument parsing.
-eval "$at_debug_args"
-
-# atconfig delivers names relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir_var in srcdir top_srcdir top_build_prefix
-  do
-    eval at_val=\$at_$at_dir_var
-    case $at_val in
-      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
-      *) at_prefix=../../ ;;
-    esac
-    eval "$at_dir_var=\$at_prefix\$at_val"
-  done
-fi
-
-## -------------------- ##
-## Directory structure. ##
-## -------------------- ##
-
-# This is the set of directories and files used by this script
-# (non-literals are capitalized):
-#
-# TESTSUITE         - the testsuite
-# TESTSUITE.log     - summarizes the complete testsuite run
-# TESTSUITE.dir/    - created during a run, remains after -d or failed test
-# + at-groups/      - during a run: status of all groups in run
-# | + NNN/          - during a run: meta-data about test group NNN
-# | | + check-line  - location (source file and line) of current AT_CHECK
-# | | + status      - exit status of current AT_CHECK
-# | | + stdout      - stdout of current AT_CHECK
-# | | + stder1      - stderr, including trace
-# | | + stderr      - stderr, with trace filtered out
-# | | + test-source - portion of testsuite that defines group
-# | | + times       - timestamps for computing duration
-# | | + pass        - created if group passed
-# | | + xpass       - created if group xpassed
-# | | + fail        - created if group failed
-# | | + xfail       - created if group xfailed
-# | | + skip        - created if group skipped
-# + at-stop         - during a run: end the run if this file exists
-# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
-# + 0..NNN/         - created for each group NNN, remains after -d or failed test
-# | + TESTSUITE.log - summarizes the group results
-# | + ...           - files created during the group
-
-# The directory the whole suite works in.
-# Should be absolute to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite ($at_dir might have changed since earlier).
-at_suite_log=$at_dir/$as_me.log
-# The directory containing helper files per test group.
-at_helper_dir=$at_suite_dir/at-groups
-# Stop file: if it exists, do not start new jobs.
-at_stop_file=$at_suite_dir/at-stop
-# The fifo used for the job dispatcher.
-at_job_fifo=$at_suite_dir/at-job-fifo
-
-if $at_clean; then
-  test -d "$at_suite_dir" &&
-    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-  rm -f -r "$at_suite_dir" "$at_suite_log"
-  exit $?
-fi
-
-# Don't take risks: use only absolute directories in PATH.
-#
-# For stand-alone test suites (ie. atconfig was not found),
-# AUTOTEST_PATH is relative to `.'.
-#
-# For embedded test suites, AUTOTEST_PATH is relative to the top level
-# of the package.  Then expand it into build/src parts, since users
-# may create executables in both places.
-AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
-at_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $AUTOTEST_PATH $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
-case $as_dir in
-  [\\/]* | ?:[\\/]* )
-    as_fn_append at_path "$as_dir"
-    ;;
-  * )
-    if test -z "$at_top_build_prefix"; then
-      # Stand-alone test suite.
-      as_fn_append at_path "$as_dir"
-    else
-      # Embedded test suite.
-      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
-      as_fn_append at_path "$at_top_srcdir/$as_dir"
-    fi
-    ;;
-esac
-  done
-IFS=$as_save_IFS
-
-
-# Now build and simplify PATH.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-at_new_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $at_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -d "$as_dir" || continue
-case $as_dir in
-  [\\/]* | ?:[\\/]* ) ;;
-  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
-esac
-case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
-  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
-  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
-esac
-  done
-IFS=$as_save_IFS
-
-PATH=$at_new_path
-export PATH
-
-# Setting up the FDs.
-
-
-
-# 5 is the log file.  Not to be overwritten if `-d'.
-if $at_debug_p; then
-  at_suite_log=/dev/null
-else
-  : >"$at_suite_log"
-fi
-exec 5>>"$at_suite_log"
-
-# Banners and logs.
-$as_echo "## ------------------------------------ ##
-## libdap 3.15.1 test suite: expr-test. ##
-## ------------------------------------ ##"
-{
-  $as_echo "## ------------------------------------ ##
-## libdap 3.15.1 test suite: expr-test. ##
-## ------------------------------------ ##"
-  echo
-
-  $as_echo "$as_me: command line was:"
-  $as_echo "  \$ $0 $at_cli_args"
-  echo
-
-  # If ChangeLog exists, list a few lines in case it might help determining
-  # the exact version.
-  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
-    $as_echo "## ---------- ##
-## ChangeLog. ##
-## ---------- ##"
-    echo
-    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
-    echo
-  fi
-
-  {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-}
-  echo
-
-  # Contents of the config files.
-  for at_file in atconfig atlocal
-  do
-    test -r $at_file || continue
-    $as_echo "$as_me: $at_file:"
-    sed 's/^/| /' $at_file
-    echo
-  done
-} >&5
-
-
-## ------------------------- ##
-## Autotest shell functions. ##
-## ------------------------- ##
-
-# at_fn_banner NUMBER
-# -------------------
-# Output banner NUMBER, provided the testsuite is running multiple groups and
-# this particular banner has not yet been printed.
-at_fn_banner ()
-{
-  $at_print_banners || return 0
-  eval at_banner_text=\$at_banner_text_$1
-  test "x$at_banner_text" = "x " && return 0
-  eval "at_banner_text_$1=\" \""
-  if test -z "$at_banner_text"; then
-    $at_first || echo
-  else
-    $as_echo "$as_nl$at_banner_text$as_nl"
-  fi
-} # at_fn_banner
-
-# at_fn_check_prepare_notrace REASON LINE
-# ---------------------------------------
-# Perform AT_CHECK preparations for the command at LINE for an untraceable
-# command; REASON is the reason for disabling tracing.
-at_fn_check_prepare_notrace ()
-{
-  $at_trace_echo "Not enabling shell tracing (command contains $1)"
-  $as_echo "$2" >"$at_check_line_file"
-  at_check_trace=: at_check_filter=:
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_trace LINE
-# ------------------------------
-# Perform AT_CHECK preparations for the command at LINE for a traceable
-# command.
-at_fn_check_prepare_trace ()
-{
-  $as_echo "$1" >"$at_check_line_file"
-  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_dynamic COMMAND LINE
-# ----------------------------------------
-# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
-# preparation function.
-at_fn_check_prepare_dynamic ()
-{
-  case $1 in
-    *$as_nl*)
-      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
-    *)
-      at_fn_check_prepare_trace "$2" ;;
-  esac
-}
-
-# at_fn_filter_trace
-# ------------------
-# Remove the lines in the file "$at_stderr" generated by "set -x" and print
-# them to stderr.
-at_fn_filter_trace ()
-{
-  mv "$at_stderr" "$at_stder1"
-  grep '^ *+' "$at_stder1" >&2
-  grep -v '^ *+' "$at_stder1" >"$at_stderr"
-}
-
-# at_fn_log_failure FILE-LIST
-# ---------------------------
-# Copy the files in the list on stdout with a "> " prefix, and exit the shell
-# with a failure exit code.
-at_fn_log_failure ()
-{
-  for file
-    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
-  echo 1 > "$at_status_file"
-  exit 1
-}
-
-# at_fn_check_skip EXIT-CODE LINE
-# -------------------------------
-# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
-# the test group subshell with that same exit code. Use LINE in any report
-# about test failure.
-at_fn_check_skip ()
-{
-  case $1 in
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$2: hard failure"; exit 99;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-  esac
-}
-
-# at_fn_check_status EXPECTED EXIT-CODE LINE
-# ------------------------------------------
-# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
-# Otherwise, if it is 77 or 99, exit the test group subshell with that same
-# exit code; if it is anything else print an error message referring to LINE,
-# and fail the test.
-at_fn_check_status ()
-{
-  case $2 in
-    $1 ) ;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$3: hard failure"; exit 99;;
-    *) $as_echo "$3: exit code was $2, expected $1"
-      at_failed=:;;
-  esac
-}
-
-# at_fn_diff_devnull FILE
-# -----------------------
-# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
-# invocations.
-at_fn_diff_devnull ()
-{
-  test -s "$1" || return 0
-  $at_diff "$at_devnull" "$1"
-}
-
-# at_fn_test NUMBER
-# -----------------
-# Parse out test NUMBER from the tail of this file.
-at_fn_test ()
-{
-  eval at_sed=\$at_sed$1
-  sed "$at_sed" "$at_myself" > "$at_test_source"
-}
-
-# at_fn_create_debugging_script
-# -----------------------------
-# Create the debugging script $at_group_dir/run which will reproduce the
-# current test group.
-at_fn_create_debugging_script ()
-{
-  {
-    echo "#! /bin/sh" &&
-    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
-    $as_echo "cd '$at_dir'" &&
-    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
-    echo 'exit 1'
-  } >"$at_group_dir/run" &&
-  chmod +x "$at_group_dir/run"
-}
-
-## -------------------------------- ##
-## End of autotest shell functions. ##
-## -------------------------------- ##
-{
-  $as_echo "## ---------------- ##
-## Tested programs. ##
-## ---------------- ##"
-  echo
-} >&5
-
-# Report what programs are being tested.
-for at_program in : $at_tested
-do
-  test "$at_program" = : && continue
-  case $at_program in
-    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
-    * )
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -f "$as_dir/$at_program" && break
-  done
-IFS=$as_save_IFS
-
-    at_program_=$as_dir/$at_program ;;
-  esac
-  if test -f "$at_program_"; then
-    {
-      $as_echo "$at_srcdir/EXPRTest.at:3: $at_program_ --version"
-      "$at_program_" --version </dev/null
-      echo
-    } >&5 2>&1
-  else
-    as_fn_error $? "cannot find $at_program" "$LINENO" 5
-  fi
-done
-
-{
-  $as_echo "## ------------------ ##
-## Running the tests. ##
-## ------------------ ##"
-} >&5
-
-at_start_date=`date`
-at_start_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: starting at: $at_start_date" >&5
-
-# Create the master directory if it doesn't already exist.
-as_dir="$at_suite_dir"; as_fn_mkdir_p ||
-  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
-
-# Can we diff with `/dev/null'?  DU 5.0 refuses.
-if diff /dev/null /dev/null >/dev/null 2>&1; then
-  at_devnull=/dev/null
-else
-  at_devnull=$at_suite_dir/devnull
-  >"$at_devnull"
-fi
-
-# Use `diff -u' when possible.
-if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
-then
-  at_diff='diff -u'
-else
-  at_diff=diff
-fi
-
-# Get the last needed group.
-for at_group in : $at_groups; do :; done
-
-# Extract the start and end lines of each test group at the tail
-# of this file
-awk '
-BEGIN { FS="" }
-/^#AT_START_/ {
-  start = NR
-}
-/^#AT_STOP_/ {
-  test = substr ($ 0, 10)
-  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
-  if (test == "'"$at_group"'") exit
-}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
-. "$at_suite_dir/at-source-lines" ||
-  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
-rm -f "$at_suite_dir/at-source-lines"
-
-# Set number of jobs for `-j'; avoid more jobs than test groups.
-set X $at_groups; shift; at_max_jobs=$#
-if test $at_max_jobs -eq 0; then
-  at_jobs=1
-fi
-if test $at_jobs -ne 1 &&
-   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
-  at_jobs=$at_max_jobs
-fi
-
-# If parallel mode, don't output banners, don't split summary lines.
-if test $at_jobs -ne 1; then
-  at_print_banners=false
-  at_quiet=:
-fi
-
-# Set up helper dirs.
-rm -rf "$at_helper_dir" &&
-mkdir "$at_helper_dir" &&
-cd "$at_helper_dir" &&
-{ test -z "$at_groups" || mkdir $at_groups; } ||
-as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
-
-# Functions for running a test group.  We leave the actual
-# test group execution outside of a shell function in order
-# to avoid hitting zsh 4.x exit status bugs.
-
-# at_fn_group_prepare
-# -------------------
-# Prepare for running a test group.
-at_fn_group_prepare ()
-{
-  # The directory for additional per-group helper files.
-  at_job_dir=$at_helper_dir/$at_group
-  # The file containing the location of the last AT_CHECK.
-  at_check_line_file=$at_job_dir/check-line
-  # The file containing the exit status of the last command.
-  at_status_file=$at_job_dir/status
-  # The files containing the output of the tested commands.
-  at_stdout=$at_job_dir/stdout
-  at_stder1=$at_job_dir/stder1
-  at_stderr=$at_job_dir/stderr
-  # The file containing the code for a test group.
-  at_test_source=$at_job_dir/test-source
-  # The file containing dates.
-  at_times_file=$at_job_dir/times
-
-  # Be sure to come back to the top test directory.
-  cd "$at_suite_dir"
-
-  # Clearly separate the test groups when verbose.
-  $at_first || $at_verbose echo
-
-  at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-
-  # Create a fresh directory for the next test group, and enter.
-  # If one already exists, the user may have invoked ./run from
-  # within that directory; we remove the contents, but not the
-  # directory itself, so that we aren't pulling the rug out from
-  # under the shell's notion of the current directory.
-  at_group_dir=$at_suite_dir/$at_group_normalized
-  at_group_log=$at_group_dir/$as_me.log
-  if test -d "$at_group_dir"; then
-  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
-  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
-fi ||
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
-$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
-  # Be tolerant if the above `rm' was not able to remove the directory.
-  as_dir="$at_group_dir"; as_fn_mkdir_p
-
-  echo 0 > "$at_status_file"
-
-  # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log.
-  if test -z "$at_verbose"; then
-    at_tee_pipe='tee -a "$at_group_log"'
-  else
-    at_tee_pipe='cat >> "$at_group_log"'
-  fi
-}
-
-# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
-# -------------------------------------------------
-# Declare the test group ORDINAL, located at LINE with group description DESC,
-# and residing under BANNER. Use PAD to align the status column.
-at_fn_group_banner ()
-{
-  at_setup_line="$2"
-  test -n "$5" && at_fn_banner $5
-  at_desc="$3"
-  case $1 in
-    [0-9])      at_desc_line="  $1: ";;
-    [0-9][0-9]) at_desc_line=" $1: " ;;
-    *)          at_desc_line="$1: "  ;;
-  esac
-  as_fn_append at_desc_line "$3$4"
-  $at_quiet $as_echo_n "$at_desc_line"
-  echo "#                             -*- compilation -*-" >> "$at_group_log"
-}
-
-# at_fn_group_postprocess
-# -----------------------
-# Perform cleanup after running a test group.
-at_fn_group_postprocess ()
-{
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd "$at_suite_dir"
-
-  if test ! -f "$at_check_line_file"; then
-    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
-      A failure happened in a test group before any test could be
-      run. This means that test suite is improperly designed.  Please
-      report this failure to <opendap-tech at opendap.org>.
-_ATEOF
-    $as_echo "$at_setup_line" >"$at_check_line_file"
-    at_status=99
-  fi
-  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
-  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
-  case $at_xfail:$at_status in
-    yes:0)
-	at_msg="UNEXPECTED PASS"
-	at_res=xpass
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    no:0)
-	at_msg="ok"
-	at_res=pass
-	at_errexit=false
-	at_color=$at_grn
-	;;
-    *:77)
-	at_msg='skipped ('`cat "$at_check_line_file"`')'
-	at_res=skip
-	at_errexit=false
-	at_color=$at_blu
-	;;
-    no:* | *:99)
-	at_msg='FAILED ('`cat "$at_check_line_file"`')'
-	at_res=fail
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    yes:*)
-	at_msg='expected failure ('`cat "$at_check_line_file"`')'
-	at_res=xfail
-	at_errexit=false
-	at_color=$at_lgn
-	;;
-  esac
-  echo "$at_res" > "$at_job_dir/$at_res"
-  # In parallel mode, output the summary line only afterwards.
-  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
-    $as_echo "$at_desc_line $at_color$at_msg$at_std"
-  else
-    # Make sure there is a separator even with long titles.
-    $as_echo " $at_color$at_msg$at_std"
-  fi
-  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-  case $at_status in
-    0|77)
-      # $at_times_file is only available if the group succeeded.
-      # We're not including the group log, so the success message
-      # is written in the global log separately.  But we also
-      # write to the group log in case they're using -d.
-      if test -f "$at_times_file"; then
-	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
-	rm -f "$at_times_file"
-      fi
-      $as_echo "$at_log_msg" >> "$at_group_log"
-      $as_echo "$at_log_msg" >&5
-
-      # Cleanup the group directory, unless the user wants the files
-      # or the success was unexpected.
-      if $at_debug_p || test $at_res = xpass; then
-	at_fn_create_debugging_script
-	if test $at_res = xpass && $at_errexit; then
-	  echo stop > "$at_stop_file"
-	fi
-      else
-	if test -d "$at_group_dir"; then
-	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-	  rm -fr "$at_group_dir"
-	fi
-	rm -f "$at_test_source"
-      fi
-      ;;
-    *)
-      # Upon failure, include the log into the testsuite's global
-      # log.  The failure message is written in the group log.  It
-      # is later included in the global log.
-      $as_echo "$at_log_msg" >> "$at_group_log"
-
-      # Upon failure, keep the group directory for autopsy, and create
-      # the debugging script.  With -e, do not start any further tests.
-      at_fn_create_debugging_script
-      if $at_errexit; then
-	echo stop > "$at_stop_file"
-      fi
-      ;;
-  esac
-}
-
-
-## ------------ ##
-## Driver loop. ##
-## ------------ ##
-
-
-if (set -m && set +m && set +b) >/dev/null 2>&1; then
-  set +b
-  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
-else
-  at_job_control_on=: at_job_control_off=: at_job_group=
-fi
-
-for at_signal in 1 2 15; do
-  trap 'set +x; set +e
-	$at_job_control_off
-	at_signal='"$at_signal"'
-	echo stop > "$at_stop_file"
-	trap "" $at_signal
-	at_pgids=
-	for at_pgid in `jobs -p 2>/dev/null`; do
-	  at_pgids="$at_pgids $at_job_group$at_pgid"
-	done
-	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
-	wait
-	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
-	  echo >&2
-	fi
-	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
-	set x $at_signame
-	test 1 -gt 2 && at_signame=$at_signal
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
-$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
-	as_fn_arith 128 + $at_signal && exit_status=$as_val
-	as_fn_exit $exit_status' $at_signal
-done
-
-rm -f "$at_stop_file"
-at_first=:
-
-if test $at_jobs -ne 1 &&
-     rm -f "$at_job_fifo" &&
-     test -n "$at_job_group" &&
-     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
-then
-  # FIFO job dispatcher.
-
-  trap 'at_pids=
-	for at_pid in `jobs -p`; do
-	  at_pids="$at_pids $at_job_group$at_pid"
-	done
-	if test -n "$at_pids"; then
-	  at_sig=TSTP
-	  test "${TMOUT+set}" = set && at_sig=STOP
-	  kill -$at_sig $at_pids 2>/dev/null
-	fi
-	kill -STOP $$
-	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
-
-  echo
-  # Turn jobs into a list of numbers, starting from 1.
-  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
-
-  set X $at_joblist
-  shift
-  for at_group in $at_groups; do
-    $at_job_control_on 2>/dev/null
-    (
-      # Start one test group.
-      $at_job_control_off
-      if $at_first; then
-	exec 7>"$at_job_fifo"
-      else
-	exec 6<&-
-      fi
-      trap 'set +x; set +e
-	    trap "" PIPE
-	    echo stop > "$at_stop_file"
-	    echo >&7
-	    as_fn_exit 141' PIPE
-      at_fn_group_prepare
-      if cd "$at_group_dir" &&
-	 at_fn_test $at_group &&
-	 . "$at_test_source"
-      then :; else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-	at_failed=:
-      fi
-      at_fn_group_postprocess
-      echo >&7
-    ) &
-    $at_job_control_off
-    if $at_first; then
-      at_first=false
-      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
-    fi
-    shift # Consume one token.
-    if test $# -gt 0; then :; else
-      read at_token <&6 || break
-      set x $*
-    fi
-    test -f "$at_stop_file" && break
-  done
-  exec 7>&-
-  # Read back the remaining ($at_jobs - 1) tokens.
-  set X $at_joblist
-  shift
-  if test $# -gt 0; then
-    shift
-    for at_job
-    do
-      read at_token
-    done <&6
-  fi
-  exec 6<&-
-  wait
-else
-  # Run serially, avoid forks and other potential surprises.
-  for at_group in $at_groups; do
-    at_fn_group_prepare
-    if cd "$at_group_dir" &&
-       at_fn_test $at_group &&
-       . "$at_test_source"; then :; else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-      at_failed=:
-    fi
-    at_fn_group_postprocess
-    test -f "$at_stop_file" && break
-    at_first=false
-  done
-fi
-
-# Wrap up the test suite with summary statistics.
-cd "$at_helper_dir"
-
-# Use ?..???? when the list must remain sorted, the faster * otherwise.
-at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
-at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
-at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
-at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
-		 echo $f; done | sed '/?/d; s,/xpass,,'`
-at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
-		echo $f; done | sed '/?/d; s,/fail,,'`
-
-set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
-shift; at_group_count=$#
-set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
-set X $at_xfail_list; shift; at_xfail_count=$#
-set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
-set X $at_skip_list; shift; at_skip_count=$#
-
-as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
-as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
-as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
-
-# Back to the top directory.
-cd "$at_dir"
-rm -rf "$at_helper_dir"
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: ending at: $at_stop_date" >&5
-case $at_start_time,$at_stop_time in
-  [0-9]*,[0-9]*)
-    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
-    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
-    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
-    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
-    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
-    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-    $as_echo "$as_me: test suite duration: $at_duration" >&5
-    ;;
-esac
-
-echo
-$as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-echo
-{
-  echo
-  $as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-  at_color=$at_red
-else
-  # Don't you just love exponential explosion of the number of cases?
-  at_color=$at_red
-  case $at_xpass_count:$at_fail_count:$at_xfail_count in
-    # So far, so good.
-    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
-    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_color$at_result$at_std"
-  echo "$at_result" >&5
-else
-  echo "${at_color}ERROR: $at_result$at_std" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    $as_echo "## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##"
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL "$at_myself" $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL "$at_myself" $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL "$at_myself" $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      $as_echo "## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##"
-      echo
-      for at_group in $at_fail_list
-      do
-	at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
-	echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## ${at_top_build_prefix}config.log ##
-_ASBOX
-      sed 's/^/| /' ${at_top_build_prefix}config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  if $at_debug_p; then
-    at_msg='per-test log files'
-  else
-    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
-  fi
-  $as_echo "Please send $at_msg and all information you think might help:
-
-   To: <opendap-tech at opendap.org>
-   Subject: [libdap 3.15.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
-
-You may investigate any problem if you feel able to do so, in which
-case the test suite provides a good starting point.  Its output may
-be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
-"
-  exit 1
-fi
-
-exit 0
-
-## ------------- ##
-## Actual tests. ##
-## ------------- ##
-#AT_START_1
-at_fn_group_banner 1 'EXPRTest.at:45' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k i (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "1. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:45: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k i -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k i -f \"dummy\" || true" "EXPRTest.at:45"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k i -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:45: diff -b -B \$abs_srcdir/expr-testsuite/test.1.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1.base stderr" "EXPRTest.at:45"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_1
-#AT_START_2
-at_fn_group_banner 2 'EXPRTest.at:45' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k i (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "2. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:45: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k i -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k i -f \"dummy\" || true" "EXPRTest.at:45"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k i -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:45: diff -b -B \$abs_srcdir/expr-testsuite/test.1.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1.base stderr" "EXPRTest.at:45"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:45"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_2
-#AT_START_3
-at_fn_group_banner 3 'EXPRTest.at:46' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k i,j (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "3. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:46: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k i,j -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k i,j -f \"dummy\" || true" "EXPRTest.at:46"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k i,j -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:46: diff -b -B \$abs_srcdir/expr-testsuite/test.1a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stderr" "EXPRTest.at:46"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_3
-#AT_START_4
-at_fn_group_banner 4 'EXPRTest.at:46' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k i,j (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "4. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:46: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k i,j -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k i,j -f \"dummy\" || true" "EXPRTest.at:46"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k i,j -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:46: diff -b -B \$abs_srcdir/expr-testsuite/test.1a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stderr" "EXPRTest.at:46"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:46"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_4
-#AT_START_5
-at_fn_group_banner 5 'EXPRTest.at:47' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "5. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:47: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' -f \"dummy\" || true" "EXPRTest.at:47"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:47: diff -b -B \$abs_srcdir/expr-testsuite/test.1b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stderr" "EXPRTest.at:47"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_5
-#AT_START_6
-at_fn_group_banner 6 'EXPRTest.at:47' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "6. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:47: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' -f \"dummy\" || true" "EXPRTest.at:47"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k 'i,j&i=j' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:47: diff -b -B \$abs_srcdir/expr-testsuite/test.1b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stderr" "EXPRTest.at:47"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:47"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_6
-#AT_START_7
-at_fn_group_banner 7 'EXPRTest.at:48' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "7. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:48: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' -f \"dummy\" || true" "EXPRTest.at:48"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:48: diff -b -B \$abs_srcdir/expr-testsuite/test.1d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stderr" "EXPRTest.at:48"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_7
-#AT_START_8
-at_fn_group_banner 8 'EXPRTest.at:48' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "8. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:48: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' -f \"dummy\" || true" "EXPRTest.at:48"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.1 -k 'i&i=j' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:48: diff -b -B \$abs_srcdir/expr-testsuite/test.1d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.1d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stderr" "EXPRTest.at:48"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.1d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:48"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_8
-#AT_START_9
-at_fn_group_banner 9 'EXPRTest.at:49' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s1 (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "9. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:49: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s1 -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s1 -f \"dummy\" || true" "EXPRTest.at:49"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s1 -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:49: diff -b -B \$abs_srcdir/expr-testsuite/test.2.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2.base stderr" "EXPRTest.at:49"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_9
-#AT_START_10
-at_fn_group_banner 10 'EXPRTest.at:49' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s1 (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "10. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:49: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s1 -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s1 -f \"dummy\" || true" "EXPRTest.at:49"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s1 -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:49: diff -b -B \$abs_srcdir/expr-testsuite/test.2.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2.base stderr" "EXPRTest.at:49"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:49"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_10
-#AT_START_11
-at_fn_group_banner 11 'EXPRTest.at:50' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2 (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "11. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:50: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2 -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2 -f \"dummy\" || true" "EXPRTest.at:50"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2 -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:50: diff -b -B \$abs_srcdir/expr-testsuite/test.2a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stderr" "EXPRTest.at:50"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_11
-#AT_START_12
-at_fn_group_banner 12 'EXPRTest.at:50' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2 (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "12. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:50: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2 -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2 -f \"dummy\" || true" "EXPRTest.at:50"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2 -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:50: diff -b -B \$abs_srcdir/expr-testsuite/test.2a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stderr" "EXPRTest.at:50"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:50"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_12
-#AT_START_13
-at_fn_group_banner 13 'EXPRTest.at:51' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2,s3 (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "13. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:51: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2,s3 -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2,s3 -f \"dummy\" || true" "EXPRTest.at:51"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2,s3 -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:51: diff -b -B \$abs_srcdir/expr-testsuite/test.2b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stderr" "EXPRTest.at:51"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_13
-#AT_START_14
-at_fn_group_banner 14 'EXPRTest.at:51' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2,s3 (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "14. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:51: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2,s3 -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2,s3 -f \"dummy\" || true" "EXPRTest.at:51"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2,s3 -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:51: diff -b -B \$abs_srcdir/expr-testsuite/test.2b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stderr" "EXPRTest.at:51"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:51"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_14
-#AT_START_15
-at_fn_group_banner 15 'EXPRTest.at:52' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "15. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:52: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o -f \"dummy\" || true" "EXPRTest.at:52"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:52: diff -b -B \$abs_srcdir/expr-testsuite/test.2c.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2c.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stderr" "EXPRTest.at:52"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_15
-#AT_START_16
-at_fn_group_banner 16 'EXPRTest.at:52' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "16. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:52: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o -f \"dummy\" || true" "EXPRTest.at:52"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4],s3.o -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:52: diff -b -B \$abs_srcdir/expr-testsuite/test.2c.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2c.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stderr" "EXPRTest.at:52"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2c.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:52"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_16
-#AT_START_17
-at_fn_group_banner 17 'EXPRTest.at:54' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "17. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:54: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m -f \"dummy\" || true" "EXPRTest.at:54"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:54: diff -b -B \$abs_srcdir/expr-testsuite/test.2d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stderr" "EXPRTest.at:54"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_17
-#AT_START_18
-at_fn_group_banner 18 'EXPRTest.at:54' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "18. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:54: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m -f \"dummy\" || true" "EXPRTest.at:54"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:54: diff -b -B \$abs_srcdir/expr-testsuite/test.2d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stderr" "EXPRTest.at:54"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:54"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_18
-#AT_START_19
-at_fn_group_banner 19 'EXPRTest.at:55' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "19. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:55: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l -f \"dummy\" || true" "EXPRTest.at:55"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:55: diff -b -B \$abs_srcdir/expr-testsuite/test.2e.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2e.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stderr" "EXPRTest.at:55"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_19
-#AT_START_20
-at_fn_group_banner 20 'EXPRTest.at:55' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "20. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:55: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l -f \"dummy\" || true" "EXPRTest.at:55"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k s2[2:2:4].m,s2[2:2:4].l -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:55: diff -b -B \$abs_srcdir/expr-testsuite/test.2e.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2e.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stderr" "EXPRTest.at:55"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2e.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:55"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_20
-#AT_START_21
-at_fn_group_banner 21 'EXPRTest.at:57' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "21. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:57: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] -f \"dummy\" || true" "EXPRTest.at:57"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:57: diff -b -B \$abs_srcdir/expr-testsuite/test.2f.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2f.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stderr" "EXPRTest.at:57"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_21
-#AT_START_22
-at_fn_group_banner 22 'EXPRTest.at:57' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "22. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:57: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] -f \"dummy\" || true" "EXPRTest.at:57"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2a -k s2[2:4].m[0:4],s2[2:4].l[0:5] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:57: diff -b -B \$abs_srcdir/expr-testsuite/test.2f.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2f.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stderr" "EXPRTest.at:57"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2f.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:57"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_22
-#AT_START_23
-at_fn_group_banner 23 'EXPRTest.at:58' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.3 -k i[1:10] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "23. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:58: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.3 -k i[1:10] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.3 -k i[1:10] -f \"dummy\" || true" "EXPRTest.at:58"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.3 -k i[1:10] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:58: diff -b -B \$abs_srcdir/expr-testsuite/test.3.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.3.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.3.base stderr" "EXPRTest.at:58"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.3.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_23
-#AT_START_24
-at_fn_group_banner 24 'EXPRTest.at:58' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.3 -k i[1:10] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "24. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:58: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.3 -k i[1:10] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.3 -k i[1:10] -f \"dummy\" || true" "EXPRTest.at:58"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.3 -k i[1:10] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:58: diff -b -B \$abs_srcdir/expr-testsuite/test.3.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.3.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.3.base stderr" "EXPRTest.at:58"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.3.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:58"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_24
-#AT_START_25
-at_fn_group_banner 25 'EXPRTest.at:59' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "25. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:59: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' -f \"dummy\" || true" "EXPRTest.at:59"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.4 -k 's&s=~"^Silly.*"' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:59: diff -b -B \$abs_srcdir/expr-testsuite/test.4.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.4.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.4.base stderr" "EXPRTest.at:59"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.4.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_25
-#AT_START_26
-at_fn_group_banner 26 'EXPRTest.at:59' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "26. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:59: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.4 -k 's&s=~\"^Silly.*\"' -f \"dummy\" || true" "EXPRTest.at:59"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.4 -k 's&s=~"^Silly.*"' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:59: diff -b -B \$abs_srcdir/expr-testsuite/test.4.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.4.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.4.base stderr" "EXPRTest.at:59"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.4.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:59"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_26
-#AT_START_27
-at_fn_group_banner 27 'EXPRTest.at:68' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "27. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:68: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' -f \"dummy\" || true" "EXPRTest.at:68"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~".*: 3"' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:68"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:68: diff -b -B \$abs_srcdir/expr-testsuite/test.ea.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ea.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stderr" "EXPRTest.at:68"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:68"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_27
-#AT_START_28
-at_fn_group_banner 28 'EXPRTest.at:71' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "28. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:71: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 3\"' -f \"dummy\" || true" "EXPRTest.at:71"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~".*: 3"' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:71"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:71: diff -b -B \$abs_srcdir/expr-testsuite/test.ea.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ea.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stderr" "EXPRTest.at:71"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ea.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:71"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_28
-#AT_START_29
-at_fn_group_banner 29 'EXPRTest.at:77' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "29. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:77: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' -f \"dummy\" || true" "EXPRTest.at:77"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~".*: 5"' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:77"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:77: diff -b -B \$abs_srcdir/expr-testsuite/test.eb.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.eb.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stderr" "EXPRTest.at:77"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:77"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_29
-#AT_START_30
-at_fn_group_banner 30 'EXPRTest.at:77' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "30. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:77: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~\".*: 5\"' -f \"dummy\" || true" "EXPRTest.at:77"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.e -k 'names.s&names.s=~".*: 5"' -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:77"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:77: diff -b -B \$abs_srcdir/expr-testsuite/test.eb.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.eb.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stderr" "EXPRTest.at:77"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.eb.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:77"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_30
-#AT_START_31
-at_fn_group_banner 31 'EXPRTest.at:79' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "31. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:79: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] -f \"dummy\" || true" "EXPRTest.at:79"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:79"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:79: diff -b -B \$abs_srcdir/expr-testsuite/test.5.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.base stderr" "EXPRTest.at:79"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:79"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_31
-#AT_START_32
-at_fn_group_banner 32 'EXPRTest.at:79' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "32. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:79: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] -f \"dummy\" || true" "EXPRTest.at:79"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0][0] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:79"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:79: diff -b -B \$abs_srcdir/expr-testsuite/test.5.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.base stderr" "EXPRTest.at:79"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:79"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_32
-#AT_START_33
-at_fn_group_banner 33 'EXPRTest.at:80' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "33. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:80: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] -f \"dummy\" || true" "EXPRTest.at:80"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:80"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:80: diff -b -B \$abs_srcdir/expr-testsuite/test.5a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stderr" "EXPRTest.at:80"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:80"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_33
-#AT_START_34
-at_fn_group_banner 34 'EXPRTest.at:80' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "34. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:80: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] -f \"dummy\" || true" "EXPRTest.at:80"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g[0:2:4][0:2:4][0:2:4] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:80"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:80: diff -b -B \$abs_srcdir/expr-testsuite/test.5a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stderr" "EXPRTest.at:80"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:80"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_34
-#AT_START_35
-at_fn_group_banner 35 'EXPRTest.at:81' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "35. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:81: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k i -f \"dummy\" || true" "EXPRTest.at:81"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k i -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:81"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:81: diff -b -B \$abs_srcdir/expr-testsuite/test.6.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.base stderr" "EXPRTest.at:81"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:81"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_35
-#AT_START_36
-at_fn_group_banner 36 'EXPRTest.at:81' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "36. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:81: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k i -f \"dummy\" || true" "EXPRTest.at:81"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k i -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:81"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:81: diff -b -B \$abs_srcdir/expr-testsuite/test.6.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.base stderr" "EXPRTest.at:81"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:81"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_36
-#AT_START_37
-at_fn_group_banner 37 'EXPRTest.at:82' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "37. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:82: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] -f \"dummy\" || true" "EXPRTest.at:82"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:82"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:82: diff -b -B \$abs_srcdir/expr-testsuite/test.6a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stderr" "EXPRTest.at:82"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:82"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_37
-#AT_START_38
-at_fn_group_banner 38 'EXPRTest.at:82' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "38. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:82: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] -f \"dummy\" || true" "EXPRTest.at:82"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k i[1:2][2:4] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:82"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:82: diff -b -B \$abs_srcdir/expr-testsuite/test.6a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stderr" "EXPRTest.at:82"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:82"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_38
-#AT_START_39
-at_fn_group_banner 39 'EXPRTest.at:83' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "39. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:83: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] -f \"dummy\" || true" "EXPRTest.at:83"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:83"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:83: diff -b -B \$abs_srcdir/expr-testsuite/test.5b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stderr" "EXPRTest.at:83"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:83"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_39
-#AT_START_40
-at_fn_group_banner 40 'EXPRTest.at:83' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "40. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:83: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] -f \"dummy\" || true" "EXPRTest.at:83"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g.val[0:1][0:1][0:1] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:83"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:83: diff -b -B \$abs_srcdir/expr-testsuite/test.5b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stderr" "EXPRTest.at:83"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:83"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_40
-#AT_START_41
-at_fn_group_banner 41 'EXPRTest.at:84' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.length (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "41. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:84: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.length -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g.length -f \"dummy\" || true" "EXPRTest.at:84"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g.length -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:84"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:84: diff -b -B \$abs_srcdir/expr-testsuite/test.5c.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5c.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stderr" "EXPRTest.at:84"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:84"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_41
-#AT_START_42
-at_fn_group_banner 42 'EXPRTest.at:84' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.length (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "42. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:84: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.length -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g.length -f \"dummy\" || true" "EXPRTest.at:84"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g.length -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:84"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:84: diff -b -B \$abs_srcdir/expr-testsuite/test.5c.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5c.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stderr" "EXPRTest.at:84"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5c.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:84"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_42
-#AT_START_43
-at_fn_group_banner 43 'EXPRTest.at:85' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.length,g.width (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "43. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:85: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g.length,g.width -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g.length,g.width -f \"dummy\" || true" "EXPRTest.at:85"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g.length,g.width -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:85"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:85: diff -b -B \$abs_srcdir/expr-testsuite/test.5d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stderr" "EXPRTest.at:85"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:85"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_43
-#AT_START_44
-at_fn_group_banner 44 'EXPRTest.at:85' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.length,g.width (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "44. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:85: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g.length,g.width -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g.length,g.width -f \"dummy\" || true" "EXPRTest.at:85"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g.length,g.width -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:85"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:85: diff -b -B \$abs_srcdir/expr-testsuite/test.5d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stderr" "EXPRTest.at:85"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:85"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_44
-#AT_START_45
-at_fn_group_banner 45 'EXPRTest.at:86' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k j,o (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "45. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:86: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.2 -k j,o -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k j,o -f \"dummy\" || true" "EXPRTest.at:86"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.2 -k j,o -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:86"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:86: diff -b -B \$abs_srcdir/expr-testsuite/test.2g.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2g.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stderr" "EXPRTest.at:86"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:86"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_45
-#AT_START_46
-at_fn_group_banner 46 'EXPRTest.at:86' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k j,o (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "46. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:86: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.2 -k j,o -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k j,o -f \"dummy\" || true" "EXPRTest.at:86"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.2 -k j,o -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:86"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:86: diff -b -B \$abs_srcdir/expr-testsuite/test.2g.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.2g.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stderr" "EXPRTest.at:86"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.2g.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:86"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_46
-#AT_START_47
-at_fn_group_banner 47 'EXPRTest.at:87' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "47. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:87: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" -f \"dummy\" || true" "EXPRTest.at:87"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.8 -k "data%23i[0:2:9][0:2]" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:87"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:87: diff -b -B \$abs_srcdir/expr-testsuite/test.8.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.8.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.8.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8.base stderr" "EXPRTest.at:87"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.8.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:87"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_47
-#AT_START_48
-at_fn_group_banner 48 'EXPRTest.at:87' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "48. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:87: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.8 -k \"data%23i[0:2:9][0:2]\" -f \"dummy\" || true" "EXPRTest.at:87"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.8 -k "data%23i[0:2:9][0:2]" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:87"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:87: diff -b -B \$abs_srcdir/expr-testsuite/test.8.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.8.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.8.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8.base stderr" "EXPRTest.at:87"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.8.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:87"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_48
-#AT_START_49
-at_fn_group_banner 49 'EXPRTest.at:88' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.7 -k x,y,f (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "49. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:88: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.7 -k x,y,f -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.7 -k x,y,f -f \"dummy\" || true" "EXPRTest.at:88"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.7 -k x,y,f -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:88"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:88: diff -b -B \$abs_srcdir/expr-testsuite/test.7.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.7.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.7.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.7.base stderr" "EXPRTest.at:88"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.7.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.7.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:88"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_49
-#AT_START_50
-at_fn_group_banner 50 'EXPRTest.at:88' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.7 -k x,y,f (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "50. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:88: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.7 -k x,y,f -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.7 -k x,y,f -f \"dummy\" || true" "EXPRTest.at:88"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.7 -k x,y,f -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:88"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:88: diff -b -B \$abs_srcdir/expr-testsuite/test.7.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.7.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.7.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.7.base stderr" "EXPRTest.at:88"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.7.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.7.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:88"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_50
-#AT_START_51
-at_fn_group_banner 51 'EXPRTest.at:89' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "51. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:89: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" -f \"dummy\" || true" "EXPRTest.at:89"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.8 -k "x%23y,y" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:89"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:89: diff -b -B \$abs_srcdir/expr-testsuite/test.8a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.8a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stderr" "EXPRTest.at:89"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:89"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_51
-#AT_START_52
-at_fn_group_banner 52 'EXPRTest.at:89' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "52. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:89: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.8 -k \"x%23y,y\" -f \"dummy\" || true" "EXPRTest.at:89"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.8 -k "x%23y,y" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:89"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:89: diff -b -B \$abs_srcdir/expr-testsuite/test.8a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.8a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stderr" "EXPRTest.at:89"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:89"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_52
-#AT_START_53
-at_fn_group_banner 53 'EXPRTest.at:90' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "53. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:90: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" -f \"dummy\" || true" "EXPRTest.at:90"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.8 -k "data%20name,y" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:90"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:90: diff -b -B \$abs_srcdir/expr-testsuite/test.8b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.8b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stderr" "EXPRTest.at:90"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:90"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_53
-#AT_START_54
-at_fn_group_banner 54 'EXPRTest.at:90' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "54. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:90: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.8 -k \"data%20name,y\" -f \"dummy\" || true" "EXPRTest.at:90"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.8 -k "data%20name,y" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:90"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:90: diff -b -B \$abs_srcdir/expr-testsuite/test.8b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.8b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stderr" "EXPRTest.at:90"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.8b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:90"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_54
-#AT_START_55
-at_fn_group_banner 55 'EXPRTest.at:91' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "55. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:91: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" -f \"dummy\" || true" "EXPRTest.at:91"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.9 -k "Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:91"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:91: diff -b -B \$abs_srcdir/expr-testsuite/test.9.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.9.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.9.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.9.base stderr" "EXPRTest.at:91"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.9.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.9.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:91"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_55
-#AT_START_56
-at_fn_group_banner 56 'EXPRTest.at:91' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "56. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:91: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.9 -k \"Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]\" -f \"dummy\" || true" "EXPRTest.at:91"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.9 -k "Data-Set-2.fakeDim0[0:3],Data-Set-2.fakeDim1[0:3]" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:91"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:91: diff -b -B \$abs_srcdir/expr-testsuite/test.9.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.9.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.9.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.9.base stderr" "EXPRTest.at:91"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.9.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.9.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:91"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_56
-#AT_START_57
-at_fn_group_banner 57 'EXPRTest.at:92' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "57. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:92: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] -f \"dummy\" || true" "EXPRTest.at:92"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:92"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:92: diff -b -B \$abs_srcdir/expr-testsuite/test.5e.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5e.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stderr" "EXPRTest.at:92"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:92"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_57
-#AT_START_58
-at_fn_group_banner 58 'EXPRTest.at:92' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "58. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:92: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] -f \"dummy\" || true" "EXPRTest.at:92"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k g[1:4:9] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:92"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:92: diff -b -B \$abs_srcdir/expr-testsuite/test.5e.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5e.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stderr" "EXPRTest.at:92"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5e.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:92"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_58
-#AT_START_59
-at_fn_group_banner 59 'EXPRTest.at:93' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "59. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:93: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] -f \"dummy\" || true" "EXPRTest.at:93"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:93"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:93: diff -b -B \$abs_srcdir/expr-testsuite/test.6b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stderr" "EXPRTest.at:93"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:93"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_59
-#AT_START_60
-at_fn_group_banner 60 'EXPRTest.at:93' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "60. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:93: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] -f \"dummy\" || true" "EXPRTest.at:93"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k i[1:4:9] -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:93"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:93: diff -b -B \$abs_srcdir/expr-testsuite/test.6b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stderr" "EXPRTest.at:93"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:93"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_60
-#AT_START_61
-at_fn_group_banner 61 'EXPRTest.at:97' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "61. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:97: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) -f \"dummy\" || true" "EXPRTest.at:97"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k scale\(i,2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:97"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:97: diff -b -B \$abs_srcdir/expr-testsuite/test.6.func1.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6.func1.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stderr" "EXPRTest.at:97"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:97"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_61
-#AT_START_62
-at_fn_group_banner 62 'EXPRTest.at:97' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "62. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:97: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k scale\\(i,2\\) -f \"dummy\" || true" "EXPRTest.at:97"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k scale\(i,2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:97"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:97: diff -b -B \$abs_srcdir/expr-testsuite/test.6.func1.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6.func1.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stderr" "EXPRTest.at:97"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func1.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:97"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_62
-#AT_START_63
-at_fn_group_banner 63 'EXPRTest.at:98' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "63. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:98: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) -f \"dummy\" || true" "EXPRTest.at:98"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.6 -k scale\(i[2:4][3:6],2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:98"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:98: diff -b -B \$abs_srcdir/expr-testsuite/test.6.func2.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6.func2.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stderr" "EXPRTest.at:98"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:98"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_63
-#AT_START_64
-at_fn_group_banner 64 'EXPRTest.at:98' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "64. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:98: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k scale\\(i[2:4][3:6],2\\) -f \"dummy\" || true" "EXPRTest.at:98"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.6 -k scale\(i[2:4][3:6],2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:98"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:98: diff -b -B \$abs_srcdir/expr-testsuite/test.6.func2.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.6.func2.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stderr" "EXPRTest.at:98"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.6.func2.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:98"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_64
-#AT_START_65
-at_fn_group_banner 65 'EXPRTest.at:100' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "65. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:100: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) -f \"dummy\" || true" "EXPRTest.at:100"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k scale\(i[3],2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:100"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:100: diff -b -B \$abs_srcdir/expr-testsuite/test.5.func3.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5.func3.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stderr" "EXPRTest.at:100"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:100"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_65
-#AT_START_66
-at_fn_group_banner 66 'EXPRTest.at:100' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "66. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:100: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k scale\\(i[3],2\\) -f \"dummy\" || true" "EXPRTest.at:100"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k scale\(i[3],2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:100"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:100: diff -b -B \$abs_srcdir/expr-testsuite/test.5.func3.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5.func3.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stderr" "EXPRTest.at:100"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func3.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:100"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_66
-#AT_START_67
-at_fn_group_banner 67 'EXPRTest.at:102' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "67. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:102: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) -f \"dummy\" || true" "EXPRTest.at:102"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.5 -k scale\(j,2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:102"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:102: diff -b -B \$abs_srcdir/expr-testsuite/test.5.func4.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5.func4.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stderr" "EXPRTest.at:102"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:102"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_67
-#AT_START_68
-at_fn_group_banner 68 'EXPRTest.at:102' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "68. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:102: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k scale\\(j,2\\) -f \"dummy\" || true" "EXPRTest.at:102"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.5 -k scale\(j,2\) -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:102"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:102: diff -b -B \$abs_srcdir/expr-testsuite/test.5.func4.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.5.func4.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stderr" "EXPRTest.at:102"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.5.func4.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:102"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_68
-#AT_START_69
-at_fn_group_banner 69 'EXPRTest.at:104' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "69. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:104: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k \"\" -b -f \"dummy\" || true" "EXPRTest.at:104"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k "" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:104"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:104: diff -b -B \$abs_srcdir/expr-testsuite/test.a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.a.base stderr" "EXPRTest.at:104"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:104"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_69
-#AT_START_70
-at_fn_group_banner 70 'EXPRTest.at:104' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "70. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:104: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k \"\" -b -f \"dummy\" || true" "EXPRTest.at:104"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k "" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:104"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:104: diff -b -B \$abs_srcdir/expr-testsuite/test.a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.a.base stderr" "EXPRTest.at:104"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:104"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_70
-#AT_START_71
-at_fn_group_banner 71 'EXPRTest.at:105' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "71. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:105: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:105"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k "&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:105"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:105: diff -b -B \$abs_srcdir/expr-testsuite/test.aa.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.aa.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stderr" "EXPRTest.at:105"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:105"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_71
-#AT_START_72
-at_fn_group_banner 72 'EXPRTest.at:105' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "72. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:105: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k \"&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:105"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k "&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:105"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:105: diff -b -B \$abs_srcdir/expr-testsuite/test.aa.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.aa.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stderr" "EXPRTest.at:105"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.aa.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:105"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_72
-#AT_START_73
-at_fn_group_banner 73 'EXPRTest.at:106' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "73. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:106: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b -f \"dummy\" || true" "EXPRTest.at:106"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k "j&i>2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:106"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:106: diff -b -B \$abs_srcdir/expr-testsuite/test.ab.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ab.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stderr" "EXPRTest.at:106"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:106"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_73
-#AT_START_74
-at_fn_group_banner 74 'EXPRTest.at:106' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "74. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:106: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k \"j&i>2000\" -b -f \"dummy\" || true" "EXPRTest.at:106"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k "j&i>2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:106"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:106: diff -b -B \$abs_srcdir/expr-testsuite/test.ab.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ab.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stderr" "EXPRTest.at:106"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ab.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:106"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_74
-#AT_START_75
-at_fn_group_banner 75 'EXPRTest.at:107' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "75. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:107: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b -f \"dummy\" || true" "EXPRTest.at:107"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.a -k "i,j&i<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:107"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:107: diff -b -B \$abs_srcdir/expr-testsuite/test.ac.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ac.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stderr" "EXPRTest.at:107"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:107"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_75
-#AT_START_76
-at_fn_group_banner 76 'EXPRTest.at:107' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "76. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:107: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k \"i,j&i<0\" -b -f \"dummy\" || true" "EXPRTest.at:107"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.a -k "i,j&i<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:107"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:107: diff -b -B \$abs_srcdir/expr-testsuite/test.ac.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ac.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stderr" "EXPRTest.at:107"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ac.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:107"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_76
-#AT_START_77
-at_fn_group_banner 77 'EXPRTest.at:108' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "77. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:108: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k \"\" -b -f \"dummy\" || true" "EXPRTest.at:108"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k "" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:108"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:108: diff -b -B \$abs_srcdir/expr-testsuite/test.b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.b.base stderr" "EXPRTest.at:108"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:108"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_77
-#AT_START_78
-at_fn_group_banner 78 'EXPRTest.at:108' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "78. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:108: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k \"\" -b -f \"dummy\" || true" "EXPRTest.at:108"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k "" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:108"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:108: diff -b -B \$abs_srcdir/expr-testsuite/test.b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.b.base stderr" "EXPRTest.at:108"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:108"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_78
-#AT_START_79
-at_fn_group_banner 79 'EXPRTest.at:109' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "79. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:109: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b -f \"dummy\" || true" "EXPRTest.at:109"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k "i,f" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:109"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:109: diff -b -B \$abs_srcdir/expr-testsuite/test.ba.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ba.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stderr" "EXPRTest.at:109"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:109"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_79
-#AT_START_80
-at_fn_group_banner 80 'EXPRTest.at:109' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "80. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:109: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k \"i,f\" -b -f \"dummy\" || true" "EXPRTest.at:109"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k "i,f" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:109"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:109: diff -b -B \$abs_srcdir/expr-testsuite/test.ba.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.ba.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stderr" "EXPRTest.at:109"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.ba.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:109"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_80
-#AT_START_81
-at_fn_group_banner 81 'EXPRTest.at:110' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "81. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:110: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:110"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k "i,f&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:110"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:110: diff -b -B \$abs_srcdir/expr-testsuite/test.bb.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.bb.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stderr" "EXPRTest.at:110"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:110"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_81
-#AT_START_82
-at_fn_group_banner 82 'EXPRTest.at:110' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "82. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:110: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k \"i,f&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:110"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k "i,f&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:110"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:110: diff -b -B \$abs_srcdir/expr-testsuite/test.bb.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.bb.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stderr" "EXPRTest.at:110"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bb.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:110"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_82
-#AT_START_83
-at_fn_group_banner 83 'EXPRTest.at:111' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "83. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:111: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b -f \"dummy\" || true" "EXPRTest.at:111"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k "i,f&f<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:111"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:111: diff -b -B \$abs_srcdir/expr-testsuite/test.bc.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.bc.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stderr" "EXPRTest.at:111"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:111"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_83
-#AT_START_84
-at_fn_group_banner 84 'EXPRTest.at:111' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "84. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:111: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k \"i,f&f<0\" -b -f \"dummy\" || true" "EXPRTest.at:111"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k "i,f&f<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:111"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:111: diff -b -B \$abs_srcdir/expr-testsuite/test.bc.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.bc.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stderr" "EXPRTest.at:111"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bc.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:111"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_84
-#AT_START_85
-at_fn_group_banner 85 'EXPRTest.at:112' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "85. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:112: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:112"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k "i,j&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:112"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:112: diff -b -B \$abs_srcdir/expr-testsuite/test.bd.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.bd.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stderr" "EXPRTest.at:112"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:112"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_85
-#AT_START_86
-at_fn_group_banner 86 'EXPRTest.at:112' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "86. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:112: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k \"i,j&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:112"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k "i,j&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:112"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:112: diff -b -B \$abs_srcdir/expr-testsuite/test.bd.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.bd.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stderr" "EXPRTest.at:112"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.bd.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:112"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_86
-#AT_START_87
-at_fn_group_banner 87 'EXPRTest.at:113' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "87. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:113: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b -f \"dummy\" || true" "EXPRTest.at:113"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.b -k "&i<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:113"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:113: diff -b -B \$abs_srcdir/expr-testsuite/test.be.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.be.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.be.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.be.base stderr" "EXPRTest.at:113"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.be.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.be.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:113"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_87
-#AT_START_88
-at_fn_group_banner 88 'EXPRTest.at:113' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "88. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:113: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k \"&i<0\" -b -f \"dummy\" || true" "EXPRTest.at:113"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.b -k "&i<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:113"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:113: diff -b -B \$abs_srcdir/expr-testsuite/test.be.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.be.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.be.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.be.base stderr" "EXPRTest.at:113"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.be.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.be.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:113"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_88
-#AT_START_89
-at_fn_group_banner 89 'EXPRTest.at:114' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "89. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:114: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"\" -b -f \"dummy\" || true" "EXPRTest.at:114"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:114"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:114: diff -b -B \$abs_srcdir/expr-testsuite/test.d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.d.base stderr" "EXPRTest.at:114"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:114"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_89
-#AT_START_90
-at_fn_group_banner 90 'EXPRTest.at:114' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "90. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:114: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"\" -b -f \"dummy\" || true" "EXPRTest.at:114"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:114"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:114: diff -b -B \$abs_srcdir/expr-testsuite/test.d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.d.base stderr" "EXPRTest.at:114"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:114"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_90
-#AT_START_91
-at_fn_group_banner 91 'EXPRTest.at:115' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "91. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:115: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b -f \"dummy\" || true" "EXPRTest.at:115"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i,f,a" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:115"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:115: diff -b -B \$abs_srcdir/expr-testsuite/test.da.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.da.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.da.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.da.base stderr" "EXPRTest.at:115"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.da.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.da.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:115"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_91
-#AT_START_92
-at_fn_group_banner 92 'EXPRTest.at:115' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "92. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:115: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i,f,a\" -b -f \"dummy\" || true" "EXPRTest.at:115"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i,f,a" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:115"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:115: diff -b -B \$abs_srcdir/expr-testsuite/test.da.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.da.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.da.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.da.base stderr" "EXPRTest.at:115"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.da.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.da.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:115"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_92
-#AT_START_93
-at_fn_group_banner 93 'EXPRTest.at:116' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "93. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:116: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:116"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i,f,a&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:116"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:116: diff -b -B \$abs_srcdir/expr-testsuite/test.db.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.db.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.db.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.db.base stderr" "EXPRTest.at:116"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.db.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.db.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:116"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_93
-#AT_START_94
-at_fn_group_banner 94 'EXPRTest.at:116' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "94. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:116: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:116"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i,f,a&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:116"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:116: diff -b -B \$abs_srcdir/expr-testsuite/test.db.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.db.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.db.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.db.base stderr" "EXPRTest.at:116"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.db.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.db.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:116"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_94
-#AT_START_95
-at_fn_group_banner 95 'EXPRTest.at:117' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "95. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:117: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b -f \"dummy\" || true" "EXPRTest.at:117"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i,f,a&f<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:117"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:117: diff -b -B \$abs_srcdir/expr-testsuite/test.dc.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.dc.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stderr" "EXPRTest.at:117"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:117"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_95
-#AT_START_96
-at_fn_group_banner 96 'EXPRTest.at:117' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "96. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:117: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&f<0\" -b -f \"dummy\" || true" "EXPRTest.at:117"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i,f,a&f<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:117"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:117: diff -b -B \$abs_srcdir/expr-testsuite/test.dc.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.dc.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stderr" "EXPRTest.at:117"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dc.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:117"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_96
-#AT_START_97
-at_fn_group_banner 97 'EXPRTest.at:118' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "97. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:118: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b -f \"dummy\" || true" "EXPRTest.at:118"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i,f,a&a<10" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:118"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:118: diff -b -B \$abs_srcdir/expr-testsuite/test.dd.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.dd.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stderr" "EXPRTest.at:118"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:118"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_97
-#AT_START_98
-at_fn_group_banner 98 'EXPRTest.at:118' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "98. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:118: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&a<10\" -b -f \"dummy\" || true" "EXPRTest.at:118"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i,f,a&a<10" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:118"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:118: diff -b -B \$abs_srcdir/expr-testsuite/test.dd.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.dd.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stderr" "EXPRTest.at:118"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dd.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:118"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_98
-#AT_START_99
-at_fn_group_banner 99 'EXPRTest.at:119' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "99. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:119: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:119"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i,f&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:119"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:119: diff -b -B \$abs_srcdir/expr-testsuite/test.de.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.de.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.de.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.de.base stderr" "EXPRTest.at:119"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.de.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.de.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:119"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_99
-#AT_START_100
-at_fn_group_banner 100 'EXPRTest.at:119' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "100. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:119: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i,f&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:119"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i,f&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:119"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:119: diff -b -B \$abs_srcdir/expr-testsuite/test.de.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.de.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.de.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.de.base stderr" "EXPRTest.at:119"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.de.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.de.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:119"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_100
-#AT_START_101
-at_fn_group_banner 101 'EXPRTest.at:120' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "101. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:120: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:120"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:120"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:120: diff -b -B \$abs_srcdir/expr-testsuite/test.df.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.df.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.df.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.df.base stderr" "EXPRTest.at:120"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.df.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.df.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:120"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_101
-#AT_START_102
-at_fn_group_banner 102 'EXPRTest.at:120' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "102. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:120: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i&i<2000\" -b -f \"dummy\" || true" "EXPRTest.at:120"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i&i<2000" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:120"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:120: diff -b -B \$abs_srcdir/expr-testsuite/test.df.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.df.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.df.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.df.base stderr" "EXPRTest.at:120"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.df.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.df.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:120"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_102
-#AT_START_103
-at_fn_group_banner 103 'EXPRTest.at:121' \
-  "expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "103. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:121: \$abs_builddir/expr-test -w \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b -f \"dummy\" || true" "EXPRTest.at:121"
-( $at_check_trace; $abs_builddir/expr-test -w $abs_srcdir/expr-testsuite/test.d -k "i,f,a&i<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:121"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:121: diff -b -B \$abs_srcdir/expr-testsuite/test.dg.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.dg.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stderr" "EXPRTest.at:121"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:121"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_103
-#AT_START_104
-at_fn_group_banner 104 'EXPRTest.at:121' \
-  "expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "104. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:121: \$abs_builddir/expr-test -W \$abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k \"i,f,a&i<0\" -b -f \"dummy\" || true" "EXPRTest.at:121"
-( $at_check_trace; $abs_builddir/expr-test -W $abs_srcdir/expr-testsuite/test.d -k "i,f,a&i<0" -b -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:121"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:121: diff -b -B \$abs_srcdir/expr-testsuite/test.dg.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.dg.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stderr" "EXPRTest.at:121"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.dg.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:121"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_104
-#AT_START_105
-at_fn_group_banner 105 'EXPRTest.at:123' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k i (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "105. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:123: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k i -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k i -f \"dummy\" || true" "EXPRTest.at:123"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k i -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:123"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:123: diff -b -B \$abs_srcdir/expr-testsuite/data.61a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stderr" "EXPRTest.at:123"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:123"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_105
-#AT_START_106
-at_fn_group_banner 106 'EXPRTest.at:123' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k i (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "106. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:123: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k i -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k i -f \"dummy\" || true" "EXPRTest.at:123"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k i -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:123"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:123: diff -b -B \$abs_srcdir/expr-testsuite/data.61a.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61a.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stderr" "EXPRTest.at:123"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61a.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:123"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_106
-#AT_START_107
-at_fn_group_banner 107 'EXPRTest.at:124' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "107. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:124: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  -f \"dummy\" || true" "EXPRTest.at:124"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:124"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:124: diff -b -B \$abs_srcdir/expr-testsuite/data.61b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stderr" "EXPRTest.at:124"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:124"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_107
-#AT_START_108
-at_fn_group_banner 108 'EXPRTest.at:124' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "108. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:124: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  -f \"dummy\" || true" "EXPRTest.at:124"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k  i[0:2][0:2]  -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:124"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:124: diff -b -B \$abs_srcdir/expr-testsuite/data.61b.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61b.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stderr" "EXPRTest.at:124"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61b.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:124"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_108
-#AT_START_109
-at_fn_group_banner 109 'EXPRTest.at:125' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "109. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:125: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  -f \"dummy\" || true" "EXPRTest.at:125"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:125"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:125: diff -b -B \$abs_srcdir/expr-testsuite/data.61c.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61c.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stderr" "EXPRTest.at:125"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:125"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_109
-#AT_START_110
-at_fn_group_banner 110 'EXPRTest.at:125' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "110. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:125: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  -f \"dummy\" || true" "EXPRTest.at:125"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][0:2]  -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:125"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:125: diff -b -B \$abs_srcdir/expr-testsuite/data.61c.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61c.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stderr" "EXPRTest.at:125"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61c.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:125"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_110
-#AT_START_111
-at_fn_group_banner 111 'EXPRTest.at:126' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "111. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:126: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  -f \"dummy\" || true" "EXPRTest.at:126"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:126"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:126: diff -b -B \$abs_srcdir/expr-testsuite/data.61d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stderr" "EXPRTest.at:126"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:126"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_111
-#AT_START_112
-at_fn_group_banner 112 'EXPRTest.at:126' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "112. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:126: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  -f \"dummy\" || true" "EXPRTest.at:126"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.61 -k  i[1:2][1:2]  -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:126"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:126: diff -b -B \$abs_srcdir/expr-testsuite/data.61d.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.61d.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stderr" "EXPRTest.at:126"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.61d.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:126"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_112
-#AT_START_113
-at_fn_group_banner 113 'EXPRTest.at:127' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.c0 -k SST (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "113. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:127: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.c0 -k SST -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.c0 -k SST -f \"dummy\" || true" "EXPRTest.at:127"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.c0 -k SST -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:127"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:127: diff -b -B \$abs_srcdir/expr-testsuite/data.z1.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.z1.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stderr" "EXPRTest.at:127"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:127"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_113
-#AT_START_114
-at_fn_group_banner 114 'EXPRTest.at:127' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.c0 -k SST (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "114. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:127: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.c0 -k SST -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.c0 -k SST -f \"dummy\" || true" "EXPRTest.at:127"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.c0 -k SST -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:127"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:127: diff -b -B \$abs_srcdir/expr-testsuite/data.z1.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/data.z1.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stderr" "EXPRTest.at:127"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stdout || diff -b -B $abs_srcdir/expr-testsuite/data.z1.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:127"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_114
-#AT_START_115
-at_fn_group_banner 115 'EXPRTest.at:129' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.f -k \"\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "115. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:129: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.f -k \"\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.f -k \"\" -f \"dummy\" || true" "EXPRTest.at:129"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.f -k "" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:129"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:129: diff -b -B \$abs_srcdir/expr-testsuite/test.fa.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.fa.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stderr" "EXPRTest.at:129"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:129"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_115
-#AT_START_116
-at_fn_group_banner 116 'EXPRTest.at:129' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.f -k \"\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "116. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:129: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.f -k \"\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.f -k \"\" -f \"dummy\" || true" "EXPRTest.at:129"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.f -k "" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:129"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:129: diff -b -B \$abs_srcdir/expr-testsuite/test.fa.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.fa.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stderr" "EXPRTest.at:129"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fa.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:129"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_116
-#AT_START_117
-at_fn_group_banner 117 'EXPRTest.at:130' \
-  "expr-test -b -w \$abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "117. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:130: \$abs_builddir/expr-test -b -w \$abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" -f \"dummy\" || true" "EXPRTest.at:130"
-( $at_check_trace; $abs_builddir/expr-test -b -w $abs_srcdir/expr-testsuite/test.f -k "&i<3000" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:130"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:130: diff -b -B \$abs_srcdir/expr-testsuite/test.fb.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.fb.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stderr" "EXPRTest.at:130"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:130"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_117
-#AT_START_118
-at_fn_group_banner 118 'EXPRTest.at:130' \
-  "expr-test -b -W \$abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "118. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:130: \$abs_builddir/expr-test -b -W \$abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" -f \"dummy\" || true"
-at_fn_check_prepare_dynamic "$abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.f -k \"&i<3000\" -f \"dummy\" || true" "EXPRTest.at:130"
-( $at_check_trace; $abs_builddir/expr-test -b -W $abs_srcdir/expr-testsuite/test.f -k "&i<3000" -f "dummy" || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:130"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/EXPRTest.at:130: diff -b -B \$abs_srcdir/expr-testsuite/test.fb.base stdout || diff -b -B \$abs_srcdir/expr-testsuite/test.fb.base stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stderr" "EXPRTest.at:130"
-( $at_check_trace; diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stdout || diff -b -B $abs_srcdir/expr-testsuite/test.fb.base stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/EXPRTest.at:130"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_118
diff --git a/tests/EXPRTest.at b/tests/EXPRTest.at
index c5264b2..a94e143 100644
--- a/tests/EXPRTest.at
+++ b/tests/EXPRTest.at
@@ -5,6 +5,11 @@ AT_INIT([expr-test])
 
 # AT_TESTED([expr-test])
 
+AT_ARG_OPTION_ARG([baselines],
+    [--baselines=yes|no   Build the baseline file for parser test 'arg'],
+    [echo "baselines set to $at_arg_baselines";
+     baselines=$at_arg_baselines],[baselines=])
+
 # Usage: _EXPR_TEST(<flags>, <dds>, <constraint>, <baseline file>, <xfail?>)
 
 m4_define([_EXPR_TEST], [
@@ -19,13 +24,20 @@ m4_define([_EXPR_TEST], [
     # successful runs are sent to stdout while the errors are sent to
     # stderr.
 
-    AT_CHECK([$abs_builddir/expr-test $1 $2 -k $3 -f "dummy" || true], [], [stdout], [stderr])
-    AT_CHECK([diff -b -B $4 stdout || diff -b -B $4 stderr], [], [ignore],[],[])
-    AT_XFAIL_IF([test "$5" = "xfail"])
+    AS_IF([test -n "$baselines" -a x$baselines = xyes],
+        [
+        AT_CHECK([$abs_builddir/expr-test $1 $2 -k $3 -f "dummy" || true], [0], [stdout], [stderr])
+        AT_CHECK([mv stdout $4.tmp])
+        ],
+        [
+        AT_CHECK([$abs_builddir/expr-test $1 $2 -k $3 -f "dummy" || true], [0], [stdout], [stderr])
+        AT_CHECK([diff -b -B $4 stdout || diff -b -B $4 stderr], [0], [ignore])
+        AT_XFAIL_IF([test "$5" = "xfail"])
+        ])
+    
     AT_CLEANUP
 ])
 
-
 m4_define([EXPR_RESPONSE_P], [
     # AT_BANNER([EXPR response for $1, $2, $4.])
     # Test the serialize/deserialize methods
@@ -128,3 +140,16 @@ EXPR_RESPONSE_B([test.c0], [SST], [data.z1], [pass])
 
 EXPR_RESPONSE_B([test.f], [""], [test.fa], [pass])
 EXPR_RESPONSE_B([test.f], ["&i<3000"], [test.fb], [pass])
+
+# tests for zero-length arrays. jhrg 1/28/16
+
+EXPR_RESPONSE_B([test.21.dds], [""], [data.21], [pass])
+EXPR_RESPONSE_B([test.22.dds], [""], [data.22], [pass])
+EXPR_RESPONSE_B([test.23.dds], [""], [data.23], [pass])
+EXPR_RESPONSE_B([test.24.dds], [""], [data.24], [pass])
+
+# Empty Structures. jhrg 1/29/16
+
+EXPR_RESPONSE_B([test.25.dds], [""], [data.25], [pass])
+EXPR_RESPONSE_B([test.26.dds], [""], [data.26], [pass])
+
diff --git a/tests/Makefile.in b/tests/Makefile.in
deleted file mode 100644
index 5375942..0000000
--- a/tests/Makefile.in
+++ /dev/null
@@ -1,1736 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Tests
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at COMPILER_IS_GCC_TRUE@am__append_1 = -Wall -W -Wcast-align
- at BUILD_DEVELOPER_TRUE@am__append_2 = $(CXXFLAGS_DEBUG)
-check_PROGRAMS = das-test$(EXEEXT) dds-test$(EXEEXT) \
-	expr-test$(EXEEXT) $(am__EXEEXT_1)
- at DAP4_DEFINED_TRUE@am__append_3 = dmr-test
-subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/atlocal.in $(top_srcdir)/conf/depcomp \
-	$(testheaders_HEADERS) README
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h \
-	$(top_builddir)/dods-datatypes-config.h \
-	$(top_builddir)/xdr-datatypes-config.h
-CONFIG_CLEAN_FILES = atlocal
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(testheadersdir)"
-LIBRARIES = $(lib_LIBRARIES)
-AM_V_AR = $(am__v_AR_ at AM_V@)
-am__v_AR_ = $(am__v_AR_ at AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libtest_types_a_AR = $(AR) $(ARFLAGS)
-libtest_types_a_LIBADD =
-am__objects_1 = libtest_types_a-TestByte.$(OBJEXT) \
-	libtest_types_a-TestInt32.$(OBJEXT) \
-	libtest_types_a-TestFloat64.$(OBJEXT) \
-	libtest_types_a-TestStr.$(OBJEXT) \
-	libtest_types_a-TestUrl.$(OBJEXT) \
-	libtest_types_a-TestArray.$(OBJEXT) \
-	libtest_types_a-TestStructure.$(OBJEXT) \
-	libtest_types_a-TestSequence.$(OBJEXT) \
-	libtest_types_a-TestGrid.$(OBJEXT) \
-	libtest_types_a-TestUInt32.$(OBJEXT) \
-	libtest_types_a-TestInt16.$(OBJEXT) \
-	libtest_types_a-TestUInt16.$(OBJEXT) \
-	libtest_types_a-TestFloat32.$(OBJEXT) \
-	libtest_types_a-TestTypeFactory.$(OBJEXT) \
-	libtest_types_a-D4TestTypeFactory.$(OBJEXT) \
-	libtest_types_a-TestD4Group.$(OBJEXT) \
-	libtest_types_a-TestInt8.$(OBJEXT) \
-	libtest_types_a-TestInt64.$(OBJEXT) \
-	libtest_types_a-TestUInt64.$(OBJEXT) \
-	libtest_types_a-TestD4Sequence.$(OBJEXT) \
-	libtest_types_a-TestD4Enum.$(OBJEXT) \
-	libtest_types_a-TestD4Opaque.$(OBJEXT) \
-	libtest_types_a-TestFunction.$(OBJEXT) \
-	libtest_types_a-D4TestFunction.$(OBJEXT)
-am__objects_2 =
-am_libtest_types_a_OBJECTS = $(am__objects_1) $(am__objects_2)
-libtest_types_a_OBJECTS = $(am_libtest_types_a_OBJECTS)
- at DAP4_DEFINED_TRUE@am__EXEEXT_1 = dmr-test$(EXEEXT)
-am_das_test_OBJECTS = das-test.$(OBJEXT)
-das_test_OBJECTS = $(am_das_test_OBJECTS)
-das_test_DEPENDENCIES = libtest-types.a ../libdapserver.la \
-	../libdap.la
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-am_dds_test_OBJECTS = dds-test.$(OBJEXT)
-dds_test_OBJECTS = $(am_dds_test_OBJECTS)
-dds_test_DEPENDENCIES = libtest-types.a ../libdapserver.la \
-	../libdap.la
-am__dmr_test_SOURCES_DIST = dmr-test.cc D4ResponseBuilder.cc \
-	D4ResponseBuilder.h
- at DAP4_DEFINED_TRUE@am_dmr_test_OBJECTS = dmr-test.$(OBJEXT) \
- at DAP4_DEFINED_TRUE@	D4ResponseBuilder.$(OBJEXT)
-dmr_test_OBJECTS = $(am_dmr_test_OBJECTS)
- at DAP4_DEFINED_TRUE@dmr_test_DEPENDENCIES = libtest-types.a \
- at DAP4_DEFINED_TRUE@	../libdapserver.la ../libdap.la
-am_expr_test_OBJECTS = expr-test.$(OBJEXT) ResponseBuilder.$(OBJEXT)
-expr_test_OBJECTS = $(am_expr_test_OBJECTS)
-expr_test_DEPENDENCIES = libtest-types.a ../libdapserver.la \
-	../libdapclient.la ../libdap.la
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/conf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libtest_types_a_SOURCES) $(das_test_SOURCES) \
-	$(dds_test_SOURCES) $(dmr_test_SOURCES) $(expr_test_SOURCES)
-DIST_SOURCES = $(libtest_types_a_SOURCES) $(das_test_SOURCES) \
-	$(dds_test_SOURCES) $(am__dmr_test_SOURCES_DIST) \
-	$(expr_test_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-HEADERS = $(testheaders_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-AUTOMAKE_OPTIONS = foreign
-
-# Arrange to build with the backward compatibility mode enabled.
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/GNU -I$(top_srcdir)/d4_ce \
--I$(top_srcdir)/d4_function $(XML2_CFLAGS) $(CURL_CFLAGS)
-
-AM_CXXFLAGS = $(am__append_1) $(am__append_2)
-CXXFLAGS_DEBUG = -g3 -O0  -Wall -W -Wcast-align
-TEST_COV_FLAGS = -ftest-coverage -fprofile-arcs
-
-# This will use automake's test envokation code. It's better to use
-# our own so we can pass in flags for autotest, esp --jobs=N to get
-# the autotest tests to run in parallel. See check-local: below.
-
-# TESTS = DASTest DDSTest EXPRTest DMRTest getdapTest
-check_SCRIPTS = $(DASTESTSUITE) $(DDSTESTSUITE) $(EXPRTESTSUITE) \
-	$(DMRTESTSUITE) $(GETDAPTESTSUITE)
-
-
-# Build the test drivers. The drivers all use the
-# subclassed types in Test*.cc and the TestTypesFactory.
-lib_LIBRARIES = libtest-types.a
-libtest_types_a_SOURCES = $(TESTSRCS) $(TEST_HDR)
-libtest_types_a_CXXFLAGS = -fPIC
-testheadersdir = $(pkgincludedir)/test
-testheaders_HEADERS = $(TEST_HDR)
-das_test_SOURCES = das-test.cc
-das_test_LDADD = libtest-types.a ../libdapserver.la ../libdap.la 
-dds_test_SOURCES = dds-test.cc
-dds_test_LDADD = libtest-types.a ../libdapserver.la ../libdap.la 
-expr_test_SOURCES = expr-test.cc ResponseBuilder.cc ResponseBuilder.h
-expr_test_LDADD = libtest-types.a ../libdapserver.la ../libdapclient.la ../libdap.la
- at DAP4_DEFINED_TRUE@dmr_test_SOURCES = dmr-test.cc D4ResponseBuilder.cc D4ResponseBuilder.h
- at DAP4_DEFINED_TRUE@dmr_test_LDADD = libtest-types.a ../libdapserver.la ../libdap.la
-TESTSRCS = TestByte.cc TestInt32.cc TestFloat64.cc TestStr.cc TestUrl.cc \
-	   TestArray.cc TestStructure.cc TestSequence.cc		 \
-	   TestGrid.cc TestUInt32.cc TestInt16.cc TestUInt16.cc		 \
-	   TestFloat32.cc TestTypeFactory.cc D4TestTypeFactory.cc \
-	   TestD4Group.cc TestInt8.cc TestInt64.cc TestUInt64.cc TestD4Sequence.cc \
-	   TestD4Enum.cc TestD4Opaque.cc TestFunction.cc D4TestFunction.cc
-
-
-# TestCommon.cc Removed jhrg 3/12/15
-TEST_HDR = TestArray.h TestByte.h TestCommon.h TestFloat32.h TestFloat64.h    \
-	TestGrid.h TestInt16.h TestInt32.h TestSequence.h TestStr.h	      \
-	TestStructure.h TestTypeFactory.h TestUInt16.h TestUInt32.h TestUrl.h \
-	D4TestTypeFactory.h TestD4Group.h TestInt8.h TestInt64.h TestUInt64.h \
-	TestD4Sequence.h TestD4Enum.h TestD4Opaque.h TestFunction.h D4TestFunction.h
-
-DIRS_EXTRA = das-testsuite dds-testsuite expr-testsuite dmr-testsuite \
-	getdap-testsuite
-
-EXTRA_DIST = DASTest.at $(DASTESTSUITE) DDSTest.at $(DDSTESTSUITE) \
-	EXPRTest.at $(EXPRTESTSUITE) DMRTest.at $(DMRTESTSUITE) \
-	getdapTest.at $(GETDAPTESTSUITE) getdap-testsuite atlocal.in \
-	$(srcdir)/package.m4 $(DIRS_EXTRA)
-
-CLEANFILES = dmr-testsuite.tar.gz
-DISTCLEANFILES = *.log
-
-############## Autotest follows #####################
-AUTOM4TE = autom4te
-TESTSUITEFLAGS = 
-DASTESTSUITE = $(srcdir)/DASTest
-DDSTESTSUITE = $(srcdir)/DDSTest
-EXPRTESTSUITE = $(srcdir)/EXPRTest
-DMRTESTSUITE = $(srcdir)/DMRTest
-GETDAPTESTSUITE = $(srcdir)/getdapTest
-AUTOTEST = $(AUTOM4TE) --language=autotest
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign tests/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-atlocal: $(top_builddir)/config.status $(srcdir)/atlocal.in
-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-install-libLIBRARIES: $(lib_LIBRARIES)
-	@$(NORMAL_INSTALL)
-	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
-	  echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \
-	  $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; }
-	@$(POST_INSTALL)
-	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
-	for p in $$list; do \
-	  if test -f $$p; then \
-	    $(am__strip_dir) \
-	    echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \
-	    ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \
-	  else :; fi; \
-	done
-
-uninstall-libLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(libdir)'; $(am__uninstall_files_from_dir)
-
-clean-libLIBRARIES:
-	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-libtest-types.a: $(libtest_types_a_OBJECTS) $(libtest_types_a_DEPENDENCIES) $(EXTRA_libtest_types_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libtest-types.a
-	$(AM_V_AR)$(libtest_types_a_AR) libtest-types.a $(libtest_types_a_OBJECTS) $(libtest_types_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libtest-types.a
-
-clean-checkPROGRAMS:
-	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-das-test$(EXEEXT): $(das_test_OBJECTS) $(das_test_DEPENDENCIES) $(EXTRA_das_test_DEPENDENCIES) 
-	@rm -f das-test$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(das_test_OBJECTS) $(das_test_LDADD) $(LIBS)
-
-dds-test$(EXEEXT): $(dds_test_OBJECTS) $(dds_test_DEPENDENCIES) $(EXTRA_dds_test_DEPENDENCIES) 
-	@rm -f dds-test$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(dds_test_OBJECTS) $(dds_test_LDADD) $(LIBS)
-
-dmr-test$(EXEEXT): $(dmr_test_OBJECTS) $(dmr_test_DEPENDENCIES) $(EXTRA_dmr_test_DEPENDENCIES) 
-	@rm -f dmr-test$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(dmr_test_OBJECTS) $(dmr_test_LDADD) $(LIBS)
-
-expr-test$(EXEEXT): $(expr_test_OBJECTS) $(expr_test_DEPENDENCIES) $(EXTRA_expr_test_DEPENDENCIES) 
-	@rm -f expr-test$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(expr_test_OBJECTS) $(expr_test_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4ResponseBuilder.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ResponseBuilder.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/das-test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dds-test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dmr-test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/expr-test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-D4TestFunction.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-D4TestTypeFactory.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestArray.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestByte.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestD4Enum.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestD4Group.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestD4Opaque.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestD4Sequence.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestFloat32.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestFloat64.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestFunction.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestGrid.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestInt16.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestInt32.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestInt64.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestInt8.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestSequence.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestStr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestStructure.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestTypeFactory.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestUInt16.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestUInt32.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestUInt64.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtest_types_a-TestUrl.Po at am__quote@
-
-.cc.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-libtest_types_a-TestByte.o: TestByte.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestByte.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestByte.Tpo -c -o libtest_types_a-TestByte.o `test -f 'TestByte.cc' || echo '$(srcdir)/'`TestByte.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestByte.Tpo $(DEPDIR)/libtest_types_a-TestByte.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestByte.cc' object='libtest_types_a-TestByte.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestByte.o `test -f 'TestByte.cc' || echo '$(srcdir)/'`TestByte.cc
-
-libtest_types_a-TestByte.obj: TestByte.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestByte.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestByte.Tpo -c -o libtest_types_a-TestByte.obj `if test -f 'TestByte.cc'; then $(CYGPATH_W) 'TestByte.cc'; else $(CYGPATH_W) '$(srcdir)/TestByte.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestByte.Tpo $(DEPDIR)/libtest_types_a-TestByte.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestByte.cc' object='libtest_types_a-TestByte.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestByte.obj `if test -f 'TestByte.cc'; then $(CYGPATH_W) 'TestByte.cc'; else $(CYGPATH_W) '$(srcdir)/TestByte.cc'; fi`
-
-libtest_types_a-TestInt32.o: TestInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt32.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt32.Tpo -c -o libtest_types_a-TestInt32.o `test -f 'TestInt32.cc' || echo '$(srcdir)/'`TestInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt32.Tpo $(DEPDIR)/libtest_types_a-TestInt32.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt32.cc' object='libtest_types_a-TestInt32.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt32.o `test -f 'TestInt32.cc' || echo '$(srcdir)/'`TestInt32.cc
-
-libtest_types_a-TestInt32.obj: TestInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt32.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt32.Tpo -c -o libtest_types_a-TestInt32.obj `if test -f 'TestInt32.cc'; then $(CYGPATH_W) 'TestInt32.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt32.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt32.Tpo $(DEPDIR)/libtest_types_a-TestInt32.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt32.cc' object='libtest_types_a-TestInt32.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt32.obj `if test -f 'TestInt32.cc'; then $(CYGPATH_W) 'TestInt32.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt32.cc'; fi`
-
-libtest_types_a-TestFloat64.o: TestFloat64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestFloat64.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestFloat64.Tpo -c -o libtest_types_a-TestFloat64.o `test -f 'TestFloat64.cc' || echo '$(srcdir)/'`TestFloat64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestFloat64.Tpo $(DEPDIR)/libtest_types_a-TestFloat64.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestFloat64.cc' object='libtest_types_a-TestFloat64.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestFloat64.o `test -f 'TestFloat64.cc' || echo '$(srcdir)/'`TestFloat64.cc
-
-libtest_types_a-TestFloat64.obj: TestFloat64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestFloat64.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestFloat64.Tpo -c -o libtest_types_a-TestFloat64.obj `if test -f 'TestFloat64.cc'; then $(CYGPATH_W) 'TestFloat64.cc'; else $(CYGPATH_W) '$(srcdir)/TestFloat64.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestFloat64.Tpo $(DEPDIR)/libtest_types_a-TestFloat64.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestFloat64.cc' object='libtest_types_a-TestFloat64.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestFloat64.obj `if test -f 'TestFloat64.cc'; then $(CYGPATH_W) 'TestFloat64.cc'; else $(CYGPATH_W) '$(srcdir)/TestFloat64.cc'; fi`
-
-libtest_types_a-TestStr.o: TestStr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestStr.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestStr.Tpo -c -o libtest_types_a-TestStr.o `test -f 'TestStr.cc' || echo '$(srcdir)/'`TestStr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestStr.Tpo $(DEPDIR)/libtest_types_a-TestStr.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestStr.cc' object='libtest_types_a-TestStr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestStr.o `test -f 'TestStr.cc' || echo '$(srcdir)/'`TestStr.cc
-
-libtest_types_a-TestStr.obj: TestStr.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestStr.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestStr.Tpo -c -o libtest_types_a-TestStr.obj `if test -f 'TestStr.cc'; then $(CYGPATH_W) 'TestStr.cc'; else $(CYGPATH_W) '$(srcdir)/TestStr.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestStr.Tpo $(DEPDIR)/libtest_types_a-TestStr.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestStr.cc' object='libtest_types_a-TestStr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestStr.obj `if test -f 'TestStr.cc'; then $(CYGPATH_W) 'TestStr.cc'; else $(CYGPATH_W) '$(srcdir)/TestStr.cc'; fi`
-
-libtest_types_a-TestUrl.o: TestUrl.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUrl.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUrl.Tpo -c -o libtest_types_a-TestUrl.o `test -f 'TestUrl.cc' || echo '$(srcdir)/'`TestUrl.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUrl.Tpo $(DEPDIR)/libtest_types_a-TestUrl.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUrl.cc' object='libtest_types_a-TestUrl.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUrl.o `test -f 'TestUrl.cc' || echo '$(srcdir)/'`TestUrl.cc
-
-libtest_types_a-TestUrl.obj: TestUrl.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUrl.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUrl.Tpo -c -o libtest_types_a-TestUrl.obj `if test -f 'TestUrl.cc'; then $(CYGPATH_W) 'TestUrl.cc'; else $(CYGPATH_W) '$(srcdir)/TestUrl.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUrl.Tpo $(DEPDIR)/libtest_types_a-TestUrl.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUrl.cc' object='libtest_types_a-TestUrl.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUrl.obj `if test -f 'TestUrl.cc'; then $(CYGPATH_W) 'TestUrl.cc'; else $(CYGPATH_W) '$(srcdir)/TestUrl.cc'; fi`
-
-libtest_types_a-TestArray.o: TestArray.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestArray.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestArray.Tpo -c -o libtest_types_a-TestArray.o `test -f 'TestArray.cc' || echo '$(srcdir)/'`TestArray.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestArray.Tpo $(DEPDIR)/libtest_types_a-TestArray.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestArray.cc' object='libtest_types_a-TestArray.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestArray.o `test -f 'TestArray.cc' || echo '$(srcdir)/'`TestArray.cc
-
-libtest_types_a-TestArray.obj: TestArray.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestArray.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestArray.Tpo -c -o libtest_types_a-TestArray.obj `if test -f 'TestArray.cc'; then $(CYGPATH_W) 'TestArray.cc'; else $(CYGPATH_W) '$(srcdir)/TestArray.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestArray.Tpo $(DEPDIR)/libtest_types_a-TestArray.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestArray.cc' object='libtest_types_a-TestArray.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestArray.obj `if test -f 'TestArray.cc'; then $(CYGPATH_W) 'TestArray.cc'; else $(CYGPATH_W) '$(srcdir)/TestArray.cc'; fi`
-
-libtest_types_a-TestStructure.o: TestStructure.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestStructure.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestStructure.Tpo -c -o libtest_types_a-TestStructure.o `test -f 'TestStructure.cc' || echo '$(srcdir)/'`TestStructure.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestStructure.Tpo $(DEPDIR)/libtest_types_a-TestStructure.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestStructure.cc' object='libtest_types_a-TestStructure.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestStructure.o `test -f 'TestStructure.cc' || echo '$(srcdir)/'`TestStructure.cc
-
-libtest_types_a-TestStructure.obj: TestStructure.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestStructure.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestStructure.Tpo -c -o libtest_types_a-TestStructure.obj `if test -f 'TestStructure.cc'; then $(CYGPATH_W) 'TestStructure.cc'; else $(CYGPATH_W) '$(srcdir)/TestStructure.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestStructure.Tpo $(DEPDIR)/libtest_types_a-TestStructure.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestStructure.cc' object='libtest_types_a-TestStructure.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestStructure.obj `if test -f 'TestStructure.cc'; then $(CYGPATH_W) 'TestStructure.cc'; else $(CYGPATH_W) '$(srcdir)/TestStructure.cc'; fi`
-
-libtest_types_a-TestSequence.o: TestSequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestSequence.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestSequence.Tpo -c -o libtest_types_a-TestSequence.o `test -f 'TestSequence.cc' || echo '$(srcdir)/'`TestSequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestSequence.Tpo $(DEPDIR)/libtest_types_a-TestSequence.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestSequence.cc' object='libtest_types_a-TestSequence.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestSequence.o `test -f 'TestSequence.cc' || echo '$(srcdir)/'`TestSequence.cc
-
-libtest_types_a-TestSequence.obj: TestSequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestSequence.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestSequence.Tpo -c -o libtest_types_a-TestSequence.obj `if test -f 'TestSequence.cc'; then $(CYGPATH_W) 'TestSequence.cc'; else $(CYGPATH_W) '$(srcdir)/TestSequence.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestSequence.Tpo $(DEPDIR)/libtest_types_a-TestSequence.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestSequence.cc' object='libtest_types_a-TestSequence.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestSequence.obj `if test -f 'TestSequence.cc'; then $(CYGPATH_W) 'TestSequence.cc'; else $(CYGPATH_W) '$(srcdir)/TestSequence.cc'; fi`
-
-libtest_types_a-TestGrid.o: TestGrid.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestGrid.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestGrid.Tpo -c -o libtest_types_a-TestGrid.o `test -f 'TestGrid.cc' || echo '$(srcdir)/'`TestGrid.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestGrid.Tpo $(DEPDIR)/libtest_types_a-TestGrid.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestGrid.cc' object='libtest_types_a-TestGrid.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestGrid.o `test -f 'TestGrid.cc' || echo '$(srcdir)/'`TestGrid.cc
-
-libtest_types_a-TestGrid.obj: TestGrid.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestGrid.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestGrid.Tpo -c -o libtest_types_a-TestGrid.obj `if test -f 'TestGrid.cc'; then $(CYGPATH_W) 'TestGrid.cc'; else $(CYGPATH_W) '$(srcdir)/TestGrid.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestGrid.Tpo $(DEPDIR)/libtest_types_a-TestGrid.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestGrid.cc' object='libtest_types_a-TestGrid.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestGrid.obj `if test -f 'TestGrid.cc'; then $(CYGPATH_W) 'TestGrid.cc'; else $(CYGPATH_W) '$(srcdir)/TestGrid.cc'; fi`
-
-libtest_types_a-TestUInt32.o: TestUInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUInt32.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUInt32.Tpo -c -o libtest_types_a-TestUInt32.o `test -f 'TestUInt32.cc' || echo '$(srcdir)/'`TestUInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUInt32.Tpo $(DEPDIR)/libtest_types_a-TestUInt32.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUInt32.cc' object='libtest_types_a-TestUInt32.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUInt32.o `test -f 'TestUInt32.cc' || echo '$(srcdir)/'`TestUInt32.cc
-
-libtest_types_a-TestUInt32.obj: TestUInt32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUInt32.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUInt32.Tpo -c -o libtest_types_a-TestUInt32.obj `if test -f 'TestUInt32.cc'; then $(CYGPATH_W) 'TestUInt32.cc'; else $(CYGPATH_W) '$(srcdir)/TestUInt32.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUInt32.Tpo $(DEPDIR)/libtest_types_a-TestUInt32.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUInt32.cc' object='libtest_types_a-TestUInt32.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUInt32.obj `if test -f 'TestUInt32.cc'; then $(CYGPATH_W) 'TestUInt32.cc'; else $(CYGPATH_W) '$(srcdir)/TestUInt32.cc'; fi`
-
-libtest_types_a-TestInt16.o: TestInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt16.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt16.Tpo -c -o libtest_types_a-TestInt16.o `test -f 'TestInt16.cc' || echo '$(srcdir)/'`TestInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt16.Tpo $(DEPDIR)/libtest_types_a-TestInt16.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt16.cc' object='libtest_types_a-TestInt16.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt16.o `test -f 'TestInt16.cc' || echo '$(srcdir)/'`TestInt16.cc
-
-libtest_types_a-TestInt16.obj: TestInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt16.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt16.Tpo -c -o libtest_types_a-TestInt16.obj `if test -f 'TestInt16.cc'; then $(CYGPATH_W) 'TestInt16.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt16.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt16.Tpo $(DEPDIR)/libtest_types_a-TestInt16.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt16.cc' object='libtest_types_a-TestInt16.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt16.obj `if test -f 'TestInt16.cc'; then $(CYGPATH_W) 'TestInt16.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt16.cc'; fi`
-
-libtest_types_a-TestUInt16.o: TestUInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUInt16.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUInt16.Tpo -c -o libtest_types_a-TestUInt16.o `test -f 'TestUInt16.cc' || echo '$(srcdir)/'`TestUInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUInt16.Tpo $(DEPDIR)/libtest_types_a-TestUInt16.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUInt16.cc' object='libtest_types_a-TestUInt16.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUInt16.o `test -f 'TestUInt16.cc' || echo '$(srcdir)/'`TestUInt16.cc
-
-libtest_types_a-TestUInt16.obj: TestUInt16.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUInt16.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUInt16.Tpo -c -o libtest_types_a-TestUInt16.obj `if test -f 'TestUInt16.cc'; then $(CYGPATH_W) 'TestUInt16.cc'; else $(CYGPATH_W) '$(srcdir)/TestUInt16.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUInt16.Tpo $(DEPDIR)/libtest_types_a-TestUInt16.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUInt16.cc' object='libtest_types_a-TestUInt16.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUInt16.obj `if test -f 'TestUInt16.cc'; then $(CYGPATH_W) 'TestUInt16.cc'; else $(CYGPATH_W) '$(srcdir)/TestUInt16.cc'; fi`
-
-libtest_types_a-TestFloat32.o: TestFloat32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestFloat32.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestFloat32.Tpo -c -o libtest_types_a-TestFloat32.o `test -f 'TestFloat32.cc' || echo '$(srcdir)/'`TestFloat32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestFloat32.Tpo $(DEPDIR)/libtest_types_a-TestFloat32.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestFloat32.cc' object='libtest_types_a-TestFloat32.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestFloat32.o `test -f 'TestFloat32.cc' || echo '$(srcdir)/'`TestFloat32.cc
-
-libtest_types_a-TestFloat32.obj: TestFloat32.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestFloat32.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestFloat32.Tpo -c -o libtest_types_a-TestFloat32.obj `if test -f 'TestFloat32.cc'; then $(CYGPATH_W) 'TestFloat32.cc'; else $(CYGPATH_W) '$(srcdir)/TestFloat32.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestFloat32.Tpo $(DEPDIR)/libtest_types_a-TestFloat32.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestFloat32.cc' object='libtest_types_a-TestFloat32.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestFloat32.obj `if test -f 'TestFloat32.cc'; then $(CYGPATH_W) 'TestFloat32.cc'; else $(CYGPATH_W) '$(srcdir)/TestFloat32.cc'; fi`
-
-libtest_types_a-TestTypeFactory.o: TestTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestTypeFactory.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestTypeFactory.Tpo -c -o libtest_types_a-TestTypeFactory.o `test -f 'TestTypeFactory.cc' || echo '$(srcdir)/'`TestTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestTypeFactory.Tpo $(DEPDIR)/libtest_types_a-TestTypeFactory.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestTypeFactory.cc' object='libtest_types_a-TestTypeFactory.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestTypeFactory.o `test -f 'TestTypeFactory.cc' || echo '$(srcdir)/'`TestTypeFactory.cc
-
-libtest_types_a-TestTypeFactory.obj: TestTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestTypeFactory.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestTypeFactory.Tpo -c -o libtest_types_a-TestTypeFactory.obj `if test -f 'TestTypeFactory.cc'; then $(CYGPATH_W) 'TestTypeFactory.cc'; else $(CYGPATH_W) '$(srcdir)/TestTypeFactory.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestTypeFactory.Tpo $(DEPDIR)/libtest_types_a-TestTypeFactory.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestTypeFactory.cc' object='libtest_types_a-TestTypeFactory.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestTypeFactory.obj `if test -f 'TestTypeFactory.cc'; then $(CYGPATH_W) 'TestTypeFactory.cc'; else $(CYGPATH_W) '$(srcdir)/TestTypeFactory.cc'; fi`
-
-libtest_types_a-D4TestTypeFactory.o: D4TestTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-D4TestTypeFactory.o -MD -MP -MF $(DEPDIR)/libtest_types_a-D4TestTypeFactory.Tpo -c -o libtest_types_a-D4TestTypeFactory.o `test -f 'D4TestTypeFactory.cc' || echo '$(srcdir)/'`D4TestTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-D4TestTypeFactory.Tpo $(DEPDIR)/libtest_types_a-D4TestTypeFactory.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4TestTypeFactory.cc' object='libtest_types_a-D4TestTypeFactory.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-D4TestTypeFactory.o `test -f 'D4TestTypeFactory.cc' || echo '$(srcdir)/'`D4TestTypeFactory.cc
-
-libtest_types_a-D4TestTypeFactory.obj: D4TestTypeFactory.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-D4TestTypeFactory.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-D4TestTypeFactory.Tpo -c -o libtest_types_a-D4TestTypeFactory.obj `if test -f 'D4TestTypeFactory.cc'; then $(CYGPATH_W) 'D4TestTypeFactory.cc'; else $(CYGPATH_W) '$(srcdir)/D4TestTypeFactory.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-D4TestTypeFactory.Tpo $(DEPDIR)/libtest_types_a-D4TestTypeFactory.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4TestTypeFactory.cc' object='libtest_types_a-D4TestTypeFactory.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-D4TestTypeFactory.obj `if test -f 'D4TestTypeFactory.cc'; then $(CYGPATH_W) 'D4TestTypeFactory.cc'; else $(CYGPATH_W) '$(srcdir)/D4TestTypeFactory.cc'; fi`
-
-libtest_types_a-TestD4Group.o: TestD4Group.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Group.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Group.Tpo -c -o libtest_types_a-TestD4Group.o `test -f 'TestD4Group.cc' || echo '$(srcdir)/'`TestD4Group.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Group.Tpo $(DEPDIR)/libtest_types_a-TestD4Group.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Group.cc' object='libtest_types_a-TestD4Group.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Group.o `test -f 'TestD4Group.cc' || echo '$(srcdir)/'`TestD4Group.cc
-
-libtest_types_a-TestD4Group.obj: TestD4Group.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Group.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Group.Tpo -c -o libtest_types_a-TestD4Group.obj `if test -f 'TestD4Group.cc'; then $(CYGPATH_W) 'TestD4Group.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Group.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Group.Tpo $(DEPDIR)/libtest_types_a-TestD4Group.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Group.cc' object='libtest_types_a-TestD4Group.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Group.obj `if test -f 'TestD4Group.cc'; then $(CYGPATH_W) 'TestD4Group.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Group.cc'; fi`
-
-libtest_types_a-TestInt8.o: TestInt8.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt8.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt8.Tpo -c -o libtest_types_a-TestInt8.o `test -f 'TestInt8.cc' || echo '$(srcdir)/'`TestInt8.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt8.Tpo $(DEPDIR)/libtest_types_a-TestInt8.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt8.cc' object='libtest_types_a-TestInt8.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt8.o `test -f 'TestInt8.cc' || echo '$(srcdir)/'`TestInt8.cc
-
-libtest_types_a-TestInt8.obj: TestInt8.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt8.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt8.Tpo -c -o libtest_types_a-TestInt8.obj `if test -f 'TestInt8.cc'; then $(CYGPATH_W) 'TestInt8.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt8.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt8.Tpo $(DEPDIR)/libtest_types_a-TestInt8.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt8.cc' object='libtest_types_a-TestInt8.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt8.obj `if test -f 'TestInt8.cc'; then $(CYGPATH_W) 'TestInt8.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt8.cc'; fi`
-
-libtest_types_a-TestInt64.o: TestInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt64.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt64.Tpo -c -o libtest_types_a-TestInt64.o `test -f 'TestInt64.cc' || echo '$(srcdir)/'`TestInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt64.Tpo $(DEPDIR)/libtest_types_a-TestInt64.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt64.cc' object='libtest_types_a-TestInt64.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt64.o `test -f 'TestInt64.cc' || echo '$(srcdir)/'`TestInt64.cc
-
-libtest_types_a-TestInt64.obj: TestInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestInt64.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestInt64.Tpo -c -o libtest_types_a-TestInt64.obj `if test -f 'TestInt64.cc'; then $(CYGPATH_W) 'TestInt64.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt64.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestInt64.Tpo $(DEPDIR)/libtest_types_a-TestInt64.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestInt64.cc' object='libtest_types_a-TestInt64.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestInt64.obj `if test -f 'TestInt64.cc'; then $(CYGPATH_W) 'TestInt64.cc'; else $(CYGPATH_W) '$(srcdir)/TestInt64.cc'; fi`
-
-libtest_types_a-TestUInt64.o: TestUInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUInt64.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUInt64.Tpo -c -o libtest_types_a-TestUInt64.o `test -f 'TestUInt64.cc' || echo '$(srcdir)/'`TestUInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUInt64.Tpo $(DEPDIR)/libtest_types_a-TestUInt64.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUInt64.cc' object='libtest_types_a-TestUInt64.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUInt64.o `test -f 'TestUInt64.cc' || echo '$(srcdir)/'`TestUInt64.cc
-
-libtest_types_a-TestUInt64.obj: TestUInt64.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestUInt64.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestUInt64.Tpo -c -o libtest_types_a-TestUInt64.obj `if test -f 'TestUInt64.cc'; then $(CYGPATH_W) 'TestUInt64.cc'; else $(CYGPATH_W) '$(srcdir)/TestUInt64.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestUInt64.Tpo $(DEPDIR)/libtest_types_a-TestUInt64.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestUInt64.cc' object='libtest_types_a-TestUInt64.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestUInt64.obj `if test -f 'TestUInt64.cc'; then $(CYGPATH_W) 'TestUInt64.cc'; else $(CYGPATH_W) '$(srcdir)/TestUInt64.cc'; fi`
-
-libtest_types_a-TestD4Sequence.o: TestD4Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Sequence.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Sequence.Tpo -c -o libtest_types_a-TestD4Sequence.o `test -f 'TestD4Sequence.cc' || echo '$(srcdir)/'`TestD4Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Sequence.Tpo $(DEPDIR)/libtest_types_a-TestD4Sequence.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Sequence.cc' object='libtest_types_a-TestD4Sequence.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Sequence.o `test -f 'TestD4Sequence.cc' || echo '$(srcdir)/'`TestD4Sequence.cc
-
-libtest_types_a-TestD4Sequence.obj: TestD4Sequence.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Sequence.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Sequence.Tpo -c -o libtest_types_a-TestD4Sequence.obj `if test -f 'TestD4Sequence.cc'; then $(CYGPATH_W) 'TestD4Sequence.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Sequence.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Sequence.Tpo $(DEPDIR)/libtest_types_a-TestD4Sequence.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Sequence.cc' object='libtest_types_a-TestD4Sequence.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Sequence.obj `if test -f 'TestD4Sequence.cc'; then $(CYGPATH_W) 'TestD4Sequence.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Sequence.cc'; fi`
-
-libtest_types_a-TestD4Enum.o: TestD4Enum.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Enum.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Enum.Tpo -c -o libtest_types_a-TestD4Enum.o `test -f 'TestD4Enum.cc' || echo '$(srcdir)/'`TestD4Enum.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Enum.Tpo $(DEPDIR)/libtest_types_a-TestD4Enum.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Enum.cc' object='libtest_types_a-TestD4Enum.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Enum.o `test -f 'TestD4Enum.cc' || echo '$(srcdir)/'`TestD4Enum.cc
-
-libtest_types_a-TestD4Enum.obj: TestD4Enum.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Enum.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Enum.Tpo -c -o libtest_types_a-TestD4Enum.obj `if test -f 'TestD4Enum.cc'; then $(CYGPATH_W) 'TestD4Enum.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Enum.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Enum.Tpo $(DEPDIR)/libtest_types_a-TestD4Enum.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Enum.cc' object='libtest_types_a-TestD4Enum.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Enum.obj `if test -f 'TestD4Enum.cc'; then $(CYGPATH_W) 'TestD4Enum.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Enum.cc'; fi`
-
-libtest_types_a-TestD4Opaque.o: TestD4Opaque.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Opaque.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Opaque.Tpo -c -o libtest_types_a-TestD4Opaque.o `test -f 'TestD4Opaque.cc' || echo '$(srcdir)/'`TestD4Opaque.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Opaque.Tpo $(DEPDIR)/libtest_types_a-TestD4Opaque.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Opaque.cc' object='libtest_types_a-TestD4Opaque.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Opaque.o `test -f 'TestD4Opaque.cc' || echo '$(srcdir)/'`TestD4Opaque.cc
-
-libtest_types_a-TestD4Opaque.obj: TestD4Opaque.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestD4Opaque.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestD4Opaque.Tpo -c -o libtest_types_a-TestD4Opaque.obj `if test -f 'TestD4Opaque.cc'; then $(CYGPATH_W) 'TestD4Opaque.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Opaque.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestD4Opaque.Tpo $(DEPDIR)/libtest_types_a-TestD4Opaque.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestD4Opaque.cc' object='libtest_types_a-TestD4Opaque.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestD4Opaque.obj `if test -f 'TestD4Opaque.cc'; then $(CYGPATH_W) 'TestD4Opaque.cc'; else $(CYGPATH_W) '$(srcdir)/TestD4Opaque.cc'; fi`
-
-libtest_types_a-TestFunction.o: TestFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestFunction.o -MD -MP -MF $(DEPDIR)/libtest_types_a-TestFunction.Tpo -c -o libtest_types_a-TestFunction.o `test -f 'TestFunction.cc' || echo '$(srcdir)/'`TestFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestFunction.Tpo $(DEPDIR)/libtest_types_a-TestFunction.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestFunction.cc' object='libtest_types_a-TestFunction.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestFunction.o `test -f 'TestFunction.cc' || echo '$(srcdir)/'`TestFunction.cc
-
-libtest_types_a-TestFunction.obj: TestFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-TestFunction.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-TestFunction.Tpo -c -o libtest_types_a-TestFunction.obj `if test -f 'TestFunction.cc'; then $(CYGPATH_W) 'TestFunction.cc'; else $(CYGPATH_W) '$(srcdir)/TestFunction.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-TestFunction.Tpo $(DEPDIR)/libtest_types_a-TestFunction.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='TestFunction.cc' object='libtest_types_a-TestFunction.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-TestFunction.obj `if test -f 'TestFunction.cc'; then $(CYGPATH_W) 'TestFunction.cc'; else $(CYGPATH_W) '$(srcdir)/TestFunction.cc'; fi`
-
-libtest_types_a-D4TestFunction.o: D4TestFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-D4TestFunction.o -MD -MP -MF $(DEPDIR)/libtest_types_a-D4TestFunction.Tpo -c -o libtest_types_a-D4TestFunction.o `test -f 'D4TestFunction.cc' || echo '$(srcdir)/'`D4TestFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-D4TestFunction.Tpo $(DEPDIR)/libtest_types_a-D4TestFunction.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4TestFunction.cc' object='libtest_types_a-D4TestFunction.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-D4TestFunction.o `test -f 'D4TestFunction.cc' || echo '$(srcdir)/'`D4TestFunction.cc
-
-libtest_types_a-D4TestFunction.obj: D4TestFunction.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -MT libtest_types_a-D4TestFunction.obj -MD -MP -MF $(DEPDIR)/libtest_types_a-D4TestFunction.Tpo -c -o libtest_types_a-D4TestFunction.obj `if test -f 'D4TestFunction.cc'; then $(CYGPATH_W) 'D4TestFunction.cc'; else $(CYGPATH_W) '$(srcdir)/D4TestFunction.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtest_types_a-D4TestFunction.Tpo $(DEPDIR)/libtest_types_a-D4TestFunction.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='D4TestFunction.cc' object='libtest_types_a-D4TestFunction.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_types_a_CXXFLAGS) $(CXXFLAGS) -c -o libtest_types_a-D4TestFunction.obj `if test -f 'D4TestFunction.cc'; then $(CYGPATH_W) 'D4TestFunction.cc'; else $(CYGPATH_W) '$(srcdir)/D4TestFunction.cc'; fi`
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-testheadersHEADERS: $(testheaders_HEADERS)
-	@$(NORMAL_INSTALL)
-	@list='$(testheaders_HEADERS)'; test -n "$(testheadersdir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(testheadersdir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(testheadersdir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(testheadersdir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(testheadersdir)" || exit $$?; \
-	done
-
-uninstall-testheadersHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(testheaders_HEADERS)'; test -n "$(testheadersdir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(testheadersdir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
-	$(MAKE) $(AM_MAKEFLAGS) check-local
-check: check-am
-all-am: Makefile $(LIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(testheadersdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-checkPROGRAMS clean-generic clean-libLIBRARIES \
-	clean-libtool clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-local distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-testheadersHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLIBRARIES uninstall-testheadersHEADERS
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
-	clean-checkPROGRAMS clean-generic clean-libLIBRARIES \
-	clean-libtool clean-local cscopelist-am ctags ctags-am \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-local distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-libLIBRARIES install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip install-testheadersHEADERS installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am uninstall-libLIBRARIES \
-	uninstall-testheadersHEADERS
-
-
-# DASTest.dir/* DDSTest.dir/* EXPRTest.dir/* DMRTest.dir/* getdapTest.dir/*
-
-dmr-testsuite.tar.gz: dmr-testsuite/*.xml
-	tar -czf $@ $^
-
-check-local: atconfig atlocal $(DASTESTSUITE) $(DDSTESTSUITE) \
-$(EXPRTESTSUITE) $(DMRTESTSUITE) $(GETDAPTESTSUITE) 
-	$(SHELL) '$(DASTESTSUITE)' $(TESTSUITEFLAGS)
-	$(SHELL) '$(DDSTESTSUITE)' $(TESTSUITEFLAGS)
-	$(SHELL) '$(EXPRTESTSUITE)' $(TESTSUITEFLAGS)
-	$(SHELL) '$(DMRTESTSUITE)' $(TESTSUITEFLAGS)
-	$(SHELL) '$(GETDAPTESTSUITE)' $(TESTSUITEFLAGS)
-
-# Make sure there are no spaces after the DASTESTSUITE names. jhrg 3/16/15
-# Delete the scripts here and not using CLEANFILES because this target is
-# run after the 'regular' clean: and we need the test scripts to run their
-# --clean option. Once that's done, then remove them. 
-clean-local:
-	test ! -f '$(DASTESTSUITE)' || $(SHELL) $(DASTESTSUITE) --clean
-	test ! -f '$(DDSTESTSUITE)' || $(SHELL) $(DDSTESTSUITE) --clean
-	test ! -f '$(EXPRTESTSUITE)' || $(SHELL) $(EXPRTESTSUITE) --clean
-	test ! -f '$(DMRTESTSUITE)' || $(SHELL) $(DMRTESTSUITE) --clean
-	test ! -f '$(GETDAPTESTSUITE)' || $(SHELL) $(GETDAPTESTSUITE) --clean
-
-distclean-local:
-	-rm atconfig
-
-$(DASTESTSUITE): $(srcdir)/DASTest.at $(srcdir)/package.m4
-	$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
-	mv $@.tmp $@
-
-$(DDSTESTSUITE): $(srcdir)/DDSTest.at $(srcdir)/package.m4
-	$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
-	mv $@.tmp $@
-
-$(EXPRTESTSUITE): $(srcdir)/EXPRTest.at $(srcdir)/package.m4
-	$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
-	mv $@.tmp $@
-
-$(DMRTESTSUITE): $(srcdir)/DMRTest.at $(srcdir)/package.m4
-	$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
-	mv $@.tmp $@
-
-$(GETDAPTESTSUITE): $(srcdir)/getdapTest.at $(srcdir)/package.m4
-	$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
-	mv $@.tmp $@
-
-# The `:;' works around a Bash 3.2 bug when the output is not writable.
-$(srcdir)/package.m4: $(top_srcdir)/configure.ac
-	:;{ \
-	echo '# Signature of the current package.' && \
-	echo 'm4_define([AT_PACKAGE_NAME],      [@PACKAGE_NAME@])' && \
-	echo 'm4_define([AT_PACKAGE_TARNAME],   [@PACKAGE_TARNAME@])' && \
-	echo 'm4_define([AT_PACKAGE_VERSION],   [@PACKAGE_VERSION@])' && \
-	echo 'm4_define([AT_PACKAGE_STRING],    [@PACKAGE_STRING@])' && \
-	echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
-	} >'$(srcdir)/package.m4'
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/TestArray.cc b/tests/TestArray.cc
index 6e619ae..c1d50d2 100644
--- a/tests/TestArray.cc
+++ b/tests/TestArray.cc
@@ -133,11 +133,17 @@ unsigned int TestArray::m_print_array(ostream &out, unsigned int index, unsigned
 {
     if (dims == 1) {
         out << "{";
-        for (unsigned i = 0; i < shape[0] - 1; ++i) {
+
+        // Added this test for zero-length arrays. jhrg 1/28/16
+        if (shape[0] >= 1) {
+            for (unsigned i = 0; i < shape[0] - 1; ++i) {
+                dynamic_cast<TestCommon&>(*var(index++)).output_values(out);
+                out << ", ";
+            }
+
             dynamic_cast<TestCommon&>(*var(index++)).output_values(out);
-            out << ", ";
         }
-        dynamic_cast<TestCommon&>(*var(index++)).output_values(out);
+
         out << "}";
 
         return index;
@@ -148,13 +154,21 @@ unsigned int TestArray::m_print_array(ostream &out, unsigned int index, unsigned
         // length is shape[dims-1]-1 *and* since we want one less dimension
         // than that, the correct limit on this loop is shape[dims-2]-1. From
         // Todd Karakasian.
+        //
         // The saga continues; the loop test should be `i < shape[0]-1'. jhrg
         // 9/12/96.
-        for (unsigned i = 0; i < shape[0] - 1; ++i) {
+        //
+        // Added this (primitive) guard against errors when a zero-length array
+        // is declared with a shape like [0][4]. jhrg 1/28/16
+        if (shape[0] > 0) {
+            for (unsigned i = 0; i < shape[0] - 1; ++i) {
+                index = m_print_array(out, index, dims - 1, shape + 1);
+                out << ",";
+            }
+
             index = m_print_array(out, index, dims - 1, shape + 1);
-            out << ",";
         }
-        index = m_print_array(out, index, dims - 1, shape + 1);
+
         out << "}";
 
         return index;
@@ -411,44 +425,54 @@ bool TestArray::read()
     //case dods_uint8_c:
     case dods_int16_c:
         m_cardinal_type_read_helper<dods_int16, Int16>();
+        set_read_p(true);
         break;
 
     case dods_uint16_c:
         m_cardinal_type_read_helper<dods_uint16, UInt16>();
+        set_read_p(true);
         break;
 
     case dods_int32_c:
         m_cardinal_type_read_helper<dods_int32, Int32>();
+        set_read_p(true);
         break;
 
     case dods_uint32_c:
         m_cardinal_type_read_helper<dods_uint32, UInt32>();
+        set_read_p(true);
         break;
 
     case dods_float32_c:
         m_cardinal_type_read_helper<dods_float32, Float32>();
+        set_read_p(true);
         break;
 
     case dods_float64_c:
         m_cardinal_type_read_helper<dods_float64, Float64>();
+        set_read_p(true);
         break;
 
     case dods_int8_c:
         m_cardinal_type_read_helper<dods_int8, Int8>();
+        set_read_p(true);
         break;
 
     case dods_byte_c:
     case dods_char_c:
     case dods_uint8_c:
         m_cardinal_type_read_helper<dods_byte, Byte>();
+        set_read_p(true);
         break;
 
     case dods_int64_c:
         m_cardinal_type_read_helper<dods_int64, Int64>();
+        set_read_p(true);
         break;
 
     case dods_uint64_c:
         m_cardinal_type_read_helper<dods_uint64, UInt64>();
+        set_read_p(true);
         break;
 
     case dods_enum_c:
@@ -482,6 +506,7 @@ bool TestArray::read()
         default:
             throw InternalErr(__FILE__, __LINE__, "Enum with undefined type.");
         }
+        set_read_p(true);
         break;
 
     case dods_str_c:
@@ -505,6 +530,7 @@ bool TestArray::read()
         }
 
         set_value(tmp, array_len);
+        set_read_p(true);
         break;
     }
 
@@ -517,7 +543,7 @@ bool TestArray::read()
             // Load the new value into this object's array
             set_vec(i, elem);
         }
-
+        set_read_p(true);
         break;
 
     case dods_sequence_c:
@@ -543,7 +569,7 @@ bool TestArray::read()
         break;
     }
 
-    set_read_p(true);
+    // set_read_p(true);
 
     return true;
 }
diff --git a/tests/TestCommon.cc b/tests/TestCommon.cc
new file mode 100644
index 0000000..a7df4e8
--- /dev/null
+++ b/tests/TestCommon.cc
@@ -0,0 +1,30 @@
+
+// This file is no longer used. jhrg 3/12/15
+
+#include "TestCommon.h"
+#include "InternalErr.h"
+
+using namespace libdap ;
+
+#if 0
+TestCommon::TestCommon()
+{
+}
+
+TestCommon::~TestCommon()
+{
+}
+#endif
+#if 0
+void
+TestCommon::set_series_values(bool)
+{
+    throw InternalErr(__FILE__, __LINE__, "Unimplemented");
+}
+
+bool
+TestCommon::get_series_values()
+{
+    throw InternalErr(__FILE__, __LINE__, "Unimplemented");
+}
+#endif
diff --git a/tests/TestD4Enum.cc b/tests/TestD4Enum.cc
index e6c5a70..8612525 100644
--- a/tests/TestD4Enum.cc
+++ b/tests/TestD4Enum.cc
@@ -102,12 +102,12 @@ bool TestD4Enum::read() {
             set_value(v + 1);
     }
     else {
-        set_value((uint64_t)1);
+        set_value(1);
     }
 
     set_read_p(true);
 
-    DBG(cerr << "In TestD4Enum::read, _buf = " << d_buf.i64 << endl);
+    DBG(cerr << "In TestD4Enum::read, _buf = " << d_buf << endl);
 
     return true;
 }
diff --git a/tests/TestD4Sequence.cc b/tests/TestD4Sequence.cc
index 0d5eb72..61eaa8c 100644
--- a/tests/TestD4Sequence.cc
+++ b/tests/TestD4Sequence.cc
@@ -69,7 +69,7 @@ TestD4Sequence &
 TestD4Sequence::operator=(const TestD4Sequence &rhs)
 {
     if (this == &rhs)
-	return *this;
+        return *this;
 
     dynamic_cast<D4Sequence &>(*this) = rhs;
 
@@ -84,6 +84,10 @@ TestD4Sequence::output_values(std::ostream &out)
     print_val(out, "", false);
 }
 
+/**
+ * In DAP2, TestSequence::read() also reads the child sequence data. However,
+ * in DAP4 it's up to each sequence to read its own data.
+ */
 bool
 TestD4Sequence::read()
 {
@@ -91,13 +95,12 @@ TestD4Sequence::read()
         return true;
 
     if (d_current < d_len) {
-    	for (Vars_iter i = var_begin(), e = var_end(); i != e; ++i)
-            if ((*i)->send_p() || (*i)->is_in_selection())
+    	for (Vars_iter i = var_begin(), e = var_end(); i != e; ++i) {
+            if ((*i)->type() != dods_sequence_c && ((*i)->send_p() || (*i)->is_in_selection())) {
+                DBGN(cerr << __PRETTY_FUNCTION__ << "Calling " << (*i)->name() << "->read()" << endl);
                 (*i)->read();
-
-    	// Make sure the child member read() methods are called since
-    	// that is how the 'series' values work.
-    	set_read_p(false);
+            }
+    	}
 
     	++d_current;
     	return false;
diff --git a/tests/TestD4Sequence.h b/tests/TestD4Sequence.h
index b63aac9..dd34ac1 100644
--- a/tests/TestD4Sequence.h
+++ b/tests/TestD4Sequence.h
@@ -56,6 +56,7 @@ public:
     void set_series_values(bool);
     bool get_series_values() { return d_series_values; }
 
+    void set_length(int len) { d_len = len; }
     virtual int length() const { return d_len; }
 };
 
diff --git a/tests/TestInt32.cc b/tests/TestInt32.cc
index 1f1931b..94f49e5 100644
--- a/tests/TestInt32.cc
+++ b/tests/TestInt32.cc
@@ -36,6 +36,8 @@
 
 #include "config.h"
 
+//#define DODS_DEBUG
+
 #ifndef WIN32
 #include <unistd.h>
 #else
@@ -44,8 +46,6 @@
 #include <process.h>
 #endif
 
-//#define DODS_DEBUG
-
 #include "TestInt32.h"
 #include "debug.h"
 
@@ -112,6 +112,8 @@ bool TestInt32::read()
 		d_buf <<= 5;
 		if (!d_buf)
 			d_buf = 32;
+
+	    DBGN(cerr << __PRETTY_FUNCTION__ << "d_buf: " << d_buf << endl);
 	}
 	else {
 		d_buf = 123456789;
diff --git a/tests/TestStr.cc b/tests/TestStr.cc
index ea99c6c..4c11043 100644
--- a/tests/TestStr.cc
+++ b/tests/TestStr.cc
@@ -55,15 +55,16 @@ void
 TestStr::_duplicate(const TestStr &ts)
 {
     d_series_values = ts.d_series_values;
+    d_count = ts.d_count;
 }
 
 
-TestStr::TestStr(const string &n) : Str(n), d_series_values(false)
+TestStr::TestStr(const string &n) : Str(n), d_series_values(false), d_count(0)
 {
 }
 
 TestStr::TestStr(const string &n, const string &d)
-    : Str(n, d), d_series_values(false)
+    : Str(n, d), d_series_values(false), d_count(0)
 {
 }
 
@@ -99,15 +100,13 @@ TestStr::output_values(std::ostream &out)
 
 bool TestStr::read()
 {
-	static int count = 0;
-
 	if (read_p()) return true;
 
 	if (test_variable_sleep_interval > 0) sleep(test_variable_sleep_interval);
 
 	string dods_str_test;
 	if (get_series_values())
-	    dods_str_test = "Silly test string: " + long_to_string(++count);
+	    dods_str_test = "Silly test string: " + long_to_string(++d_count);
 	else
 	    dods_str_test = "Silly test string: 1";
 
diff --git a/tests/TestStr.h b/tests/TestStr.h
index 74d4cf2..3c7883c 100644
--- a/tests/TestStr.h
+++ b/tests/TestStr.h
@@ -48,6 +48,7 @@ using namespace libdap ;
 class TestStr: public Str, public TestCommon {
     bool d_series_values;
     void _duplicate(const TestStr &ts);
+    int d_count;
 
 public:
     TestStr(const string &n);
diff --git a/tests/atlocal.in b/tests/atlocal.in
index f5e34c8..e68e78d 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -2,4 +2,5 @@
 # Empty file. Use this to customize shell variables, et c., passed to the 
 # autotest-generated script.
 # 
-# : ${path_to_exec=`pwd`}
\ No newline at end of file
+# : ${path_to_exec=`pwd`}
+WORD_ORDER=@ac_word_order@
diff --git a/tests/das-test.cc b/tests/das-test.cc
index 0ce09b1..4fd9339 100644
--- a/tests/das-test.cc
+++ b/tests/das-test.cc
@@ -236,13 +236,12 @@ parser_driver(DAS &das, bool deref_alias, bool as_xml)
 void
 plain_driver(DAS &das, bool deref_alias)
 {
-    AttrTable *atp;
-    AttrTable *dummy;
-
     string name = "test";
-    atp = new AttrTable;
+    AttrTable *atp = new AttrTable;
     load_attr_table_ptr(atp);
-    dummy = das.get_table(name);
+#if 0
+    AttrTable *dummy = das.get_table(name);
+#endif
     das.add_table(name, atp);
 
     name = "test2";
diff --git a/tests/dds-testsuite/test.21.dds b/tests/dds-testsuite/test.21.dds
new file mode 100644
index 0000000..10fb509
--- /dev/null
+++ b/tests/dds-testsuite/test.21.dds
@@ -0,0 +1,6 @@
+
+# Zero-length array. jhrg 1/28/16
+
+Dataset {
+   Int32 a[0];
+} test.21;
diff --git a/tests/dds-testsuite/test.21.dds.base b/tests/dds-testsuite/test.21.dds.base
new file mode 100644
index 0000000..a87cb7c
--- /dev/null
+++ b/tests/dds-testsuite/test.21.dds.base
@@ -0,0 +1,5 @@
+DDS past semantic check
+DDS past full semantic check
+Dataset {
+    Int32 a[0];
+} test.21;
diff --git a/tests/dds-testsuite/test.22.dds b/tests/dds-testsuite/test.22.dds
new file mode 100644
index 0000000..021dff3
--- /dev/null
+++ b/tests/dds-testsuite/test.22.dds
@@ -0,0 +1,8 @@
+
+# Data containing a zero-length array. jhrg 1/28/16
+
+Dataset {
+   Int32 a;
+   Int32 b[10];
+   Int32 c[0];
+} test.22;
diff --git a/tests/dds-testsuite/test.22.dds.base b/tests/dds-testsuite/test.22.dds.base
new file mode 100644
index 0000000..83f5d62
--- /dev/null
+++ b/tests/dds-testsuite/test.22.dds.base
@@ -0,0 +1,7 @@
+DDS past semantic check
+DDS past full semantic check
+Dataset {
+    Int32 a;
+    Int32 b[10];
+    Int32 c[0];
+} test.22;
diff --git a/tests/dds-testsuite/test.23.dds b/tests/dds-testsuite/test.23.dds
new file mode 100644
index 0000000..db51893
--- /dev/null
+++ b/tests/dds-testsuite/test.23.dds
@@ -0,0 +1,8 @@
+
+# Data containing two zero-length arrays. jhrg 1/28/16
+
+Dataset {
+   Int32 a;
+   Int32 b[10];
+   Int32 c[4][0];
+} test.22;
diff --git a/tests/dds-testsuite/test.23.dds.base b/tests/dds-testsuite/test.23.dds.base
new file mode 100644
index 0000000..0a29043
--- /dev/null
+++ b/tests/dds-testsuite/test.23.dds.base
@@ -0,0 +1,7 @@
+DDS past semantic check
+DDS past full semantic check
+Dataset {
+    Int32 a;
+    Int32 b[10];
+    Int32 c[4][0];
+} test.22;
diff --git a/tests/dds-testsuite/test.24.dds b/tests/dds-testsuite/test.24.dds
new file mode 100644
index 0000000..364faee
--- /dev/null
+++ b/tests/dds-testsuite/test.24.dds
@@ -0,0 +1,8 @@
+
+# Data containing a zero-length array. jhrg 1/28/16
+
+Dataset {
+   Int32 a;
+   Int32 b[10];
+   Int32 c[0][4];
+} test.22;
diff --git a/tests/dds-testsuite/test.24.dds.base b/tests/dds-testsuite/test.24.dds.base
new file mode 100644
index 0000000..5cc7582
--- /dev/null
+++ b/tests/dds-testsuite/test.24.dds.base
@@ -0,0 +1,7 @@
+DDS past semantic check
+DDS past full semantic check
+Dataset {
+    Int32 a;
+    Int32 b[10];
+    Int32 c[0][4];
+} test.22;
diff --git a/tests/dds-testsuite/test.25.dds b/tests/dds-testsuite/test.25.dds
new file mode 100644
index 0000000..7a286d3
--- /dev/null
+++ b/tests/dds-testsuite/test.25.dds
@@ -0,0 +1,4 @@
+dataset {
+    Structure {
+    } exp;
+} data6;
diff --git a/tests/dds-testsuite/test.25.dds.base b/tests/dds-testsuite/test.25.dds.base
new file mode 100644
index 0000000..8ccbb62
--- /dev/null
+++ b/tests/dds-testsuite/test.25.dds.base
@@ -0,0 +1,6 @@
+DDS past semantic check
+DDS past full semantic check
+Dataset {
+    Structure {
+    } exp;
+} data6;
diff --git a/tests/dds-testsuite/test.26.dds b/tests/dds-testsuite/test.26.dds
new file mode 100644
index 0000000..c1d4b32
--- /dev/null
+++ b/tests/dds-testsuite/test.26.dds
@@ -0,0 +1,8 @@
+dataset {
+    Structure {
+	Int32 j;
+	Int32 i;
+	Structure {
+	} data;
+    } exp;
+} data6;
diff --git a/tests/dds-testsuite/test.26.dds.base b/tests/dds-testsuite/test.26.dds.base
new file mode 100644
index 0000000..2c5c244
--- /dev/null
+++ b/tests/dds-testsuite/test.26.dds.base
@@ -0,0 +1,10 @@
+DDS past semantic check
+DDS past full semantic check
+Dataset {
+    Structure {
+        Int32 j;
+        Int32 i;
+        Structure {
+        } data;
+    } exp;
+} data6;
diff --git a/tests/dmr-test.cc b/tests/dmr-test.cc
index 72f295f..7776e16 100644
--- a/tests/dmr-test.cc
+++ b/tests/dmr-test.cc
@@ -206,10 +206,10 @@ intern_data(DMR *dataset, /*const string &constraint,*/ bool series_values)
     // Mark all variables to be sent in their entirety. No CEs are used
     // when 'interning' variables' data.
     dataset->root()->set_send_p(true);
-
+#if 0
     Crc32 checksum;
-
-    dataset->root()->intern_data(checksum/*, *dataset, eval*/);
+#endif
+    dataset->root()->intern_data(/*checksum, *dataset, eval*/);
 }
 
 DMR *
@@ -236,6 +236,11 @@ read_data_plain(const string &file_name, bool debug)
         cis.read(chunk, chunk_size);
         // parse char * with given size
     	D4ParserSax2 parser;
+
+    	// Mirror the behavior in D4Connect where we are permissive with DAP4
+    	// data responses' parsing, as per Hyrax-98 in Jira. jhrg 4/13/16
+    	parser.set_strict(false);
+
     	// '-2' to discard the CRLF pair
         parser.intern(chunk, chunk_size-2, dmr, debug);
     }
diff --git a/tests/dmr-testsuite/test_array_1.xml.1.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.1.func_base
similarity index 94%
copy from tests/dmr-testsuite/test_array_1.xml.1.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.1.func_base
index 7d4706a..13c09d5 100644
--- a/tests/dmr-testsuite/test_array_1.xml.1.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.1.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>09dc38cc</Value>
+            <Value>76f4d278</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.2.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.2.func_base
similarity index 94%
copy from tests/dmr-testsuite/test_array_1.xml.2.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.2.func_base
index f287f4c..d1eb0f5 100644
--- a/tests/dmr-testsuite/test_array_1.xml.2.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.2.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>098e5a83</Value>
+            <Value>22a873db</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.3.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.3.func_base
similarity index 94%
copy from tests/dmr-testsuite/test_array_1.xml.3.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.3.func_base
index 107ddcf..aadd23c 100644
--- a/tests/dmr-testsuite/test_array_1.xml.3.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.3.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>ed282162</Value>
+            <Value>40e09f23</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.4.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.4.func_base
similarity index 94%
copy from tests/dmr-testsuite/test_array_1.xml.4.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.4.func_base
index c342554..862a9e3 100644
--- a/tests/dmr-testsuite/test_array_1.xml.4.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.4.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>73c874c1</Value>
+            <Value>089f333d</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.5.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.5.func_base
similarity index 94%
copy from tests/dmr-testsuite/test_array_1.xml.5.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.5.func_base
index 2eeef51..4a34f5b 100644
--- a/tests/dmr-testsuite/test_array_1.xml.5.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.5.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>976e0f20</Value>
+            <Value>6ad7dfc5</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.6.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.6.func_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_1.xml.6.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.6.func_base
index c1e4d4c..9cfeaae 100644
--- a/tests/dmr-testsuite/test_array_1.xml.6.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.6.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>cc090e5b</Value>
+            <Value>1184f064</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.7.func_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.7.func_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_1.xml.7.func_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.7.func_base
index ef377ad..aabd44a 100644
--- a/tests/dmr-testsuite/test_array_1.xml.7.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.7.func_base
@@ -11,7 +11,7 @@ Parse successful
     <Float64 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>cb1dffcf</Value>
+            <Value>3be04b16</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.intern_base
similarity index 83%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.intern_base
index 3e3534c..03726e5 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.intern_base
@@ -10,9 +10,6 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
     <Int32 name="x">
         <Dim size="5"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_1.xml.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_1.xml.trans_base
index 3e3534c..91317fa 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_1.xml.trans_base
@@ -11,7 +11,7 @@ Parse successful
     <Int32 name="x">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
+            <Value>ebd5bedf</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_10.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_10.xml.intern_base
similarity index 82%
copy from tests/dmr-testsuite/test_array_10.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_10.xml.intern_base
index cbd7697..cb3703f 100644
--- a/tests/dmr-testsuite/test_array_10.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_10.xml.intern_base
@@ -18,16 +18,10 @@ Parse successful
     <Dimension name="d2" size="3"/>
     <Opaque name="o">
         <Dim name="/d1"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>3d021e3e</Value>
-        </Attribute>
     </Opaque>
     <Opaque name="p">
         <Dim name="/d1"/>
         <Dim name="/d2"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>c9ba1dbe</Value>
-        </Attribute>
     </Opaque>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_10.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_10.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_10.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_10.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_11.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_11.xml.intern_base
similarity index 85%
copy from tests/dmr-testsuite/test_array_11.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_11.xml.intern_base
index 0e3f36e..19701dd 100644
--- a/tests/dmr-testsuite/test_array_11.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_11.xml.intern_base
@@ -28,16 +28,10 @@ Parse successful
     </Enumeration>
     <Enum name="e1" enum="/colors">
         <Dim name="/d1"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>2c20d228</Value>
-        </Attribute>
     </Enum>
     <Enum name="e2" enum="/colors">
         <Dim name="/d1"/>
         <Dim name="/d2"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>c7a0f194</Value>
-        </Attribute>
     </Enum>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_11.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_11.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_11.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_11.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_12.xml.intern_base
similarity index 52%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_12.xml.intern_base
index 3e3534c..c83cac0 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_12.xml.intern_base
@@ -1,20 +1,23 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
     </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
-        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 The data:
-{ {123456789, 123456789, 123456789, 123456789, 123456789} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/big-endian/test_array_12.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_12.xml.trans_base
new file mode 100644
index 0000000..306fe92
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_array_12.xml.trans_base
@@ -0,0 +1,29 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>ebd5bedf</Value>
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>00000000</Value>
+        </Attribute>
+    </Int32>
+</Dataset>
+
+The data:
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/big-endian/test_array_13.xml.intern_base b/tests/dmr-testsuite/big-endian/test_array_13.xml.intern_base
new file mode 100644
index 0000000..4dde012
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_array_13.xml.intern_base
@@ -0,0 +1,25 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="4"/>
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="4"/>
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+The data:
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {{},{},{},{}} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_13.xml.trans_base
similarity index 50%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_13.xml.trans_base
index 7e3c295..21e4274 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_13.xml.trans_base
@@ -1,22 +1,31 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
         <Dim size="4"/>
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>ebd5bedf</Value>
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
         <Dim size="4"/>
+        <Dim size="0"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            <Value>00000000</Value>
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789}} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {{},{},{},{}} }
diff --git a/tests/dmr-testsuite/big-endian/test_array_14.xml.intern_base b/tests/dmr-testsuite/big-endian/test_array_14.xml.intern_base
new file mode 100644
index 0000000..99eeb81
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_array_14.xml.intern_base
@@ -0,0 +1,25 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Dim size="4"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Dim size="4"/>
+    </Int32>
+</Dataset>
+
+The data:
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_14.xml.trans_base
similarity index 50%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_14.xml.trans_base
index 7e3c295..84f92ae 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_14.xml.trans_base
@@ -1,22 +1,31 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
         <Dim size="4"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>ebd5bedf</Value>
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            <Value>00000000</Value>
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789}} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_2.xml.intern_base
similarity index 87%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_2.xml.intern_base
index 7e3c295..363c92b 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_2.xml.intern_base
@@ -12,9 +12,6 @@ Parse successful
     <Int32 name="x">
         <Dim size="5"/>
         <Dim size="4"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_2.xml.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_2.xml.trans_base
index 7e3c295..033eb02 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_2.xml.trans_base
@@ -13,7 +13,7 @@ Parse successful
         <Dim size="5"/>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            <Value>813ab7f7</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.1.trans_base
similarity index 58%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.1.dmr.1.trans_base
index 99e0353..fddf8f8 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.1.trans_base
@@ -2,23 +2,32 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>d5c902a7</Value>
+        </Attribute>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>d2207316</Value>
         </Attribute>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {99.999, 99.999, 99.999, 99.999, 99.999}, {"Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.2.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.1.dmr.2.trans_base
index 99e0353..90e228f 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.2.trans_base
@@ -2,23 +2,26 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
-    <Dimension name="row" size="5"/>
+    <Dimension name="row" size="2"/>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>55708e52</Value>
         </Attribute>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.3.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.1.dmr.3.trans_base
index 99e0353..80ade42 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.3.trans_base
@@ -2,23 +2,24 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
-    <Dimension name="row" size="5"/>
     <String name="x">
-        <Dim name="/row"/>
-        <Dim size="3"/>
+        <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>55708e52</Value>
         </Attribute>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.4.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.1.dmr.4.trans_base
index 99e0353..80ade42 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.4.trans_base
@@ -2,23 +2,24 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
-    <Dimension name="row" size="5"/>
     <String name="x">
-        <Dim name="/row"/>
-        <Dim size="3"/>
+        <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>55708e52</Value>
         </Attribute>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.5.trans_base
similarity index 60%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.1.dmr.5.trans_base
index 99e0353..8943261 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_3.1.dmr.5.trans_base
@@ -2,9 +2,12 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
@@ -13,12 +16,12 @@ Parse successful
     <Dimension name="row" size="5"/>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>d2207316</Value>
         </Attribute>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.xml.intern_base
similarity index 89%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.xml.intern_base
index 99e0353..aa16004 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_3.xml.intern_base
@@ -14,9 +14,6 @@ Parse successful
     <String name="x">
         <Dim name="/row"/>
         <Dim size="3"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
-        </Attribute>
     </String>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_3.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_3.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.1.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_4.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.3.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_4.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.4.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.4.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_4.xml.4.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.5.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.5.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_4.xml.5.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.5.trans_base
index 21e7193..c8bbafe 100644
--- a/tests/dmr-testsuite/test_array_4.xml.5.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_4.xml.5.trans_base
@@ -64,14 +64,14 @@ Parse successful
         <Dim size="1"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f6d1f7e</Value>
+            <Value>db481544</Value>
         </Attribute>
     </Int16>
     <Int32 name="c">
         <Dim size="3"/>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46997ac6</Value>
+            <Value>fe77c1af</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_4.xml.6.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.6.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_4.xml.6.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.6.trans_base
index 8c45c5c..e2094dd 100644
--- a/tests/dmr-testsuite/test_array_4.xml.6.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_4.xml.6.trans_base
@@ -56,7 +56,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>e787d509</Value>
+            <Value>dff6bc53</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_4.xml.7.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.7.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_4.xml.7.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.7.trans_base
index 22a14a3..1701da8 100644
--- a/tests/dmr-testsuite/test_array_4.xml.7.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_4.xml.7.trans_base
@@ -56,7 +56,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>7c5e1ddb</Value>
+            <Value>b07325db</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_4.xml.8.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.8.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_4.xml.8.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.8.trans_base
index fe7b5fa..0574df3 100644
--- a/tests/dmr-testsuite/test_array_4.xml.8.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_4.xml.8.trans_base
@@ -55,7 +55,7 @@ Parse successful
         <Dim size="1"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>114189cb</Value>
+            <Value>a5f4caa5</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_4.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.intern_base
similarity index 77%
copy from tests/dmr-testsuite/test_array_4.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.intern_base
index 6ac8b35..74583b3 100644
--- a/tests/dmr-testsuite/test_array_4.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_4.xml.intern_base
@@ -56,79 +56,46 @@ Parse successful
     <Byte name="a">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>bb99ff8a</Value>
-        </Attribute>
     </Byte>
     <Int16 name="b">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>4a491560</Value>
-        </Attribute>
     </Int16>
     <Int32 name="c">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46997ac6</Value>
-        </Attribute>
     </Int32>
     <UInt16 name="d">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>aba172e1</Value>
-        </Attribute>
     </UInt16>
     <UInt32 name="e">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6dee122e</Value>
-        </Attribute>
     </UInt32>
     <Float32 name="f">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>03d5492a</Value>
-        </Attribute>
     </Float32>
     <Float64 name="g">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d6764865</Value>
-        </Attribute>
     </Float64>
     <String name="h">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>2004aea7</Value>
-        </Attribute>
     </String>
     <URL name="i">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>546a7c3d</Value>
-        </Attribute>
     </URL>
     <Int32 name="x">
         <Dim name="/row"/>
         <Dim size="5"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>e787d509</Value>
-        </Attribute>
     </Int32>
     <Int32 name="y">
         <Dim size="5"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_4.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_4.xml.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_4.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_4.xml.trans_base
index 6ac8b35..ab2cb71 100644
--- a/tests/dmr-testsuite/test_array_4.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_4.xml.trans_base
@@ -64,42 +64,42 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>4a491560</Value>
+            <Value>d5f4036f</Value>
         </Attribute>
     </Int16>
     <Int32 name="c">
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46997ac6</Value>
+            <Value>fe77c1af</Value>
         </Attribute>
     </Int32>
     <UInt16 name="d">
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>aba172e1</Value>
+            <Value>4faa58be</Value>
         </Attribute>
     </UInt16>
     <UInt32 name="e">
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6dee122e</Value>
+            <Value>284eeb3e</Value>
         </Attribute>
     </UInt32>
     <Float32 name="f">
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>03d5492a</Value>
+            <Value>bb730f08</Value>
         </Attribute>
     </Float32>
     <Float64 name="g">
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d6764865</Value>
+            <Value>9de7e4c6</Value>
         </Attribute>
     </Float64>
     <String name="h">
@@ -120,14 +120,14 @@ Parse successful
         <Dim name="/row"/>
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>e787d509</Value>
+            <Value>dff6bc53</Value>
         </Attribute>
     </Int32>
     <Int32 name="y">
         <Dim size="5"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            <Value>813ab7f7</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_5.xml.1.func_base b/tests/dmr-testsuite/big-endian/test_array_5.xml.1.func_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_5.xml.1.func_base
copy to tests/dmr-testsuite/big-endian/test_array_5.xml.1.func_base
index 969a094..babffd3 100644
--- a/tests/dmr-testsuite/test_array_5.xml.1.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_5.xml.1.func_base
@@ -29,7 +29,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>f02c5eb0</Value>
+            <Value>97b45167</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_5.xml.2.func_base b/tests/dmr-testsuite/big-endian/test_array_5.xml.2.func_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_5.xml.2.func_base
copy to tests/dmr-testsuite/big-endian/test_array_5.xml.2.func_base
index 6e59a3b..fce95ca 100644
--- a/tests/dmr-testsuite/test_array_5.xml.2.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_5.xml.2.func_base
@@ -29,7 +29,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>f3c062d7</Value>
+            <Value>fb56d271</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_5.xml.3.func_base b/tests/dmr-testsuite/big-endian/test_array_5.xml.3.func_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_5.xml.3.func_base
copy to tests/dmr-testsuite/big-endian/test_array_5.xml.3.func_base
index e9bdae6..13b7bc9 100644
--- a/tests/dmr-testsuite/test_array_5.xml.3.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_5.xml.3.func_base
@@ -29,7 +29,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>38babd01</Value>
+            <Value>ad7353da</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_5.xml.4.func_base b/tests/dmr-testsuite/big-endian/test_array_5.xml.4.func_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_5.xml.4.func_base
copy to tests/dmr-testsuite/big-endian/test_array_5.xml.4.func_base
index 7c5d76a..7650bda 100644
--- a/tests/dmr-testsuite/test_array_5.xml.4.func_base
+++ b/tests/dmr-testsuite/big-endian/test_array_5.xml.4.func_base
@@ -29,7 +29,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>77e90ef8</Value>
+            <Value>b4a31cf2</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_5.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_5.xml.intern_base
similarity index 80%
copy from tests/dmr-testsuite/test_array_5.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_5.xml.intern_base
index 3615f69..ed63c69 100644
--- a/tests/dmr-testsuite/test_array_5.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_5.xml.intern_base
@@ -28,30 +28,18 @@ Parse successful
     <Int8 name="a">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>82c3d109</Value>
-        </Attribute>
     </Int8>
     <UInt8 name="b">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>bb99ff8a</Value>
-        </Attribute>
     </UInt8>
     <Int64 name="c">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>38d2ecf4</Value>
-        </Attribute>
     </Int64>
     <UInt64 name="d">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46d91cd0</Value>
-        </Attribute>
     </UInt64>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_5.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_5.xml.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_5.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_5.xml.trans_base
index 3615f69..9a6b4d7 100644
--- a/tests/dmr-testsuite/test_array_5.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_5.xml.trans_base
@@ -43,7 +43,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>38d2ecf4</Value>
+            <Value>9489fef8</Value>
         </Attribute>
     </Int64>
     <UInt64 name="d">
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.1.trans_base
similarity index 99%
copy from tests/dmr-testsuite/test_array_6.1.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.1.xml.1.trans_base
index d724285..2663ef0 100644
--- a/tests/dmr-testsuite/test_array_6.1.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.1.trans_base
@@ -27,7 +27,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>108a44dc</Value>
+            <Value>1729299a</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.2.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_6.1.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.1.xml.2.trans_base
index 2867a7d..df7f12d 100644
--- a/tests/dmr-testsuite/test_array_6.1.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.2.trans_base
@@ -26,7 +26,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim size="1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>9dfcdf19</Value>
+            <Value>0bfbaba9</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.3.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_6.1.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.1.xml.3.trans_base
index ae2d8da..38a9a2b 100644
--- a/tests/dmr-testsuite/test_array_6.1.xml.3.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.3.trans_base
@@ -27,7 +27,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>dcf2f8b1</Value>
+            <Value>e5bb6ca1</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.4.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.4.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_6.1.xml.4.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.1.xml.4.trans_base
index 380c47f..b87b52e 100644
--- a/tests/dmr-testsuite/test_array_6.1.xml.4.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.1.xml.4.trans_base
@@ -25,7 +25,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim size="1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>114189cb</Value>
+            <Value>a5f4caa5</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.1.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_6.2.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.2.xml.1.trans_base
index 3eb7cfc..4bdca20 100644
--- a/tests/dmr-testsuite/test_array_6.2.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.1.trans_base
@@ -23,7 +23,7 @@ Parse successful
         </Int32>
         <Int32 name="j"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>2da3e534</Value>
+            <Value>70edae12</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.2.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_6.2.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.2.xml.2.trans_base
index eda3ac9..199eac0 100644
--- a/tests/dmr-testsuite/test_array_6.2.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.2.trans_base
@@ -22,7 +22,7 @@ Parse successful
             <Dim name="/col"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46997ac6</Value>
+            <Value>fe77c1af</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.3.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_6.2.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.2.xml.3.trans_base
index e29c220..17ba69b 100644
--- a/tests/dmr-testsuite/test_array_6.2.xml.3.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.3.trans_base
@@ -20,7 +20,7 @@ Parse successful
             <Dim size="2"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>114189cb</Value>
+            <Value>a5f4caa5</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.4.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.4.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_6.2.xml.4.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.2.xml.4.trans_base
index 5fede31..539878a 100644
--- a/tests/dmr-testsuite/test_array_6.2.xml.4.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.4.trans_base
@@ -21,7 +21,7 @@ Parse successful
             <Dim size="2"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            <Value>19f0a861</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.5.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.5.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_6.2.xml.5.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.2.xml.5.trans_base
index 4458da6..16cc5b5 100644
--- a/tests/dmr-testsuite/test_array_6.2.xml.5.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.2.xml.5.trans_base
@@ -17,7 +17,7 @@ Parse successful
     <Structure name="a">
         <Int32 name="j"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.xml.1.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_6.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.xml.1.trans_base
index 91107f7..0f7d643 100644
--- a/tests/dmr-testsuite/test_array_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.xml.1.trans_base
@@ -21,7 +21,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d9ce8457</Value>
+            <Value>7aae3234</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.xml.2.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_6.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.xml.2.trans_base
index aedafc8..086d0c9 100644
--- a/tests/dmr-testsuite/test_array_6.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.xml.2.trans_base
@@ -21,7 +21,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a439ad98</Value>
+            <Value>8e85455a</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.xml.3.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_6.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.xml.3.trans_base
index 4fdcbf4..f1f4044 100644
--- a/tests/dmr-testsuite/test_array_6.xml.3.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.xml.3.trans_base
@@ -20,7 +20,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f7d7361</Value>
+            <Value>dd9c4640</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_6.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.xml.intern_base
similarity index 91%
copy from tests/dmr-testsuite/test_array_6.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.xml.intern_base
index 91107f7..6bfb604 100644
--- a/tests/dmr-testsuite/test_array_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.xml.intern_base
@@ -20,9 +20,6 @@ Parse successful
         <Int32 name="j"/>
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d9ce8457</Value>
-        </Attribute>
     </Structure>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_6.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_6.xml.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_6.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_6.xml.trans_base
index 91107f7..0f7d643 100644
--- a/tests/dmr-testsuite/test_array_6.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_6.xml.trans_base
@@ -21,7 +21,7 @@ Parse successful
         <Dim name="/row"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d9ce8457</Value>
+            <Value>7aae3234</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.1.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_7.1.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.1.xml.1.trans_base
index e31c178..2f438bf 100644
--- a/tests/dmr-testsuite/test_array_7.1.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.1.trans_base
@@ -23,7 +23,7 @@ Parse successful
         </Int32>
         <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>0193e1cb</Value>
+            <Value>d15702b1</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.2.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_7.1.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.1.xml.2.trans_base
index ed6de1b..4ed6e71 100644
--- a/tests/dmr-testsuite/test_array_7.1.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.2.trans_base
@@ -22,7 +22,7 @@ Parse successful
             <Dim name="/col"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b43945c2</Value>
+            <Value>74c36937</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.3.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_7.1.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.1.xml.3.trans_base
index b3a34ee..8438568 100644
--- a/tests/dmr-testsuite/test_array_7.1.xml.3.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.3.trans_base
@@ -20,7 +20,7 @@ Parse successful
             <Dim size="1"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            <Value>19f0a861</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.4.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.4.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_7.1.xml.4.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.1.xml.4.trans_base
index 9456876..7fdbfc5 100644
--- a/tests/dmr-testsuite/test_array_7.1.xml.4.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.4.trans_base
@@ -20,7 +20,7 @@ Parse successful
             <Dim size="2"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d9ce8457</Value>
+            <Value>7aae3234</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.5.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.5.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_7.1.xml.5.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.1.xml.5.trans_base
index 203b524..1828194 100644
--- a/tests/dmr-testsuite/test_array_7.1.xml.5.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.5.trans_base
@@ -23,7 +23,7 @@ Parse successful
         </Int32>
         <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>0ee272dc</Value>
+            <Value>fca08a32</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.6.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.6.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_7.1.xml.6.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.1.xml.6.trans_base
index 8b3fe56..564b4ba 100644
--- a/tests/dmr-testsuite/test_array_7.1.xml.6.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.1.xml.6.trans_base
@@ -22,7 +22,7 @@ Parse successful
             <Dim name="/col"/>
         </Int32>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a439ad98</Value>
+            <Value>8e85455a</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.1.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_7.2.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.2.xml.1.trans_base
index 2370abe..8a0f2b5 100644
--- a/tests/dmr-testsuite/test_array_7.2.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.1.trans_base
@@ -24,7 +24,7 @@ Parse successful
         </Int32>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>82a5d12e</Value>
+            <Value>7d4476d6</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.2.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_7.2.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.2.xml.2.trans_base
index ccb2b4c..8a1c6ea 100644
--- a/tests/dmr-testsuite/test_array_7.2.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.2.trans_base
@@ -23,7 +23,7 @@ Parse successful
         </Int32>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d2cdfa69</Value>
+            <Value>50e5b756</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.3.trans_base
similarity index 97%
copy from tests/dmr-testsuite/test_array_7.2.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.2.xml.3.trans_base
index 5a0664c..a505196 100644
--- a/tests/dmr-testsuite/test_array_7.2.xml.3.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.3.trans_base
@@ -24,7 +24,7 @@ Parse successful
         </Int32>
         <Dim size="1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d2cdfa69</Value>
+            <Value>50e5b756</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.4.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.4.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_7.2.xml.4.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.2.xml.4.trans_base
index 176958c..f3cce6e 100644
--- a/tests/dmr-testsuite/test_array_7.2.xml.4.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.2.xml.4.trans_base
@@ -23,7 +23,7 @@ Parse successful
         </Int32>
         <Dim size="1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f7d7361</Value>
+            <Value>dd9c4640</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.xml.1.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_7.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.xml.1.trans_base
index ab441a9..8307f1d 100644
--- a/tests/dmr-testsuite/test_array_7.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.xml.1.trans_base
@@ -15,7 +15,7 @@ Parse successful
         <String name="s"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>766f5e81</Value>
+            <Value>97f99b2f</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.xml.2.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_7.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.xml.2.trans_base
index 9c915b2..c4a467e 100644
--- a/tests/dmr-testsuite/test_array_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.xml.2.trans_base
@@ -14,7 +14,7 @@ Parse successful
         <Int32 name="i1"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f7d7361</Value>
+            <Value>dd9c4640</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.xml.3.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_7.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.xml.3.trans_base
index 276ba96..eca8164 100644
--- a/tests/dmr-testsuite/test_array_7.xml.3.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.xml.3.trans_base
@@ -15,7 +15,7 @@ Parse successful
         <String name="s"/>
         <Dim size="1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
+            <Value>c6f12441</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.xml.4.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.xml.4.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_array_7.xml.4.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.xml.4.trans_base
index 911fb46..9ebb32a 100644
--- a/tests/dmr-testsuite/test_array_7.xml.4.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.xml.4.trans_base
@@ -14,7 +14,7 @@ Parse successful
         <Int32 name="i1"/>
         <Dim size="1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            <Value>19f0a861</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_7.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.xml.intern_base
similarity index 89%
copy from tests/dmr-testsuite/test_array_7.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.xml.intern_base
index ab441a9..da7e14b 100644
--- a/tests/dmr-testsuite/test_array_7.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.xml.intern_base
@@ -14,9 +14,6 @@ Parse successful
         <Int32 name="i1"/>
         <String name="s"/>
         <Dim size="2"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>766f5e81</Value>
-        </Attribute>
     </Sequence>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_7.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_7.xml.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_7.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_7.xml.trans_base
index ab441a9..8307f1d 100644
--- a/tests/dmr-testsuite/test_array_7.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_7.xml.trans_base
@@ -15,7 +15,7 @@ Parse successful
         <String name="s"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>766f5e81</Value>
+            <Value>97f99b2f</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_8.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_array_8.xml.1.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_array_8.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_8.xml.1.trans_base
index 823d66d..6dd1ac9 100644
--- a/tests/dmr-testsuite/test_array_8.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_8.xml.1.trans_base
@@ -18,7 +18,7 @@ Parse successful
         <Dim size="1"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f7d7361</Value>
+            <Value>dd9c4640</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_8.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_8.xml.intern_base
similarity index 93%
copy from tests/dmr-testsuite/test_array_8.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_8.xml.intern_base
index 03083b6..90ed9c2 100644
--- a/tests/dmr-testsuite/test_array_8.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_8.xml.intern_base
@@ -18,9 +18,6 @@ Parse successful
         <String name="s"/>
         <Dim size="2"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>f95dfb1c</Value>
-        </Attribute>
     </Sequence>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_8.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_8.xml.trans_base
similarity index 98%
copy from tests/dmr-testsuite/test_array_8.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_8.xml.trans_base
index 03083b6..f9168fb 100644
--- a/tests/dmr-testsuite/test_array_8.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_8.xml.trans_base
@@ -19,7 +19,7 @@ Parse successful
         <Dim size="2"/>
         <Dim name="/col"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>f95dfb1c</Value>
+            <Value>32c07f3f</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/big-endian/test_array_9.xml.intern_base b/tests/dmr-testsuite/big-endian/test_array_9.xml.intern_base
new file mode 100644
index 0000000..2f53699
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_array_9.xml.intern_base
@@ -0,0 +1,17 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+The data:
+{ {} }
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_array_9.xml.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_array_9.xml.trans_base
index 3e3534c..e24d475 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_array_9.xml.trans_base
@@ -1,20 +1,20 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
     <Int32 name="x">
-        <Dim size="5"/>
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
     <Int32 name="x">
-        <Dim size="5"/>
+        <Dim size="0"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
+            <Value>00000000</Value>
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {123456789, 123456789, 123456789, 123456789, 123456789} }
+{ {} }
diff --git a/tests/dmr-testsuite/test_simple_1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_1.xml.intern_base
similarity index 75%
copy from tests/dmr-testsuite/test_simple_1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_1.xml.intern_base
index ae52ffd..4b6ab97 100644
--- a/tests/dmr-testsuite/test_simple_1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_1.xml.intern_base
@@ -6,11 +6,7 @@ Parse successful
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
-    <Int32 name="x">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
-        </Attribute>
-    </Int32>
+    <Int32 name="x"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_1.xml.trans_base
similarity index 94%
copy from tests/dmr-testsuite/test_simple_1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_1.xml.trans_base
index ae52ffd..c6f1d8f 100644
--- a/tests/dmr-testsuite/test_simple_1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_1.xml.trans_base
@@ -8,7 +8,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
     <Int32 name="x">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_10.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_10.xml.intern_base
similarity index 75%
copy from tests/dmr-testsuite/test_simple_10.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_10.xml.intern_base
index b9b6c49..a265226 100644
--- a/tests/dmr-testsuite/test_simple_10.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_10.xml.intern_base
@@ -6,11 +6,7 @@ Parse successful
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_10.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_10">
-    <Opaque name="o">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>470b99f4</Value>
-        </Attribute>
-    </Opaque>
+    <Opaque name="o"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_10.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_10.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_10.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_10.xml.trans_base
diff --git a/tests/dmr-testsuite/big-endian/test_simple_2.xml.intern_base b/tests/dmr-testsuite/big-endian/test_simple_2.xml.intern_base
new file mode 100644
index 0000000..09b8340
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_simple_2.xml.intern_base
@@ -0,0 +1,37 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_2">
+    <Byte name="b"/>
+    <Int8 name="i8"/>
+    <UInt8 name="ui8"/>
+    <Int16 name="i16"/>
+    <UInt16 name="ui16"/>
+    <Int32 name="i32"/>
+    <UInt32 name="ui32"/>
+    <Int64 name="i64"/>
+    <UInt64 name="ui64"/>
+    <Float32 name="f32"/>
+    <Float64 name="f64"/>
+    <String name="s"/>
+    <URL name="u"/>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_2">
+    <Byte name="b"/>
+    <Int8 name="i8"/>
+    <UInt8 name="ui8"/>
+    <Int16 name="i16"/>
+    <UInt16 name="ui16"/>
+    <Int32 name="i32"/>
+    <UInt32 name="ui32"/>
+    <Int64 name="i64"/>
+    <UInt64 name="ui64"/>
+    <Float32 name="f32"/>
+    <Float64 name="f64"/>
+    <String name="s"/>
+    <URL name="u"/>
+</Dataset>
+
+The data:
+{ 255, 127, 255, 32000, 64000, 123456789, 4026531840, 72057594037927935, 18446744073709551615, 99.999, 99.999, "Silly test string: 1", "http://dcz.gso.uri.edu/avhrr-archive/archive.html" }
diff --git a/tests/dmr-testsuite/test_simple_2.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_2.xml.trans_base
similarity index 91%
copy from tests/dmr-testsuite/test_simple_2.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_2.xml.trans_base
index ccd53c4..a715c7d 100644
--- a/tests/dmr-testsuite/test_simple_2.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_2.xml.trans_base
@@ -35,27 +35,27 @@ Parse successful
     </UInt8>
     <Int16 name="i16">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f6d1f7e</Value>
+            <Value>db481544</Value>
         </Attribute>
     </Int16>
     <UInt16 name="ui16">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>1cb109fd</Value>
+            <Value>af8a1bc8</Value>
         </Attribute>
     </UInt16>
     <Int32 name="i32">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Int32>
     <UInt32 name="ui32">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>9cf92d00</Value>
+            <Value>a722c9bb</Value>
         </Attribute>
     </UInt32>
     <Int64 name="i64">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>0c463091</Value>
+            <Value>070fd9fa</Value>
         </Attribute>
     </Int64>
     <UInt64 name="ui64">
@@ -65,12 +65,12 @@ Parse successful
     </UInt64>
     <Float32 name="f32">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>1ae0f285</Value>
+            <Value>39293f9c</Value>
         </Attribute>
     </Float32>
     <Float64 name="f64">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>946c3797</Value>
+            <Value>5ca72579</Value>
         </Attribute>
     </Float64>
     <String name="s">
diff --git a/tests/dmr-testsuite/test_simple_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_3.xml.intern_base
similarity index 82%
copy from tests/dmr-testsuite/test_simple_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_3.xml.intern_base
index 95c0db6..ee45c20 100644
--- a/tests/dmr-testsuite/test_simple_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_3.xml.intern_base
@@ -14,11 +14,7 @@ Parse successful
         <EnumConst name="econst1" value="1"/>
         <EnumConst name="econst2" value="2"/>
     </Enumeration>
-    <Int32 name="x">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
-        </Attribute>
-    </Int32>
+    <Int32 name="x"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_3.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_3.xml.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_3.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_3.xml.trans_base
index 95c0db6..4e6e734 100644
--- a/tests/dmr-testsuite/test_simple_3.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_3.xml.trans_base
@@ -16,7 +16,7 @@ Parse successful
     </Enumeration>
     <Int32 name="x">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_4.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_4.xml.intern_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_4.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_4.xml.intern_base
index df5b730..14f262e 100644
--- a/tests/dmr-testsuite/test_simple_4.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_4.xml.intern_base
@@ -14,9 +14,6 @@ Parse successful
         <Attribute name="long_name" type="String">
             <Value>x_axis_value</Value>
         </Attribute>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_4.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_4.xml.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_4.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_4.xml.trans_base
index df5b730..05df574 100644
--- a/tests/dmr-testsuite/test_simple_4.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_4.xml.trans_base
@@ -15,7 +15,7 @@ Parse successful
             <Value>x_axis_value</Value>
         </Attribute>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Int32>
 </Dataset>
diff --git a/tests/dmr-testsuite/big-endian/test_simple_5.xml.intern_base b/tests/dmr-testsuite/big-endian/test_simple_5.xml.intern_base
new file mode 100644
index 0000000..74bd6ba
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_simple_5.xml.intern_base
@@ -0,0 +1,29 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_5.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_5">
+    <Int8 name="i"/>
+    <Int16 name="j"/>
+    <Int32 name="k"/>
+    <Int64 name="z"/>
+    <Byte name="ui"/>
+    <UInt8 name="uii"/>
+    <UInt16 name="uj"/>
+    <UInt32 name="uk"/>
+    <UInt64 name="uz"/>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_5.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_5">
+    <Int8 name="i"/>
+    <Int16 name="j"/>
+    <Int32 name="k"/>
+    <Int64 name="z"/>
+    <Byte name="ui"/>
+    <UInt8 name="uii"/>
+    <UInt16 name="uj"/>
+    <UInt32 name="uk"/>
+    <UInt64 name="uz"/>
+</Dataset>
+
+The data:
+{ 127, 32000, 123456789, 72057594037927935, 255, 255, 64000, 4026531840, 18446744073709551615 }
diff --git a/tests/dmr-testsuite/test_simple_5.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_5.xml.trans_base
similarity index 91%
copy from tests/dmr-testsuite/test_simple_5.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_5.xml.trans_base
index e3be832..4794643 100644
--- a/tests/dmr-testsuite/test_simple_5.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_5.xml.trans_base
@@ -21,17 +21,17 @@ Parse successful
     </Int8>
     <Int16 name="j">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6f6d1f7e</Value>
+            <Value>db481544</Value>
         </Attribute>
     </Int16>
     <Int32 name="k">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Int32>
     <Int64 name="z">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>0c463091</Value>
+            <Value>070fd9fa</Value>
         </Attribute>
     </Int64>
     <Byte name="ui">
@@ -46,12 +46,12 @@ Parse successful
     </UInt8>
     <UInt16 name="uj">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>1cb109fd</Value>
+            <Value>af8a1bc8</Value>
         </Attribute>
     </UInt16>
     <UInt32 name="uk">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>9cf92d00</Value>
+            <Value>a722c9bb</Value>
         </Attribute>
     </UInt32>
     <UInt64 name="uz">
diff --git a/tests/dmr-testsuite/test_simple_6.1.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.1.xml.1.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_6.1.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.1.xml.1.trans_base
index 457c089..c7eaef9 100644
--- a/tests/dmr-testsuite/test_simple_6.1.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.1.xml.1.trans_base
@@ -17,7 +17,7 @@ Parse successful
             <Int32 name="i2"/>
         </Structure>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/big-endian/test_simple_6.2.xml.intern_base b/tests/dmr-testsuite/big-endian/test_simple_6.2.xml.intern_base
new file mode 100644
index 0000000..014c72e
--- /dev/null
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.2.xml.intern_base
@@ -0,0 +1,13 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
+</Dataset>
+
+The data:
+{ {  } }
diff --git a/tests/dmr-testsuite/test_simple_10.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.2.xml.trans_base
similarity index 54%
copy from tests/dmr-testsuite/test_simple_10.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.2.xml.trans_base
index b9b6c49..b393e3f 100644
--- a/tests/dmr-testsuite/test_simple_10.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.2.xml.trans_base
@@ -1,17 +1,17 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_10.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_10">
-    <Opaque name="o"/>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_10.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_10">
-    <Opaque name="o">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>470b99f4</Value>
+            <Value>00000000</Value>
         </Attribute>
-    </Opaque>
+    </Structure>
 </Dataset>
 
 The data:
-{ 1,2,3,4,5 }
+{ {  } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.3.xml.intern_base
similarity index 58%
copy from tests/dmr-testsuite/test_simple_6.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.3.xml.intern_base
index b28256d..c0ea6cc 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.3.xml.intern_base
@@ -1,22 +1,21 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
-        </Attribute>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 The data:
-{ { 123456789, "Silly test string: 1" } }
+{ { 123456789, "Silly test string: 1", {  } } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.3.xml.trans_base
similarity index 62%
copy from tests/dmr-testsuite/test_simple_6.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.3.xml.trans_base
index b28256d..d260d64 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.3.xml.trans_base
@@ -1,22 +1,24 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
+            <Value>63dceb61</Value>
         </Attribute>
     </Structure>
 </Dataset>
 
 The data:
-{ { 123456789, "Silly test string: 1" } }
+{ { 123456789, "Silly test string: 1", {  } } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.xml.1.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_6.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.xml.1.trans_base
index b28256d..e94b594 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.xml.1.trans_base
@@ -13,7 +13,7 @@ Parse successful
         <Int32 name="i1"/>
         <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
+            <Value>63dceb61</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_6.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.xml.2.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_6.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.xml.2.trans_base
index 77afc2a..78f1a67 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.xml.2.trans_base
@@ -12,7 +12,7 @@ Parse successful
     <Structure name="s">
         <Int32 name="i1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            <Value>cff36b1c</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_6.xml.3.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.xml.3.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_6.xml.3.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.xml.intern_base
similarity index 84%
copy from tests/dmr-testsuite/test_simple_6.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.xml.intern_base
index b28256d..492e4be 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.xml.intern_base
@@ -12,9 +12,6 @@ Parse successful
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
-        </Attribute>
     </Structure>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_6.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_6.xml.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_6.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_6.xml.trans_base
index b28256d..e94b594 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_6.xml.trans_base
@@ -13,7 +13,7 @@ Parse successful
         <Int32 name="i1"/>
         <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
+            <Value>63dceb61</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_7.xml.1.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_simple_7.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_7.xml.1.trans_base
index af9fe17..4ce57c0 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_7.xml.1.trans_base
@@ -13,7 +13,7 @@ Parse successful
         <Int32 name="i1"/>
         <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
+            <Value>c6f12441</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_simple_7.xml.2.trans_base
similarity index 95%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_7.xml.2.trans_base
index 306fd93..37c4b11 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_7.xml.2.trans_base
@@ -12,7 +12,7 @@ Parse successful
     <Sequence name="s">
         <Int32 name="i1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            <Value>19f0a861</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_7.xml.intern_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_7.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_7.xml.intern_base
index af9fe17..1ab9b0e 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_7.xml.intern_base
@@ -12,9 +12,6 @@ Parse successful
     <Sequence name="s">
         <Int32 name="i1"/>
         <String name="s"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
-        </Attribute>
     </Sequence>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_7.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_7.xml.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_simple_7.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_7.xml.trans_base
index af9fe17..4ce57c0 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_7.xml.trans_base
@@ -13,7 +13,7 @@ Parse successful
         <Int32 name="i1"/>
         <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
+            <Value>c6f12441</Value>
         </Attribute>
     </Sequence>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_8.xml.1.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_simple_8.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_8.xml.1.trans_base
index 3ddf2c9..4aa16f2 100644
--- a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_8.xml.1.trans_base
@@ -17,7 +17,7 @@ Parse successful
             <String name="s"/>
         </Sequence>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
+            <Value>66950c7d</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_8.xml.2.trans_base b/tests/dmr-testsuite/big-endian/test_simple_8.xml.2.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_simple_8.xml.2.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_8.xml.2.trans_base
index 7dec4b0..61c3911 100644
--- a/tests/dmr-testsuite/test_simple_8.xml.2.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_8.xml.2.trans_base
@@ -16,7 +16,7 @@ Parse successful
             <String name="s"/>
         </Sequence>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>03a807fd</Value>
+            <Value>5bd779e9</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base b/tests/dmr-testsuite/big-endian/test_simple_8.xml.intern_base
similarity index 88%
copy from tests/dmr-testsuite/test_simple_8.xml.1.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_8.xml.intern_base
index 3ddf2c9..db42cfa 100644
--- a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_8.xml.intern_base
@@ -16,9 +16,6 @@ Parse successful
             <Int32 name="i1"/>
             <String name="s"/>
         </Sequence>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
-        </Attribute>
     </Structure>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_8.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_8.xml.trans_base
similarity index 96%
copy from tests/dmr-testsuite/test_simple_8.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_8.xml.trans_base
index 3ddf2c9..6336eaf 100644
--- a/tests/dmr-testsuite/test_simple_8.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_8.xml.trans_base
@@ -17,7 +17,7 @@ Parse successful
             <String name="s"/>
         </Sequence>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
+            <Value>c6f12441</Value>
         </Attribute>
     </Structure>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_9.1.xml.intern_base
similarity index 65%
copy from tests/dmr-testsuite/test_simple_9.1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_9.1.xml.intern_base
index 260bab2..42fff02 100644
--- a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_9.1.xml.intern_base
@@ -2,9 +2,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -19,9 +19,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -29,16 +29,8 @@ Parse successful
         <EnumConst name="dark" value="3"/>
         <EnumConst name="pitch" value="256"/>
     </Enumeration>
-    <Enum name="e" enum="/color">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>99f8b879</Value>
-        </Attribute>
-    </Enum>
-    <Enum name="f" enum="/shade">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a988dff7</Value>
-        </Attribute>
-    </Enum>
+    <Enum name="e" enum="/color"/>
+    <Enum name="f" enum="/shade"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_9.1.xml.trans_base
similarity index 80%
copy from tests/dmr-testsuite/test_simple_9.1.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_9.1.xml.trans_base
index 260bab2..f5d2d7f 100644
--- a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_9.1.xml.trans_base
@@ -2,9 +2,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -19,9 +19,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -31,12 +31,12 @@ Parse successful
     </Enumeration>
     <Enum name="e" enum="/color">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>99f8b879</Value>
+            <Value>5643ef8a</Value>
         </Attribute>
     </Enum>
     <Enum name="f" enum="/shade">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a988dff7</Value>
+            <Value>1225efff</Value>
         </Attribute>
     </Enum>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_simple_9.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_9.xml.intern_base
similarity index 84%
copy from tests/dmr-testsuite/test_simple_9.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_9.xml.intern_base
index ee8aa87..f2ba8fa 100644
--- a/tests/dmr-testsuite/test_simple_9.xml.trans_base
+++ b/tests/dmr-testsuite/big-endian/test_simple_9.xml.intern_base
@@ -16,11 +16,7 @@ Parse successful
         <EnumConst name="blue" value="2"/>
         <EnumConst name="gray" value="3"/>
     </Enumeration>
-    <Enum name="e" enum="/color">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a505df1b</Value>
-        </Attribute>
-    </Enum>
+    <Enum name="e" enum="/color"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_9.xml.trans_base b/tests/dmr-testsuite/big-endian/test_simple_9.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_9.xml.trans_base
copy to tests/dmr-testsuite/big-endian/test_simple_9.xml.trans_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.1.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.1.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.1.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.1.func_base
index f5705e4..0c66f93 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.1.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.1.func_base
@@ -13,7 +13,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" dapVersion="4.0" dmrVersion="1.0" name="function_results">
     <Float64 name="u">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>8f450c0e</Value>
+            <Value>26b3e340</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.10.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.10.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.10.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.10.func_base
index 36d678c..018c397 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.10.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.10.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>85b447dc</Value>
+            <Value>b023d9dd</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.11.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.11.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.11.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.11.func_base
index ee37ffc..0c0d8b6 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.11.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.11.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>680cc4fc</Value>
+            <Value>e3185c07</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.12.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.12.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.12.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.12.func_base
index 36d678c..018c397 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.12.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.12.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>85b447dc</Value>
+            <Value>b023d9dd</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.13.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.13.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.13.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.13.func_base
index 7771aba..a91f98d 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.13.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.13.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>cb9ac07d</Value>
+            <Value>99fd277f</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.14.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.14.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.14.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.14.func_base
index 2e352a7..8c74c3f 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.14.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.14.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>8158d22c</Value>
+            <Value>fe23bbb1</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.15.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.15.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.15.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.15.func_base
index 8781880..8b566ad 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.15.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.15.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>ab75a7bc</Value>
+            <Value>35760405</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.16.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.16.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.16.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.16.func_base
index f404ccc..b3bb7df 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.16.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.16.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>cb95303e</Value>
+            <Value>656f539a</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.2.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.2.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.2.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.2.func_base
index c6eebd1..96373c9 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.2.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.2.func_base
@@ -13,7 +13,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" dapVersion="4.0" dmrVersion="1.0" name="function_results">
     <Float64 name="u">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>fe284a6e</Value>
+            <Value>c82799a1</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.3.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.3.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.3.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.3.func_base
index 30d0674..9d6600b 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.3.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.3.func_base
@@ -13,7 +13,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" dapVersion="4.0" dmrVersion="1.0" name="function_results">
     <Float64 name="u">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>bb61bad1</Value>
+            <Value>1d0ab9ed</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.4.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.4.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.4.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.4.func_base
index 29b1854..3bb2b32 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.4.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.4.func_base
@@ -13,7 +13,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" dapVersion="4.0" dmrVersion="1.0" name="function_results">
     <Float64 name="x">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>8f450c0e</Value>
+            <Value>26b3e340</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.5.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.5.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.5.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.5.func_base
index e59049f..8a44bdb 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.5.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.5.func_base
@@ -13,7 +13,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" dapVersion="4.0" dmrVersion="1.0" name="function_results">
     <Float64 name="x">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>fe284a6e</Value>
+            <Value>c82799a1</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.6.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.6.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.6.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.6.func_base
index b0880c4..2601d82 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.6.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.6.func_base
@@ -13,7 +13,7 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" dapVersion="4.0" dmrVersion="1.0" name="function_results">
     <Float64 name="x">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>bb61bad1</Value>
+            <Value>1d0ab9ed</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.7.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.7.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.7.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.7.func_base
index ee37ffc..0c0d8b6 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.7.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.7.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>680cc4fc</Value>
+            <Value>e3185c07</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.8.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.8.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.8.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.8.func_base
index 204c102..32b62c5 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.8.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.8.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>3fca0d88</Value>
+            <Value>86832e40</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.9.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.9.func_base
similarity index 95%
copy from tests/dmr-testsuite/vol_1_ce_1.xml.9.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.9.func_base
index ee37ffc..0c0d8b6 100644
--- a/tests/dmr-testsuite/vol_1_ce_1.xml.9.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_1.xml.9.func_base
@@ -14,7 +14,7 @@ Parse successful
     <Float64 name="g1">
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>680cc4fc</Value>
+            <Value>e3185c07</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_10.xml.1.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.1.func_base
similarity index 99%
copy from tests/dmr-testsuite/vol_1_ce_10.xml.1.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.1.func_base
index 5e167e8..8edf2f3 100644
--- a/tests/dmr-testsuite/vol_1_ce_10.xml.1.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.1.func_base
@@ -21,7 +21,7 @@ Parse successful
         <Dim size="100"/>
         <Dim size="50"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6ba82768</Value>
+            <Value>f4af813f</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_10.xml.2.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.2.func_base
similarity index 99%
copy from tests/dmr-testsuite/vol_1_ce_10.xml.2.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.2.func_base
index 5bd2d3d..9e28c04 100644
--- a/tests/dmr-testsuite/vol_1_ce_10.xml.2.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.2.func_base
@@ -21,14 +21,14 @@ Parse successful
         <Dim size="100"/>
         <Dim size="50"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6ba82768</Value>
+            <Value>f4af813f</Value>
         </Attribute>
     </Float64>
     <Float64 name="lon">
         <Dim size="100"/>
         <Dim size="50"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6ba82768</Value>
+            <Value>f4af813f</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/vol_1_ce_10.xml.3.func_base b/tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.3.func_base
similarity index 94%
copy from tests/dmr-testsuite/vol_1_ce_10.xml.3.func_base
copy to tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.3.func_base
index 60468dc..02307e7 100644
--- a/tests/dmr-testsuite/vol_1_ce_10.xml.3.func_base
+++ b/tests/dmr-testsuite/big-endian/vol_1_ce_10.xml.3.func_base
@@ -21,14 +21,14 @@ Parse successful
         <Dim size="2"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>8486a6d6</Value>
+            <Value>cc49f579</Value>
         </Attribute>
     </Float64>
     <Float64 name="lon">
         <Dim size="2"/>
         <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>8486a6d6</Value>
+            <Value>cc49f579</Value>
         </Attribute>
     </Float64>
 </Dataset>
diff --git a/tests/dmr-testsuite/test_array_1.xml.1.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.1.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.1.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.1.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.2.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.2.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.2.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.2.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.3.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.3.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.3.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.3.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.4.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.4.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.4.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.4.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.5.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.5.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.5.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.5.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.6.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.6.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.6.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.6.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.7.func_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.7.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_1.xml.7.func_base
rename to tests/dmr-testsuite/little-endian/test_array_1.xml.7.func_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.intern_base
similarity index 83%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_1.xml.intern_base
index 3e3534c..03726e5 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_1.xml.intern_base
@@ -10,9 +10,6 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
     <Int32 name="x">
         <Dim size="5"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_1.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_1.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_10.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_10.xml.intern_base
similarity index 82%
copy from tests/dmr-testsuite/test_array_10.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_10.xml.intern_base
index cbd7697..cb3703f 100644
--- a/tests/dmr-testsuite/test_array_10.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_10.xml.intern_base
@@ -18,16 +18,10 @@ Parse successful
     <Dimension name="d2" size="3"/>
     <Opaque name="o">
         <Dim name="/d1"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>3d021e3e</Value>
-        </Attribute>
     </Opaque>
     <Opaque name="p">
         <Dim name="/d1"/>
         <Dim name="/d2"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>c9ba1dbe</Value>
-        </Attribute>
     </Opaque>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_10.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_10.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_10.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_10.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_11.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_11.xml.intern_base
similarity index 85%
copy from tests/dmr-testsuite/test_array_11.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_11.xml.intern_base
index 0e3f36e..19701dd 100644
--- a/tests/dmr-testsuite/test_array_11.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_11.xml.intern_base
@@ -28,16 +28,10 @@ Parse successful
     </Enumeration>
     <Enum name="e1" enum="/colors">
         <Dim name="/d1"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>2c20d228</Value>
-        </Attribute>
     </Enum>
     <Enum name="e2" enum="/colors">
         <Dim name="/d1"/>
         <Dim name="/d2"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>c7a0f194</Value>
-        </Attribute>
     </Enum>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_11.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_11.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_11.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_11.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_12.xml.intern_base
similarity index 52%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_12.xml.intern_base
index 3e3534c..c83cac0 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_12.xml.intern_base
@@ -1,20 +1,23 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
     </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
-        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 The data:
-{ {123456789, 123456789, 123456789, 123456789, 123456789} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_12.xml.trans_base
similarity index 52%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_12.xml.trans_base
index 3e3534c..6b8832b 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_12.xml.trans_base
@@ -1,20 +1,29 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
     </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
             <Value>33fc3688</Value>
         </Attribute>
     </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>00000000</Value>
+        </Attribute>
+    </Int32>
 </Dataset>
 
 The data:
-{ {123456789, 123456789, 123456789, 123456789, 123456789} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/little-endian/test_array_13.xml.intern_base b/tests/dmr-testsuite/little-endian/test_array_13.xml.intern_base
new file mode 100644
index 0000000..4dde012
--- /dev/null
+++ b/tests/dmr-testsuite/little-endian/test_array_13.xml.intern_base
@@ -0,0 +1,25 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="4"/>
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="4"/>
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+The data:
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {{},{},{},{}} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_13.xml.trans_base
similarity index 50%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_13.xml.trans_base
index 7e3c295..2fd171a 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_13.xml.trans_base
@@ -1,22 +1,31 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
         <Dim size="4"/>
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>33fc3688</Value>
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
         <Dim size="4"/>
+        <Dim size="0"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            <Value>00000000</Value>
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789}} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {{},{},{},{}} }
diff --git a/tests/dmr-testsuite/little-endian/test_array_14.xml.intern_base b/tests/dmr-testsuite/little-endian/test_array_14.xml.intern_base
new file mode 100644
index 0000000..99eeb81
--- /dev/null
+++ b/tests/dmr-testsuite/little-endian/test_array_14.xml.intern_base
@@ -0,0 +1,25 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Dim size="4"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Dim size="4"/>
+    </Int32>
+</Dataset>
+
+The data:
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_14.xml.trans_base
similarity index 50%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_14.xml.trans_base
index 7e3c295..12a8352 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_14.xml.trans_base
@@ -1,22 +1,31 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
         <Dim size="4"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>33fc3688</Value>
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            <Value>00000000</Value>
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789}} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_2.xml.intern_base
similarity index 87%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_2.xml.intern_base
index 7e3c295..363c92b 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_2.xml.intern_base
@@ -12,9 +12,6 @@ Parse successful
     <Int32 name="x">
         <Dim size="5"/>
         <Dim size="4"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_2.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_2.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.1.trans_base
similarity index 58%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_3.1.dmr.1.trans_base
index 99e0353..5a391f2 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.1.trans_base
@@ -2,23 +2,32 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            <Value>61dd25db</Value>
+        </Attribute>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>d2207316</Value>
         </Attribute>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {99.999, 99.999, 99.999, 99.999, 99.999}, {"Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.2.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_3.1.dmr.2.trans_base
index 99e0353..90e228f 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.2.trans_base
@@ -2,23 +2,26 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
-    <Dimension name="row" size="5"/>
+    <Dimension name="row" size="2"/>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>55708e52</Value>
         </Attribute>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.3.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_3.1.dmr.3.trans_base
index 99e0353..80ade42 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.3.trans_base
@@ -2,23 +2,24 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
-    <Dimension name="row" size="5"/>
     <String name="x">
-        <Dim name="/row"/>
-        <Dim size="3"/>
+        <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>55708e52</Value>
         </Attribute>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.4.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_3.1.dmr.4.trans_base
index 99e0353..80ade42 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.4.trans_base
@@ -2,23 +2,24 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
-    <Dimension name="row" size="5"/>
     <String name="x">
-        <Dim name="/row"/>
-        <Dim size="3"/>
+        <Dim size="2"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>55708e52</Value>
         </Attribute>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.5.trans_base
similarity index 60%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_3.1.dmr.5.trans_base
index 99e0353..8943261 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_3.1.dmr.5.trans_base
@@ -2,9 +2,12 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_3">
     <Dimension name="row" size="5"/>
+    <Float32 name="row">
+        <Dim name="/row"/>
+    </Float32>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
@@ -13,12 +16,12 @@ Parse successful
     <Dimension name="row" size="5"/>
     <String name="x">
         <Dim name="/row"/>
-        <Dim size="3"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
+            <Value>d2207316</Value>
         </Attribute>
+        <Map name="/row"/>
     </String>
 </Dataset>
 
 The data:
-{ {{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"},{"Silly test string: 1", "Silly test string: 1", "Silly test string: 1"}} }
+{ {"Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1", "Silly test string: 1"} }
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.xml.intern_base
similarity index 89%
copy from tests/dmr-testsuite/test_array_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_3.xml.intern_base
index 99e0353..aa16004 100644
--- a/tests/dmr-testsuite/test_array_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_3.xml.intern_base
@@ -14,9 +14,6 @@ Parse successful
     <String name="x">
         <Dim name="/row"/>
         <Dim size="3"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>22983e08</Value>
-        </Attribute>
     </String>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_3.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_3.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_3.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.4.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.4.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.4.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.5.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.5.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.5.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.5.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.6.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.6.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.6.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.6.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.7.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.7.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.7.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.7.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.8.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.8.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.8.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.8.trans_base
diff --git a/tests/dmr-testsuite/test_array_4.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.intern_base
similarity index 77%
copy from tests/dmr-testsuite/test_array_4.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_4.xml.intern_base
index 6ac8b35..74583b3 100644
--- a/tests/dmr-testsuite/test_array_4.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_4.xml.intern_base
@@ -56,79 +56,46 @@ Parse successful
     <Byte name="a">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>bb99ff8a</Value>
-        </Attribute>
     </Byte>
     <Int16 name="b">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>4a491560</Value>
-        </Attribute>
     </Int16>
     <Int32 name="c">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46997ac6</Value>
-        </Attribute>
     </Int32>
     <UInt16 name="d">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>aba172e1</Value>
-        </Attribute>
     </UInt16>
     <UInt32 name="e">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>6dee122e</Value>
-        </Attribute>
     </UInt32>
     <Float32 name="f">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>03d5492a</Value>
-        </Attribute>
     </Float32>
     <Float64 name="g">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d6764865</Value>
-        </Attribute>
     </Float64>
     <String name="h">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>2004aea7</Value>
-        </Attribute>
     </String>
     <URL name="i">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>546a7c3d</Value>
-        </Attribute>
     </URL>
     <Int32 name="x">
         <Dim name="/row"/>
         <Dim size="5"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>e787d509</Value>
-        </Attribute>
     </Int32>
     <Int32 name="y">
         <Dim size="5"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_4.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_4.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_4.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_4.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_5.xml.1.func_base b/tests/dmr-testsuite/little-endian/test_array_5.xml.1.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_5.xml.1.func_base
rename to tests/dmr-testsuite/little-endian/test_array_5.xml.1.func_base
diff --git a/tests/dmr-testsuite/test_array_5.xml.2.func_base b/tests/dmr-testsuite/little-endian/test_array_5.xml.2.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_5.xml.2.func_base
rename to tests/dmr-testsuite/little-endian/test_array_5.xml.2.func_base
diff --git a/tests/dmr-testsuite/test_array_5.xml.3.func_base b/tests/dmr-testsuite/little-endian/test_array_5.xml.3.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_5.xml.3.func_base
rename to tests/dmr-testsuite/little-endian/test_array_5.xml.3.func_base
diff --git a/tests/dmr-testsuite/test_array_5.xml.4.func_base b/tests/dmr-testsuite/little-endian/test_array_5.xml.4.func_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_5.xml.4.func_base
rename to tests/dmr-testsuite/little-endian/test_array_5.xml.4.func_base
diff --git a/tests/dmr-testsuite/test_array_5.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_5.xml.intern_base
similarity index 80%
copy from tests/dmr-testsuite/test_array_5.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_5.xml.intern_base
index 3615f69..ed63c69 100644
--- a/tests/dmr-testsuite/test_array_5.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_5.xml.intern_base
@@ -28,30 +28,18 @@ Parse successful
     <Int8 name="a">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>82c3d109</Value>
-        </Attribute>
     </Int8>
     <UInt8 name="b">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>bb99ff8a</Value>
-        </Attribute>
     </UInt8>
     <Int64 name="c">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>38d2ecf4</Value>
-        </Attribute>
     </Int64>
     <UInt64 name="d">
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>46d91cd0</Value>
-        </Attribute>
     </UInt64>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_5.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_5.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_5.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_5.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.1.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.1.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.1.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.1.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.1.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.1.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.1.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.1.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.1.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.1.xml.4.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.1.xml.4.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.1.xml.4.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.1.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.2.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.2.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.2.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.2.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.2.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.2.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.2.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.2.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.2.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.4.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.2.xml.4.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.2.xml.4.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.2.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.2.xml.5.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.2.xml.5.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.2.xml.5.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.2.xml.5.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.xml.1.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_array_6.xml.1.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_6.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_6.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.xml.intern_base
similarity index 91%
rename from tests/dmr-testsuite/test_array_6.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.xml.intern_base
index 91107f7..6bfb604 100644
--- a/tests/dmr-testsuite/test_array_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_6.xml.intern_base
@@ -20,9 +20,6 @@ Parse successful
         <Int32 name="j"/>
         <Dim name="/row"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>d9ce8457</Value>
-        </Attribute>
     </Structure>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_6.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_6.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_6.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_6.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.1.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.1.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.1.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.1.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.1.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.1.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.1.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.1.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.1.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.4.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.1.xml.4.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.1.xml.4.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.1.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.5.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.1.xml.5.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.1.xml.5.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.1.xml.5.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.1.xml.6.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.1.xml.6.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.1.xml.6.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.1.xml.6.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.2.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.2.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.2.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.2.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.2.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.2.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.2.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.2.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.2.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.2.xml.4.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.2.xml.4.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.2.xml.4.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.2.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.xml.4.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.xml.4.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.xml.4.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.xml.4.trans_base
diff --git a/tests/dmr-testsuite/test_array_7.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.xml.intern_base
similarity index 89%
copy from tests/dmr-testsuite/test_array_7.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_7.xml.intern_base
index ab441a9..da7e14b 100644
--- a/tests/dmr-testsuite/test_array_7.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_7.xml.intern_base
@@ -14,9 +14,6 @@ Parse successful
         <Int32 name="i1"/>
         <String name="s"/>
         <Dim size="2"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>766f5e81</Value>
-        </Attribute>
     </Sequence>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_7.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_7.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_7.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_7.xml.trans_base
diff --git a/tests/dmr-testsuite/test_array_8.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_array_8.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_8.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_8.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_array_8.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_8.xml.intern_base
similarity index 93%
copy from tests/dmr-testsuite/test_array_8.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_8.xml.intern_base
index 03083b6..90ed9c2 100644
--- a/tests/dmr-testsuite/test_array_8.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_8.xml.intern_base
@@ -18,9 +18,6 @@ Parse successful
         <String name="s"/>
         <Dim size="2"/>
         <Dim name="/col"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>f95dfb1c</Value>
-        </Attribute>
     </Sequence>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_array_8.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_8.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_array_8.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_array_8.xml.trans_base
diff --git a/tests/dmr-testsuite/little-endian/test_array_9.xml.intern_base b/tests/dmr-testsuite/little-endian/test_array_9.xml.intern_base
new file mode 100644
index 0000000..2f53699
--- /dev/null
+++ b/tests/dmr-testsuite/little-endian/test_array_9.xml.intern_base
@@ -0,0 +1,17 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
+The data:
+{ {} }
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_array_9.xml.trans_base
similarity index 57%
copy from tests/dmr-testsuite/test_array_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_array_9.xml.trans_base
index 3e3534c..e24d475 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_array_9.xml.trans_base
@@ -1,20 +1,20 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
     <Int32 name="x">
-        <Dim size="5"/>
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
     <Int32 name="x">
-        <Dim size="5"/>
+        <Dim size="0"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
+            <Value>00000000</Value>
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {123456789, 123456789, 123456789, 123456789, 123456789} }
+{ {} }
diff --git a/tests/dmr-testsuite/test_simple_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_1.xml.intern_base
similarity index 75%
copy from tests/dmr-testsuite/test_simple_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_1.xml.intern_base
index ae52ffd..4b6ab97 100644
--- a/tests/dmr-testsuite/test_simple_1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_1.xml.intern_base
@@ -6,11 +6,7 @@ Parse successful
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
-    <Int32 name="x">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
-        </Attribute>
-    </Int32>
+    <Int32 name="x"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_1.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_1.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_10.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_10.xml.intern_base
similarity index 75%
copy from tests/dmr-testsuite/test_simple_10.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_10.xml.intern_base
index b9b6c49..a265226 100644
--- a/tests/dmr-testsuite/test_simple_10.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_10.xml.intern_base
@@ -6,11 +6,7 @@ Parse successful
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_10.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_10">
-    <Opaque name="o">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>470b99f4</Value>
-        </Attribute>
-    </Opaque>
+    <Opaque name="o"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_10.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_10.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_10.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_10.xml.trans_base
diff --git a/tests/dmr-testsuite/little-endian/test_simple_2.xml.intern_base b/tests/dmr-testsuite/little-endian/test_simple_2.xml.intern_base
new file mode 100644
index 0000000..09b8340
--- /dev/null
+++ b/tests/dmr-testsuite/little-endian/test_simple_2.xml.intern_base
@@ -0,0 +1,37 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_2">
+    <Byte name="b"/>
+    <Int8 name="i8"/>
+    <UInt8 name="ui8"/>
+    <Int16 name="i16"/>
+    <UInt16 name="ui16"/>
+    <Int32 name="i32"/>
+    <UInt32 name="ui32"/>
+    <Int64 name="i64"/>
+    <UInt64 name="ui64"/>
+    <Float32 name="f32"/>
+    <Float64 name="f64"/>
+    <String name="s"/>
+    <URL name="u"/>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_2">
+    <Byte name="b"/>
+    <Int8 name="i8"/>
+    <UInt8 name="ui8"/>
+    <Int16 name="i16"/>
+    <UInt16 name="ui16"/>
+    <Int32 name="i32"/>
+    <UInt32 name="ui32"/>
+    <Int64 name="i64"/>
+    <UInt64 name="ui64"/>
+    <Float32 name="f32"/>
+    <Float64 name="f64"/>
+    <String name="s"/>
+    <URL name="u"/>
+</Dataset>
+
+The data:
+{ 255, 127, 255, 32000, 64000, 123456789, 4026531840, 72057594037927935, 18446744073709551615, 99.999, 99.999, "Silly test string: 1", "http://dcz.gso.uri.edu/avhrr-archive/archive.html" }
diff --git a/tests/dmr-testsuite/test_simple_2.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_2.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_2.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_2.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_3.xml.intern_base
similarity index 82%
copy from tests/dmr-testsuite/test_simple_3.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_3.xml.intern_base
index 95c0db6..ee45c20 100644
--- a/tests/dmr-testsuite/test_simple_3.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_3.xml.intern_base
@@ -14,11 +14,7 @@ Parse successful
         <EnumConst name="econst1" value="1"/>
         <EnumConst name="econst2" value="2"/>
     </Enumeration>
-    <Int32 name="x">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
-        </Attribute>
-    </Int32>
+    <Int32 name="x"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_3.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_3.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_3.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_3.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_4.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_4.xml.intern_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_4.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_4.xml.intern_base
index df5b730..14f262e 100644
--- a/tests/dmr-testsuite/test_simple_4.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_4.xml.intern_base
@@ -14,9 +14,6 @@ Parse successful
         <Attribute name="long_name" type="String">
             <Value>x_axis_value</Value>
         </Attribute>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
-        </Attribute>
     </Int32>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_4.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_4.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_4.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_4.xml.trans_base
diff --git a/tests/dmr-testsuite/little-endian/test_simple_5.xml.intern_base b/tests/dmr-testsuite/little-endian/test_simple_5.xml.intern_base
new file mode 100644
index 0000000..74bd6ba
--- /dev/null
+++ b/tests/dmr-testsuite/little-endian/test_simple_5.xml.intern_base
@@ -0,0 +1,29 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_5.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_5">
+    <Int8 name="i"/>
+    <Int16 name="j"/>
+    <Int32 name="k"/>
+    <Int64 name="z"/>
+    <Byte name="ui"/>
+    <UInt8 name="uii"/>
+    <UInt16 name="uj"/>
+    <UInt32 name="uk"/>
+    <UInt64 name="uz"/>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_5.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_5">
+    <Int8 name="i"/>
+    <Int16 name="j"/>
+    <Int32 name="k"/>
+    <Int64 name="z"/>
+    <Byte name="ui"/>
+    <UInt8 name="uii"/>
+    <UInt16 name="uj"/>
+    <UInt32 name="uk"/>
+    <UInt64 name="uz"/>
+</Dataset>
+
+The data:
+{ 127, 32000, 123456789, 72057594037927935, 255, 255, 64000, 4026531840, 18446744073709551615 }
diff --git a/tests/dmr-testsuite/test_simple_5.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_5.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_5.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_5.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_6.1.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.1.xml.1.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_6.1.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_6.1.xml.1.trans_base
diff --git a/tests/dmr-testsuite/little-endian/test_simple_6.2.xml.intern_base b/tests/dmr-testsuite/little-endian/test_simple_6.2.xml.intern_base
new file mode 100644
index 0000000..014c72e
--- /dev/null
+++ b/tests/dmr-testsuite/little-endian/test_simple_6.2.xml.intern_base
@@ -0,0 +1,13 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
+</Dataset>
+
+The data:
+{ {  } }
diff --git a/tests/dmr-testsuite/test_simple_10.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.2.xml.trans_base
similarity index 54%
rename from tests/dmr-testsuite/test_simple_10.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_6.2.xml.trans_base
index b9b6c49..b393e3f 100644
--- a/tests/dmr-testsuite/test_simple_10.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_6.2.xml.trans_base
@@ -1,17 +1,17 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_10.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_10">
-    <Opaque name="o"/>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_10.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_10">
-    <Opaque name="o">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>470b99f4</Value>
+            <Value>00000000</Value>
         </Attribute>
-    </Opaque>
+    </Structure>
 </Dataset>
 
 The data:
-{ 1,2,3,4,5 }
+{ {  } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.3.xml.intern_base
similarity index 58%
copy from tests/dmr-testsuite/test_simple_6.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_6.3.xml.intern_base
index b28256d..c0ea6cc 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_6.3.xml.intern_base
@@ -1,22 +1,21 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
-        </Attribute>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 The data:
-{ { 123456789, "Silly test string: 1" } }
+{ { 123456789, "Silly test string: 1", {  } } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.3.xml.trans_base
similarity index 66%
copy from tests/dmr-testsuite/test_simple_6.xml.1.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_6.3.xml.trans_base
index b28256d..4bb9b48 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_6.3.xml.trans_base
@@ -1,17 +1,19 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
             <Value>196bdc9a</Value>
         </Attribute>
@@ -19,4 +21,4 @@ Parse successful
 </Dataset>
 
 The data:
-{ { 123456789, "Silly test string: 1" } }
+{ { 123456789, "Silly test string: 1", {  } } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.xml.1.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_6.xml.1.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_6.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_simple_6.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_6.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_6.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_simple_6.xml.3.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.xml.3.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_6.xml.3.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_6.xml.3.trans_base
diff --git a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.xml.intern_base
similarity index 84%
rename from tests/dmr-testsuite/test_simple_6.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_6.xml.intern_base
index b28256d..492e4be 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.1.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_6.xml.intern_base
@@ -12,9 +12,6 @@ Parse successful
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
-        </Attribute>
     </Structure>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_6.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_6.xml.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_6.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_6.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_7.xml.1.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_7.xml.1.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_7.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_simple_7.xml.2.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_7.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_7.xml.intern_base
similarity index 86%
rename from tests/dmr-testsuite/test_simple_7.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_7.xml.intern_base
index af9fe17..1ab9b0e 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.1.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_7.xml.intern_base
@@ -12,9 +12,6 @@ Parse successful
     <Sequence name="s">
         <Int32 name="i1"/>
         <String name="s"/>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
-        </Attribute>
     </Sequence>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_7.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_7.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_7.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_7.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_8.xml.1.trans_base
similarity index 100%
copy from tests/dmr-testsuite/test_simple_8.xml.1.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_8.xml.1.trans_base
diff --git a/tests/dmr-testsuite/test_simple_8.xml.2.trans_base b/tests/dmr-testsuite/little-endian/test_simple_8.xml.2.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_8.xml.2.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_8.xml.2.trans_base
diff --git a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base b/tests/dmr-testsuite/little-endian/test_simple_8.xml.intern_base
similarity index 88%
rename from tests/dmr-testsuite/test_simple_8.xml.1.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_8.xml.intern_base
index 3ddf2c9..db42cfa 100644
--- a/tests/dmr-testsuite/test_simple_8.xml.1.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_8.xml.intern_base
@@ -16,9 +16,6 @@ Parse successful
             <Int32 name="i1"/>
             <String name="s"/>
         </Sequence>
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b617a898</Value>
-        </Attribute>
     </Structure>
 </Dataset>
 
diff --git a/tests/dmr-testsuite/test_simple_8.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_8.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_8.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_8.xml.trans_base
diff --git a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_9.1.xml.intern_base
similarity index 65%
copy from tests/dmr-testsuite/test_simple_9.1.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_9.1.xml.intern_base
index 260bab2..42fff02 100644
--- a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_9.1.xml.intern_base
@@ -2,9 +2,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -19,9 +19,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -29,16 +29,8 @@ Parse successful
         <EnumConst name="dark" value="3"/>
         <EnumConst name="pitch" value="256"/>
     </Enumeration>
-    <Enum name="e" enum="/color">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>99f8b879</Value>
-        </Attribute>
-    </Enum>
-    <Enum name="f" enum="/shade">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a988dff7</Value>
-        </Attribute>
-    </Enum>
+    <Enum name="e" enum="/color"/>
+    <Enum name="f" enum="/shade"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_9.1.xml.trans_base
similarity index 84%
rename from tests/dmr-testsuite/test_simple_9.1.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_9.1.xml.trans_base
index 260bab2..1b83417 100644
--- a/tests/dmr-testsuite/test_simple_9.1.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_9.1.xml.trans_base
@@ -2,9 +2,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
@@ -19,9 +19,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
diff --git a/tests/dmr-testsuite/test_simple_9.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_9.xml.intern_base
similarity index 84%
copy from tests/dmr-testsuite/test_simple_9.xml.trans_base
copy to tests/dmr-testsuite/little-endian/test_simple_9.xml.intern_base
index ee8aa87..f2ba8fa 100644
--- a/tests/dmr-testsuite/test_simple_9.xml.trans_base
+++ b/tests/dmr-testsuite/little-endian/test_simple_9.xml.intern_base
@@ -16,11 +16,7 @@ Parse successful
         <EnumConst name="blue" value="2"/>
         <EnumConst name="gray" value="3"/>
     </Enumeration>
-    <Enum name="e" enum="/color">
-        <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>a505df1b</Value>
-        </Attribute>
-    </Enum>
+    <Enum name="e" enum="/color"/>
 </Dataset>
 
 The data:
diff --git a/tests/dmr-testsuite/test_simple_9.xml.trans_base b/tests/dmr-testsuite/little-endian/test_simple_9.xml.trans_base
similarity index 100%
rename from tests/dmr-testsuite/test_simple_9.xml.trans_base
rename to tests/dmr-testsuite/little-endian/test_simple_9.xml.trans_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.1.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.1.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.1.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.1.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.10.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.10.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.10.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.10.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.11.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.11.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.11.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.11.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.12.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.12.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.12.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.12.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.13.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.13.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.13.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.13.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.14.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.14.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.14.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.14.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.15.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.15.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.15.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.15.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.16.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.16.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.16.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.16.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.2.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.2.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.2.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.2.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.3.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.3.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.3.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.3.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.4.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.4.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.4.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.4.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.5.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.5.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.5.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.5.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.6.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.6.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.6.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.6.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.7.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.7.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.7.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.7.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.8.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.8.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.8.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.8.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_1.xml.9.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.9.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_1.xml.9.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_1.xml.9.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_10.xml.1.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_10.xml.1.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_10.xml.1.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_10.xml.1.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_10.xml.2.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_10.xml.2.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_10.xml.2.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_10.xml.2.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_10.xml.3.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_10.xml.3.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_10.xml.3.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_10.xml.3.func_base
diff --git a/tests/dmr-testsuite/vol_1_ce_2.xml.1.func_base b/tests/dmr-testsuite/little-endian/vol_1_ce_2.xml.1.func_base
similarity index 100%
rename from tests/dmr-testsuite/vol_1_ce_2.xml.1.func_base
rename to tests/dmr-testsuite/little-endian/vol_1_ce_2.xml.1.func_base
diff --git a/tests/dmr-testsuite/test_array_12.xml b/tests/dmr-testsuite/test_array_12.xml
new file mode 100644
index 0000000..e256aa2
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_12.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Test zero length array case. jhrg 1/27/16 -->
+
+<Dataset name="test_array_9" dapVersion="4.0" dmrVersion="1.0" xml:base="file:dap4/test_array_9.xml"
+  xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <dap:Int32 name="i">
+    <Dim size="5"/>
+  </dap:Int32>
+
+  <dap:Int32 name="x">
+    <Dim size="0"/>
+  </dap:Int32>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_array_12.xml.baseline b/tests/dmr-testsuite/test_array_12.xml.baseline
new file mode 100644
index 0000000..d239887
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_12.xml.baseline
@@ -0,0 +1,11 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
diff --git a/tests/dmr-testsuite/test_array_13.xml b/tests/dmr-testsuite/test_array_13.xml
new file mode 100644
index 0000000..7272ea7
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_13.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Test zero length array case. jhrg 1/27/16 -->
+
+<Dataset name="test_array_9" dapVersion="4.0" dmrVersion="1.0" xml:base="file:dap4/test_array_9.xml"
+  xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <dap:Int32 name="i">
+    <Dim size="5"/>
+  </dap:Int32>
+
+  <dap:Int32 name="x">
+    <Dim size="4"/>
+    <Dim size="0"/>
+  </dap:Int32>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_array_13.xml.baseline b/tests/dmr-testsuite/test_array_13.xml.baseline
new file mode 100644
index 0000000..20e0096
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_13.xml.baseline
@@ -0,0 +1,12 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="4"/>
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
diff --git a/tests/dmr-testsuite/test_array_14.xml b/tests/dmr-testsuite/test_array_14.xml
new file mode 100644
index 0000000..207b6d8
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_14.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Test zero length array case. jhrg 1/27/16 -->
+
+<Dataset name="test_array_9" dapVersion="4.0" dmrVersion="1.0" xml:base="file:dap4/test_array_9.xml"
+  xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <dap:Int32 name="i">
+    <Dim size="5"/>
+  </dap:Int32>
+
+  <dap:Int32 name="x">
+    <Dim size="0"/>
+    <Dim size="4"/>
+  </dap:Int32>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_array_14.xml.baseline b/tests/dmr-testsuite/test_array_14.xml.baseline
new file mode 100644
index 0000000..428c8f7
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_14.xml.baseline
@@ -0,0 +1,12 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
+        <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Dim size="4"/>
+    </Int32>
+</Dataset>
+
diff --git a/tests/dmr-testsuite/test_array_3.1.dmr b/tests/dmr-testsuite/test_array_3.1.dmr
new file mode 100644
index 0000000..cfbedf6
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_3.1.dmr
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Dataset name="test_array_3" dapVersion="4.0" dmrVersion="1.0" xml:base="file:dap4/test_array_3.xml"
+  xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <Dimension name="row" size="5"/>   
+ 
+   <Float32 name="row">
+    <Dim name="row"/>
+  </Float32>
+  
+  <dap:String name="x">
+    <Dim name="row"/>
+    <Map name="row"/>
+  </dap:String>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_array_9.xml b/tests/dmr-testsuite/test_array_9.xml
new file mode 100644
index 0000000..e2265f9
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_9.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Test zero length array case. jhrg 1/27/16 -->
+
+<Dataset name="test_array_9" dapVersion="4.0" dmrVersion="1.0" xml:base="file:dap4/test_array_9.xml"
+  xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <dap:Int32 name="x">
+    <Dim size="0"/>
+  </dap:Int32>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_array_9.xml.baseline b/tests/dmr-testsuite/test_array_9.xml.baseline
new file mode 100644
index 0000000..cac52bb
--- /dev/null
+++ b/tests/dmr-testsuite/test_array_9.xml.baseline
@@ -0,0 +1,8 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
+</Dataset>
+
diff --git a/tests/dmr-testsuite/test_simple_6.2.xml b/tests/dmr-testsuite/test_simple_6.2.xml
new file mode 100644
index 0000000..0977059
--- /dev/null
+++ b/tests/dmr-testsuite/test_simple_6.2.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Dataset name="test_simple_6.2" dapVersion="4.0" dmrVersion="1.0"
+  xml:base="file:dap4/test_simple_6.2.xml" xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <Structure name="s">
+  </Structure>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_simple_6.2.xml.baseline b/tests/dmr-testsuite/test_simple_6.2.xml.baseline
new file mode 100644
index 0000000..1f2ce12
--- /dev/null
+++ b/tests/dmr-testsuite/test_simple_6.2.xml.baseline
@@ -0,0 +1,6 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
+</Dataset>
+
diff --git a/tests/dmr-testsuite/test_simple_6.3.xml b/tests/dmr-testsuite/test_simple_6.3.xml
new file mode 100644
index 0000000..c03b7e3
--- /dev/null
+++ b/tests/dmr-testsuite/test_simple_6.3.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Dataset name="test_simple_6.3" dapVersion="4.0" dmrVersion="1.0"
+  xml:base="file:dap4/test_simple_6.3.xml" xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+  xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+
+  <Structure name="s">
+    <Int32 name="i1"/>
+    <String name="s"/>
+    <Structure name="inner">
+    </Structure>
+  </Structure>
+
+</Dataset>
diff --git a/tests/dmr-testsuite/test_simple_6.3.xml.baseline b/tests/dmr-testsuite/test_simple_6.3.xml.baseline
new file mode 100644
index 0000000..bf47bb1
--- /dev/null
+++ b/tests/dmr-testsuite/test_simple_6.3.xml.baseline
@@ -0,0 +1,10 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
+    <Structure name="s">
+        <Int32 name="i1"/>
+        <String name="s"/>
+        <Structure name="inner"/>
+    </Structure>
+</Dataset>
+
diff --git a/tests/dmr-testsuite/test_simple_9.1.xml b/tests/dmr-testsuite/test_simple_9.1.xml
index cd2c01e..fbc08c1 100644
--- a/tests/dmr-testsuite/test_simple_9.1.xml
+++ b/tests/dmr-testsuite/test_simple_9.1.xml
@@ -5,9 +5,9 @@
   xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
   
   <Enumeration name="color" basetype="Int32">
-    <EnumConst name="red" value="100"/>
-    <EnumConst name="blue" value="200"/>
-    <EnumConst name="gray" value="300"/>
+    <EnumConst name="red" value="1"/>
+    <EnumConst name="blue" value="2"/>
+    <EnumConst name="gray" value="3"/>
   </Enumeration>
   
   <Enumeration name="shade" basetype="UInt64">
diff --git a/tests/dmr-testsuite/test_simple_9.1.xml.baseline b/tests/dmr-testsuite/test_simple_9.1.xml.baseline
index 9f4c831..8c67b51 100644
--- a/tests/dmr-testsuite/test_simple_9.1.xml.baseline
+++ b/tests/dmr-testsuite/test_simple_9.1.xml.baseline
@@ -2,9 +2,9 @@ Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_9">
     <Enumeration name="color" basetype="Int32">
-        <EnumConst name="red" value="100"/>
-        <EnumConst name="blue" value="200"/>
-        <EnumConst name="gray" value="300"/>
+        <EnumConst name="red" value="1"/>
+        <EnumConst name="blue" value="2"/>
+        <EnumConst name="gray" value="3"/>
     </Enumeration>
     <Enumeration name="shade" basetype="UInt64">
         <EnumConst name="light" value="1"/>
diff --git a/tests/dmr-testsuite/test_array_1.xml.trans_base b/tests/dmr-testsuite/universal/test_array_12.xml.trans_base
similarity index 50%
rename from tests/dmr-testsuite/test_array_1.xml.trans_base
rename to tests/dmr-testsuite/universal/test_array_12.xml.trans_base
index 3e3534c..c30c9b2 100644
--- a/tests/dmr-testsuite/test_array_1.xml.trans_base
+++ b/tests/dmr-testsuite/universal/test_array_12.xml.trans_base
@@ -1,20 +1,29 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
     </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>33fc3688</Value>
+            
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {123456789, 123456789, 123456789, 123456789, 123456789} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/universal/test_array_13.xml.trans_base
similarity index 52%
copy from tests/dmr-testsuite/test_array_2.xml.trans_base
copy to tests/dmr-testsuite/universal/test_array_13.xml.trans_base
index 7e3c295..68fd0dd 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/universal/test_array_13.xml.trans_base
@@ -1,22 +1,31 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
         <Dim size="4"/>
+        <Dim size="0"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
         <Dim size="4"/>
+        <Dim size="0"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789}} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {{},{},{},{}} }
diff --git a/tests/dmr-testsuite/test_array_2.xml.trans_base b/tests/dmr-testsuite/universal/test_array_14.xml.trans_base
similarity index 53%
rename from tests/dmr-testsuite/test_array_2.xml.trans_base
rename to tests/dmr-testsuite/universal/test_array_14.xml.trans_base
index 7e3c295..fdc6e59 100644
--- a/tests/dmr-testsuite/test_array_2.xml.trans_base
+++ b/tests/dmr-testsuite/universal/test_array_14.xml.trans_base
@@ -1,22 +1,31 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
         <Dim size="4"/>
     </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_2">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="i">
         <Dim size="5"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Int32>
+    <Int32 name="x">
+        <Dim size="0"/>
         <Dim size="4"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>972f55fc</Value>
+            
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ {{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789},{123456789, 123456789, 123456789, 123456789}} }
+{ {123456789, 123456789, 123456789, 123456789, 123456789}, {} }
diff --git a/tests/dmr-testsuite/test_simple_1.xml.trans_base b/tests/dmr-testsuite/universal/test_array_9.xml.trans_base
similarity index 59%
copy from tests/dmr-testsuite/test_simple_1.xml.trans_base
copy to tests/dmr-testsuite/universal/test_array_9.xml.trans_base
index ae52ffd..7f27ecb 100644
--- a/tests/dmr-testsuite/test_simple_1.xml.trans_base
+++ b/tests/dmr-testsuite/universal/test_array_9.xml.trans_base
@@ -1,17 +1,20 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
-    <Int32 name="x"/>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
+    <Int32 name="x">
+        <Dim size="0"/>
+    </Int32>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_array_9.xml" dapVersion="4.0" dmrVersion="1.0" name="test_array_9">
     <Int32 name="x">
+        <Dim size="0"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            
         </Attribute>
     </Int32>
 </Dataset>
 
 The data:
-{ 123456789 }
+{ {} }
diff --git a/tests/dmr-testsuite/test_simple_1.xml.trans_base b/tests/dmr-testsuite/universal/test_simple_6.2.xml.trans_base
similarity index 56%
rename from tests/dmr-testsuite/test_simple_1.xml.trans_base
rename to tests/dmr-testsuite/universal/test_simple_6.2.xml.trans_base
index ae52ffd..e40f9a2 100644
--- a/tests/dmr-testsuite/test_simple_1.xml.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_6.2.xml.trans_base
@@ -1,17 +1,17 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
-    <Int32 name="x"/>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s"/>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_1">
-    <Int32 name="x">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.2.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.2">
+    <Structure name="s">
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>18df6c9e</Value>
+            
         </Attribute>
-    </Int32>
+    </Structure>
 </Dataset>
 
 The data:
-{ 123456789 }
+{ {  } }
diff --git a/tests/dmr-testsuite/test_simple_6.xml.trans_base b/tests/dmr-testsuite/universal/test_simple_6.3.xml.trans_base
similarity index 64%
rename from tests/dmr-testsuite/test_simple_6.xml.trans_base
rename to tests/dmr-testsuite/universal/test_simple_6.3.xml.trans_base
index b28256d..7129b28 100644
--- a/tests/dmr-testsuite/test_simple_6.xml.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_6.3.xml.trans_base
@@ -1,22 +1,24 @@
 Parse successful
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
     </Structure>
 </Dataset>
 
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6">
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_6.3.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_6.3">
     <Structure name="s">
         <Int32 name="i1"/>
         <String name="s"/>
+        <Structure name="inner"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>196bdc9a</Value>
+            
         </Attribute>
     </Structure>
 </Dataset>
 
 The data:
-{ { 123456789, "Silly test string: 1" } }
+{ { 123456789, "Silly test string: 1", {  } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f.trans_base
similarity index 79%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f.trans_base
index 306fd93..1b1cf5a 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f1.trans_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f1.trans_base
index 306fd93..2f0a45d 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f1.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f2.trans_base
similarity index 81%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f2.trans_base
index 306fd93..4df38ed 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f2.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f3.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f3.trans_base
index 306fd93..70439eb 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f3.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f4.trans_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f4.trans_base
index 306fd93..6359d53 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f4.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f5.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f5.trans_base
index 306fd93..70439eb 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f5.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f6.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f6.trans_base
index 306fd93..d363fee 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f6.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f7.trans_base
similarity index 81%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f7.trans_base
index 306fd93..dbf9948 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f7.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f8.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f8.trans_base
index 306fd93..d363fee 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f8.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.f9.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.f9.trans_base
index 306fd93..811c1c0 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.f9.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fa.trans_base
similarity index 81%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fa.trans_base
index 306fd93..dbf9948 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fa.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs1.trans_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs1.trans_base
index 306fd93..2f0a45d 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs1.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs2.trans_base
similarity index 81%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs2.trans_base
index 306fd93..4df38ed 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs2.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs3.trans_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs3.trans_base
index 306fd93..6359d53 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs3.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs4.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs4.trans_base
index 306fd93..70439eb 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs4.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs5.trans_base
similarity index 85%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs5.trans_base
index 306fd93..d363fee 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs5.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs6.trans_base
similarity index 81%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs6.trans_base
index 306fd93..dbf9948 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs6.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.fs7.trans_base
similarity index 86%
copy from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
copy to tests/dmr-testsuite/universal/test_simple_7.xml.fs7.trans_base
index 306fd93..2f0a45d 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.fs7.trans_base
@@ -11,11 +11,12 @@ Parse successful
 <Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_7.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_7">
     <Sequence name="s">
         <Int32 name="i1"/>
+        <String name="s"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 1024, "Silly test string: 2" } } }
diff --git a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base b/tests/dmr-testsuite/universal/test_simple_7.xml.g1.trans_base
similarity index 86%
rename from tests/dmr-testsuite/test_simple_7.xml.2.trans_base
rename to tests/dmr-testsuite/universal/test_simple_7.xml.g1.trans_base
index 306fd93..c19849e 100644
--- a/tests/dmr-testsuite/test_simple_7.xml.2.trans_base
+++ b/tests/dmr-testsuite/universal/test_simple_7.xml.g1.trans_base
@@ -12,10 +12,10 @@ Parse successful
     <Sequence name="s">
         <Int32 name="i1"/>
         <Attribute name="DAP4_Checksum_CRC32" type="String">
-            <Value>b2871a70</Value>
+            
         </Attribute>
     </Sequence>
 </Dataset>
 
 The data:
-{ { { 123456789 }, { 123456789 }, { 123456789 }, { 123456789 } } }
+{ { { 32 }, { 1024 } } }
diff --git a/tests/dmr-testsuite/universal/test_simple_8.1.xml.f1.trans_base b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f1.trans_base
new file mode 100644
index 0000000..69afb5f
--- /dev/null
+++ b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f1.trans_base
@@ -0,0 +1,30 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+    </Sequence>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Sequence>
+</Dataset>
+
+The data:
+{ { { -54.4, -54.4, { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }, { -1.77, -1.77, { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }, { 98.93, 98.93, { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }, { 92.68, [...]
diff --git a/tests/dmr-testsuite/universal/test_simple_8.1.xml.f2.trans_base b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f2.trans_base
new file mode 100644
index 0000000..2097297
--- /dev/null
+++ b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f2.trans_base
@@ -0,0 +1,26 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+    </Sequence>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Sequence>
+</Dataset>
+
+The data:
+{ { { -54.4, -54.4 }, { -1.77, -1.77 }, { 98.93, 98.93 }, { 92.68, 92.68 } } }
diff --git a/tests/dmr-testsuite/universal/test_simple_8.1.xml.f3.trans_base b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f3.trans_base
new file mode 100644
index 0000000..69afb5f
--- /dev/null
+++ b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f3.trans_base
@@ -0,0 +1,30 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+    </Sequence>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Sequence>
+</Dataset>
+
+The data:
+{ { { -54.4, -54.4, { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }, { -1.77, -1.77, { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }, { 98.93, 98.93, { { 32, "Silly test string: 1" }, { 1024, "Silly test string: 2" }, { 32768, "Silly test string: 3" }, { 1048576, "Silly test string: 4" } } }, { 92.68, [...]
diff --git a/tests/dmr-testsuite/universal/test_simple_8.1.xml.f4.trans_base b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f4.trans_base
new file mode 100644
index 0000000..28080d3
--- /dev/null
+++ b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f4.trans_base
@@ -0,0 +1,30 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+    </Sequence>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Sequence>
+</Dataset>
+
+The data:
+{ { { -54.4, -54.4, { { 32, "Silly test string: 1" } } }, { -1.77, -1.77, { { 32, "Silly test string: 1" } } }, { 98.93, 98.93, { { 32, "Silly test string: 1" } } }, { 92.68, 92.68, { { 32, "Silly test string: 1" } } } } }
diff --git a/tests/dmr-testsuite/universal/test_simple_8.1.xml.f5.trans_base b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f5.trans_base
new file mode 100644
index 0000000..285ebaa
--- /dev/null
+++ b/tests/dmr-testsuite/universal/test_simple_8.1.xml.f5.trans_base
@@ -0,0 +1,30 @@
+Parse successful
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+    </Sequence>
+</Dataset>
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<Dataset xmlns="http://xml.opendap.org/ns/DAP/4.0#" xml:base="file:dap4/test_simple_8.1.xml" dapVersion="4.0" dmrVersion="1.0" name="test_simple_8.1">
+    <Sequence name="outer">
+        <Float32 name="x"/>
+        <Float32 name="y"/>
+        <Sequence name="inner">
+            <Int32 name="i1"/>
+            <String name="s"/>
+        </Sequence>
+        <Attribute name="DAP4_Checksum_CRC32" type="String">
+            
+        </Attribute>
+    </Sequence>
+</Dataset>
+
+The data:
+{ { { -54.4, -54.4, { { 32, "Silly test string: 1" } } }, { -1.77, -1.77, { { 32, "Silly test string: 1" } } } } }
diff --git a/tests/dmrset/test_atomic_array.nc.dmr b/tests/dmrset/test_atomic_array.nc.dmr
new file mode 100644
index 0000000..8589000
--- /dev/null
+++ b/tests/dmrset/test_atomic_array.nc.dmr
@@ -0,0 +1,75 @@
+<Dataset
+         name="test_atomic_array.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Enumeration name="cloud_class_t" basetype="Int8">
+        <EnumConst name="Clear" value="0"/>
+        <EnumConst name="Cumulonimbus" value="1"/>
+        <EnumConst name="Stratus" value="2"/>
+        <EnumConst name="Stratocumulus" value="3"/>
+        <EnumConst name="Cumulus" value="4"/>
+        <EnumConst name="Altostratus" value="5"/>
+        <EnumConst name="Nimbostratus" value="6"/>
+        <EnumConst name="Altocumulus" value="7"/>
+        <EnumConst name="Cirrostratus" value="8"/>
+        <EnumConst name="Cirrocumulus" value="9"/>
+        <EnumConst name="Cirrus" value="10"/>
+        <EnumConst name="Missing" value="127"/>
+    </Enumeration>
+    <Dimension name="d1" size="1"/>
+    <Dimension name="d2" size="2"/>
+    <Dimension name="d3" size="3"/>
+    <Dimension name="d4" size="4"/>
+    <Dimension name="d5" size="5"/>
+    <UInt8 name="vu8">
+        <Dim name="/d2"/>
+        <Dim name="/d3"/>
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt8>
+
+    <Int16 name="v16">
+        <Dim name="/d4"/>
+    </Int16>
+    <UInt32 name="vu32">
+        <Dim name="/d2"/>
+        <Dim name="/d3"/>
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt32>
+    <Float64 name="vd">
+        <Dim name="/d2"/>
+    </Float64>
+
+    <Char name="vc">
+        <Dim name="/d2"/>
+    </Char>
+
+    <String name="vs">
+        <Dim name="/d2"/>
+        <Dim name="/d2"/>
+    </String>
+
+    <Opaque name="vo">
+        <Dim name="/d1"/>
+        <Dim name="/d2"/>
+    </Opaque>
+    <Enum name="primary_cloud" enum="/cloud_class_t">
+        <Dim name="/d5"/>
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+
+</Dataset>
diff --git a/tests/dmrset/test_atomic_array.syn.dmr b/tests/dmrset/test_atomic_array.syn.dmr
new file mode 100644
index 0000000..59752a3
--- /dev/null
+++ b/tests/dmrset/test_atomic_array.syn.dmr
@@ -0,0 +1,70 @@
+<Dataset
+         name="test_atomic_array.syn"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Enumeration name="cloud_class_t" basetype="Int8">
+        <EnumConst name="Clear" value="0"/>
+        <EnumConst name="Cumulonimbus" value="1"/>
+        <EnumConst name="Stratus" value="2"/>
+        <EnumConst name="Stratocumulus" value="3"/>
+        <EnumConst name="Cumulus" value="4"/>
+        <EnumConst name="Altostratus" value="5"/>
+        <EnumConst name="Nimbostratus" value="6"/>
+        <EnumConst name="Altocumulus" value="7"/>
+        <EnumConst name="Cirrostratus" value="8"/>
+        <EnumConst name="Cirrocumulus" value="9"/>
+        <EnumConst name="Cirrus" value="10"/>
+        <EnumConst name="Missing" value="127"/>
+    </Enumeration>
+    <Dimension name="d1" size="1"/>
+    <Dimension name="d2" size="2"/>
+    <Dimension name="d3" size="3"/>
+    <Dimension name="d4" size="4"/>
+    <Dimension name="d5" size="5"/>
+    <UInt8 name="vu8">
+        <Dim name="/d2"/>
+        <Dim name="/d3"/>
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt8>
+    <Int16 name="v16">
+        <Dim name="/d4"/>
+    </Int16>
+    <UInt32 name="vu32">
+        <Dim name="/d2"/>
+        <Dim name="/d3"/>
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt32>
+    <Float64 name="vd">
+        <Dim name="/d2"/>
+    </Float64>
+    <Char name="vc">
+        <Dim name="/d2"/>
+    </Char>
+    <String name="vs">
+        <Dim name="/d2"/>
+        <Dim name="/d2"/>
+    </String>
+    <Opaque name="vo">
+        <Dim name="/d1"/>
+        <Dim name="/d2"/>
+    </Opaque>
+    <Enum name="primary_cloud" enum="/cloud_class_t">
+        <Dim name="/d5"/>
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+</Dataset>
diff --git a/tests/dmrset/test_atomic_types.nc.dmr b/tests/dmrset/test_atomic_types.nc.dmr
new file mode 100644
index 0000000..87c6dbb
--- /dev/null
+++ b/tests/dmrset/test_atomic_types.nc.dmr
@@ -0,0 +1,73 @@
+<Dataset
+         name="test_atomic_types.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Enumeration name="cloud_class_t" basetype="Int8">
+        <EnumConst name="Clear" value="0"/>
+        <EnumConst name="Cumulonimbus" value="1"/>
+        <EnumConst name="Stratus" value="2"/>
+        <EnumConst name="Stratocumulus" value="3"/>
+        <EnumConst name="Cumulus" value="4"/>
+        <EnumConst name="Altostratus" value="5"/>
+        <EnumConst name="Nimbostratus" value="6"/>
+        <EnumConst name="Altocumulus" value="7"/>
+        <EnumConst name="Cirrostratus" value="8"/>
+        <EnumConst name="Cirrocumulus" value="9"/>
+        <EnumConst name="Cirrus" value="10"/>
+        <EnumConst name="Missing" value="127"/>
+    </Enumeration>
+    <Int8 name="v8"/>
+    <UInt8 name="vu8">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt8>
+    <Int16 name="v16"/>
+    <UInt16 name="vu16">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt16>
+    <Int32 name="v32"/>
+    <UInt32 name="vu32">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt32>
+    <Int64 name="v64"/>
+    <UInt64 name="vu64">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt64>
+    <Float32 name="vf"/>
+    <Float64 name="vd"/>
+    <Char name="vc"/>
+    <String name="vs"/>
+    <Opaque name="vo"/>
+    <Enum name="primary_cloud" enum="/cloud_class_t">
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+    <Enum name="secondary_cloud" enum="/cloud_class_t">
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+</Dataset>
diff --git a/tests/dmrset/test_atomic_types.syn.dmr b/tests/dmrset/test_atomic_types.syn.dmr
new file mode 100644
index 0000000..e402d62
--- /dev/null
+++ b/tests/dmrset/test_atomic_types.syn.dmr
@@ -0,0 +1,73 @@
+<Dataset
+         name="test_atomic_types.syn"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Enumeration name="cloud_class_t" basetype="Int8">
+        <EnumConst name="Clear" value="0"/>
+        <EnumConst name="Cumulonimbus" value="1"/>
+        <EnumConst name="Stratus" value="2"/>
+        <EnumConst name="Stratocumulus" value="3"/>
+        <EnumConst name="Cumulus" value="4"/>
+        <EnumConst name="Altostratus" value="5"/>
+        <EnumConst name="Nimbostratus" value="6"/>
+        <EnumConst name="Altocumulus" value="7"/>
+        <EnumConst name="Cirrostratus" value="8"/>
+        <EnumConst name="Cirrocumulus" value="9"/>
+        <EnumConst name="Cirrus" value="10"/>
+        <EnumConst name="Missing" value="127"/>
+    </Enumeration>
+    <Int8 name="v8"/>
+    <UInt8 name="vu8">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt8>
+    <Int16 name="v16"/>
+    <UInt16 name="vu16">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt16>
+    <Int32 name="v32"/>
+    <UInt32 name="vu32">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt32>
+    <Int64 name="v64"/>
+    <UInt64 name="vu64">
+        <Attribute name="_Unsigned" type="String">
+            <Value>
+                true
+            </Value>
+        </Attribute>
+    </UInt64>
+    <Float32 name="vf"/>
+    <Float64 name="vd"/>
+    <Char name="vc"/>
+    <String name="vs"/>
+    <Opaque name="vo"/>
+    <Enum name="primary_cloud" enum="/cloud_class_t">
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+    <Enum name="secondary_cloud" enum="/cloud_class_t">
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+</Dataset>
diff --git a/tests/dmrset/test_enum.nc.dmr b/tests/dmrset/test_enum.nc.dmr
new file mode 100644
index 0000000..24e49bc
--- /dev/null
+++ b/tests/dmrset/test_enum.nc.dmr
@@ -0,0 +1,29 @@
+<Dataset
+         name="test_enum.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Enumeration name="cloud_class_t" basetype="Int8">
+        <EnumConst name="Clear" value="0"/>
+        <EnumConst name="Cumulonimbus" value="1"/>
+        <EnumConst name="Stratus" value="2"/>
+        <EnumConst name="Stratocumulus" value="3"/>
+        <EnumConst name="Cumulus" value="4"/>
+        <EnumConst name="Altostratus" value="5"/>
+        <EnumConst name="Nimbostratus" value="6"/>
+        <EnumConst name="Altocumulus" value="7"/>
+        <EnumConst name="Cirrostratus" value="8"/>
+        <EnumConst name="Cirrocumulus" value="9"/>
+        <EnumConst name="Cirrus" value="10"/>
+        <EnumConst name="Missing" value="127"/>
+    </Enumeration>
+    <Enum name="primary_cloud" enum="/cloud_class_t">
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+</Dataset>
diff --git a/tests/dmrset/test_enum_array.nc.dmr b/tests/dmrset/test_enum_array.nc.dmr
new file mode 100644
index 0000000..54243da
--- /dev/null
+++ b/tests/dmrset/test_enum_array.nc.dmr
@@ -0,0 +1,31 @@
+<Dataset
+         name="test_enum_array.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Enumeration name="cloud_class_t" basetype="Int8">
+        <EnumConst name="Clear" value="0"/>
+        <EnumConst name="Cumulonimbus" value="1"/>
+        <EnumConst name="Stratus" value="2"/>
+        <EnumConst name="Stratocumulus" value="3"/>
+        <EnumConst name="Cumulus" value="4"/>
+        <EnumConst name="Altostratus" value="5"/>
+        <EnumConst name="Nimbostratus" value="6"/>
+        <EnumConst name="Altocumulus" value="7"/>
+        <EnumConst name="Cirrostratus" value="8"/>
+        <EnumConst name="Cirrocumulus" value="9"/>
+        <EnumConst name="Cirrus" value="10"/>
+        <EnumConst name="Missing" value="127"/>
+    </Enumeration>
+    <Dimension name="d5" size="5"/>
+    <Enum name="primary_cloud" enum="/cloud_class_t">
+        <Dim name="/d5"/>
+        <Attribute name="_FillValue" type="String">
+            <Value>
+                Missing
+            </Value>
+        </Attribute>
+    </Enum>
+</Dataset>
diff --git a/tests/dmrset/test_groups1.nc.dmr b/tests/dmrset/test_groups1.nc.dmr
new file mode 100644
index 0000000..d7fc538
--- /dev/null
+++ b/tests/dmrset/test_groups1.nc.dmr
@@ -0,0 +1,30 @@
+<Dataset
+         name="test_groups1.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="dim1" size="5"/>
+    <Group name="g">
+        <Dimension name="dim2" size="3"/>
+        <Group name="h">
+            <Dimension name="dim3" size="7"/>
+            <Int32 name="v1">
+                <Dim name="/dim1"/>
+            </Int32>
+            <Float32 name="v2">
+                <Dim name="/g/dim2"/>
+            </Float32>
+        </Group>
+        <Group name="i">
+            <Dimension name="dim3" size="7"/>
+            <Int32 name="v1">
+                <Dim name="/dim1"/>
+            </Int32>
+            <Float32 name="v3">
+                <Dim name="/g/i/dim3"/>
+            </Float32>
+        </Group>
+    </Group>
+</Dataset>
diff --git a/tests/dmrset/test_one_var.nc.dmr b/tests/dmrset/test_one_var.nc.dmr
new file mode 100644
index 0000000..fcd87da
--- /dev/null
+++ b/tests/dmrset/test_one_var.nc.dmr
@@ -0,0 +1,9 @@
+<Dataset
+         name="test_one_var.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Int32 name="t"/>
+</Dataset>
diff --git a/tests/dmrset/test_one_vararray.nc.dmr b/tests/dmrset/test_one_vararray.nc.dmr
new file mode 100644
index 0000000..8e1c2cd
--- /dev/null
+++ b/tests/dmrset/test_one_vararray.nc.dmr
@@ -0,0 +1,12 @@
+<Dataset
+         name="test_one_vararray.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="d2" size="2"/>
+    <Int32 name="t">
+        <Dim name="/d2"/>
+    </Int32>
+</Dataset>
diff --git a/tests/dmrset/test_struct_array.nc.dmr b/tests/dmrset/test_struct_array.nc.dmr
new file mode 100644
index 0000000..e657fbc
--- /dev/null
+++ b/tests/dmrset/test_struct_array.nc.dmr
@@ -0,0 +1,18 @@
+<Dataset
+         name="test_struct_array.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="dx" size="4"/>
+    <Dimension name="dy" size="3"/>
+    <Structure name="s">
+        <Int32 name="x"/>
+        <Int32 name="y"/>
+        <Dim name="/dx"/>
+        <Dim name="/dy"/>
+        <Map name="/s.x"/>
+        <Map name="/s.y"/>
+    </Structure>
+</Dataset>
diff --git a/tests/dmrset/test_struct_array_2.nc.dmr b/tests/dmrset/test_struct_array_2.nc.dmr
new file mode 100644
index 0000000..4dff21b
--- /dev/null
+++ b/tests/dmrset/test_struct_array_2.nc.dmr
@@ -0,0 +1,26 @@
+<Dataset
+         name="test_struct_array.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="dx" size="4"/>
+    <Dimension name="dy" size="3"/>
+    
+    <Float32 name="z">
+        <Dim name="/dx"/>
+    </Float32>
+    <Float32 name="t">
+        <Dim name="/dy"/>
+    </Float32>
+    
+    <Structure name="s">
+        <Int32 name="x"/>
+        <Int32 name="y"/>
+        <Dim name="/dx"/>
+        <Dim name="/dy"/>
+        <Map name="/z"/>
+        <Map name="/t"/>
+    </Structure>
+</Dataset>
diff --git a/tests/dmrset/test_struct_nested.hdf5.dmr b/tests/dmrset/test_struct_nested.hdf5.dmr
new file mode 100644
index 0000000..cd6a562
--- /dev/null
+++ b/tests/dmrset/test_struct_nested.hdf5.dmr
@@ -0,0 +1,20 @@
+<Dataset
+         name="test_struct_nested.hdf5"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Structure name="x">
+        <Structure name="field1">
+            <Int32 name="x"/>
+            <Int32 name="y"/>
+        </Structure>
+        <Structure name="field2">
+            <Int32 name="x"/>
+            <Int32 name="y"/>
+        </Structure>
+        <Map name="/x.field1.x"/>
+        <Map name="/x.field1.y"/>
+    </Structure>
+</Dataset>
diff --git a/tests/dmrset/test_struct_nested3.hdf5.dmr b/tests/dmrset/test_struct_nested3.hdf5.dmr
new file mode 100644
index 0000000..3854e33
--- /dev/null
+++ b/tests/dmrset/test_struct_nested3.hdf5.dmr
@@ -0,0 +1,15 @@
+<Dataset
+         name="test_struct_nested3.hdf5"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Structure name="x">
+        <Structure name="field3">
+            <Structure name="field2">
+                <Int32 name="field1"/>
+            </Structure>
+        </Structure>
+    </Structure>
+</Dataset>
diff --git a/tests/dmrset/test_struct_type.nc.dmr b/tests/dmrset/test_struct_type.nc.dmr
new file mode 100644
index 0000000..f6b004a
--- /dev/null
+++ b/tests/dmrset/test_struct_type.nc.dmr
@@ -0,0 +1,14 @@
+<Dataset
+         name="test_struct_type.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Structure name="s">
+        <Int32 name="x"/>
+        <Int32 name="y"/>
+        <Map name="/s.x"/>
+        <Map name="/s.y"/>
+    </Structure>
+</Dataset>
diff --git a/tests/dmrset/test_utf8.nc.dmr b/tests/dmrset/test_utf8.nc.dmr
new file mode 100644
index 0000000..f5a4cee
--- /dev/null
+++ b/tests/dmrset/test_utf8.nc.dmr
@@ -0,0 +1,12 @@
+<Dataset
+         name="test_utf8.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="d2" size="2"/>
+    <String name="vs">
+        <Dim name="/d2"/>
+    </String>
+</Dataset>
diff --git a/tests/dmrset/test_vlen1.nc.dmr b/tests/dmrset/test_vlen1.nc.dmr
new file mode 100644
index 0000000..9796b29
--- /dev/null
+++ b/tests/dmrset/test_vlen1.nc.dmr
@@ -0,0 +1,11 @@
+<Dataset
+         name="test_vlen1.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Sequence name="x">
+        <Int32 name="x"/>
+    </Sequence>
+</Dataset>
diff --git a/tests/dmrset/test_vlen2.nc.dmr b/tests/dmrset/test_vlen2.nc.dmr
new file mode 100644
index 0000000..fefa4b1
--- /dev/null
+++ b/tests/dmrset/test_vlen2.nc.dmr
@@ -0,0 +1,15 @@
+<Dataset
+         name="test_vlen2.nc"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="d3" size="3"/>
+    <Dimension name="d2" size="2"/>
+    <Sequence name="x">
+        <Int32 name="x"/>
+        <Dim name="/d3"/>
+        <Dim name="/d2"/>
+    </Sequence>
+</Dataset>
diff --git a/tests/dmrset/test_vlen3.hdf5.dmr b/tests/dmrset/test_vlen3.hdf5.dmr
new file mode 100644
index 0000000..4e81911
--- /dev/null
+++ b/tests/dmrset/test_vlen3.hdf5.dmr
@@ -0,0 +1,13 @@
+<Dataset
+         name="test_vlen3.hdf5"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Structure name="v1">
+        <Sequence name="f1">
+            <Int32 name="f1"/>
+        </Sequence>
+    </Structure>
+</Dataset>
diff --git a/tests/dmrset/test_vlen5.hdf5.dmr b/tests/dmrset/test_vlen5.hdf5.dmr
new file mode 100644
index 0000000..d07a71e
--- /dev/null
+++ b/tests/dmrset/test_vlen5.hdf5.dmr
@@ -0,0 +1,15 @@
+<Dataset
+         name="test_vlen5.hdf5"
+         dapVersion="4.0"
+         dmrVersion="1.0"
+         xml:base="TestParsers"
+         xmlns="http://xml.opendap.org/ns/DAP/4.0#"
+         xmlns:dap="http://xml.opendap.org/ns/DAP/4.0#">
+    <Dimension name="d2" size="2"/>
+    <Structure name="v1">
+        <Sequence name="v">
+            <Int32 name="v"/>
+        </Sequence>
+        <Dim name="/d2"/>
+    </Structure>
+</Dataset>
diff --git a/tests/expr-test.cc b/tests/expr-test.cc
index 5829571..d0f3085 100644
--- a/tests/expr-test.cc
+++ b/tests/expr-test.cc
@@ -56,7 +56,7 @@
 #include "DataDDS.h"
 #include "ConstraintEvaluator.h"
 #include "ServerFunctionsList.h"
-#include "XDRStreamUnMarshaller.h"
+// #include "XDRStreamUnMarshaller.h"
 #include "XDRStreamMarshaller.h"
 #include "ResponseBuilder.h"
 #include "Response.h"
diff --git a/tests/expr-testsuite/data.21.base b/tests/expr-testsuite/data.21.base
new file mode 100644
index 0000000..895561c
--- /dev/null
+++ b/tests/expr-testsuite/data.21.base
@@ -0,0 +1,6 @@
+The complete DDS:
+Dataset {
+    Int32 a[0];
+} test.21;
+The data:
+Int32 a[0] = {};
\ No newline at end of file
diff --git a/tests/expr-testsuite/data.22.base b/tests/expr-testsuite/data.22.base
new file mode 100644
index 0000000..d7373cb
--- /dev/null
+++ b/tests/expr-testsuite/data.22.base
@@ -0,0 +1,10 @@
+The complete DDS:
+Dataset {
+    Int32 a;
+    Int32 b[10];
+    Int32 c[0];
+} test.22;
+The data:
+Int32 a = 32;
+Int32 b[10] = {32, 1024, 32768, 1048576, 33554432, 1073741824, 32, 1024, 32768, 1048576};
+Int32 c[0] = {};
diff --git a/tests/expr-testsuite/data.23.base b/tests/expr-testsuite/data.23.base
new file mode 100644
index 0000000..3326534
--- /dev/null
+++ b/tests/expr-testsuite/data.23.base
@@ -0,0 +1,10 @@
+The complete DDS:
+Dataset {
+    Int32 a;
+    Int32 b[10];
+    Int32 c[4][0];
+} test.22;
+The data:
+Int32 a = 32;
+Int32 b[10] = {32, 1024, 32768, 1048576, 33554432, 1073741824, 32, 1024, 32768, 1048576};
+Int32 c[4][0] = {{},{},{},{}};
diff --git a/tests/expr-testsuite/data.24.base b/tests/expr-testsuite/data.24.base
new file mode 100644
index 0000000..6701ae3
--- /dev/null
+++ b/tests/expr-testsuite/data.24.base
@@ -0,0 +1,10 @@
+The complete DDS:
+Dataset {
+    Int32 a;
+    Int32 b[10];
+    Int32 c[0][4];
+} test.22;
+The data:
+Int32 a = 32;
+Int32 b[10] = {32, 1024, 32768, 1048576, 33554432, 1073741824, 32, 1024, 32768, 1048576};
+Int32 c[0][4] = {};
\ No newline at end of file
diff --git a/tests/expr-testsuite/data.25.base b/tests/expr-testsuite/data.25.base
new file mode 100644
index 0000000..090f7b9
--- /dev/null
+++ b/tests/expr-testsuite/data.25.base
@@ -0,0 +1,8 @@
+The complete DDS:
+Dataset {
+    Structure {
+    } exp;
+} data6;
+The data:
+Structure {
+} exp = {  };
diff --git a/tests/expr-testsuite/data.26.base b/tests/expr-testsuite/data.26.base
new file mode 100644
index 0000000..8a2d663
--- /dev/null
+++ b/tests/expr-testsuite/data.26.base
@@ -0,0 +1,16 @@
+The complete DDS:
+Dataset {
+    Structure {
+        Int32 j;
+        Int32 i;
+        Structure {
+        } data;
+    } exp;
+} data6;
+The data:
+Structure {
+    Int32 j;
+    Int32 i;
+    Structure {
+    } data;
+} exp = { 32, 32, {  } };
diff --git a/tests/expr-testsuite/test.21.dds b/tests/expr-testsuite/test.21.dds
new file mode 100644
index 0000000..10fb509
--- /dev/null
+++ b/tests/expr-testsuite/test.21.dds
@@ -0,0 +1,6 @@
+
+# Zero-length array. jhrg 1/28/16
+
+Dataset {
+   Int32 a[0];
+} test.21;
diff --git a/tests/expr-testsuite/test.22.dds b/tests/expr-testsuite/test.22.dds
new file mode 100644
index 0000000..021dff3
--- /dev/null
+++ b/tests/expr-testsuite/test.22.dds
@@ -0,0 +1,8 @@
+
+# Data containing a zero-length array. jhrg 1/28/16
+
+Dataset {
+   Int32 a;
+   Int32 b[10];
+   Int32 c[0];
+} test.22;
diff --git a/tests/expr-testsuite/test.23.dds b/tests/expr-testsuite/test.23.dds
new file mode 100644
index 0000000..db51893
--- /dev/null
+++ b/tests/expr-testsuite/test.23.dds
@@ -0,0 +1,8 @@
+
+# Data containing two zero-length arrays. jhrg 1/28/16
+
+Dataset {
+   Int32 a;
+   Int32 b[10];
+   Int32 c[4][0];
+} test.22;
diff --git a/tests/expr-testsuite/test.24.dds b/tests/expr-testsuite/test.24.dds
new file mode 100644
index 0000000..364faee
--- /dev/null
+++ b/tests/expr-testsuite/test.24.dds
@@ -0,0 +1,8 @@
+
+# Data containing a zero-length array. jhrg 1/28/16
+
+Dataset {
+   Int32 a;
+   Int32 b[10];
+   Int32 c[0][4];
+} test.22;
diff --git a/tests/expr-testsuite/test.25.dds b/tests/expr-testsuite/test.25.dds
new file mode 100644
index 0000000..7a286d3
--- /dev/null
+++ b/tests/expr-testsuite/test.25.dds
@@ -0,0 +1,4 @@
+dataset {
+    Structure {
+    } exp;
+} data6;
diff --git a/tests/expr-testsuite/test.26.dds b/tests/expr-testsuite/test.26.dds
new file mode 100644
index 0000000..c1d4b32
--- /dev/null
+++ b/tests/expr-testsuite/test.26.dds
@@ -0,0 +1,8 @@
+dataset {
+    Structure {
+	Int32 j;
+	Int32 i;
+	Structure {
+	} data;
+    } exp;
+} data6;
diff --git a/tests/EXPRTest.at b/tests/getdap4Test.at
similarity index 79%
copy from tests/EXPRTest.at
copy to tests/getdap4Test.at
index c5264b2..ec5085b 100644
--- a/tests/EXPRTest.at
+++ b/tests/getdap4Test.at
@@ -58,24 +58,8 @@ EXPR_RESPONSE_P([test.2a], [s2[[2:4]].m[[0:4]],s2[[2:4]].l[[0:5]]], [test.2f], [
 EXPR_RESPONSE_P([test.3], [i[[1:10]]], [test.3], [pass])
 EXPR_RESPONSE_P([test.4], ['s&s=~"^Silly.*"'], [test.4], [pass])
 
-dnl In changing the TestStr class so that it writes a constant value (Silly ...: 1)
-dnl I had to hack this test to use the -b option to expr-test. EXPR_RESPONSE_P uses
-dnl only the -w/-W options, so I dropped using that macro kluge and went right for the
-dnl actual test macro. 12/2/13/ jhrg
-dnl
-dnl EXPR_RESPONSE_P([test.e], ['names.s&names.s=~".*: 3"'], [test.ea], [pass])
-    
-_EXPR_TEST([-b -w], [$abs_srcdir/expr-testsuite/test.e], ['names.s&names.s=~".*: 3"'], 
-    [$abs_srcdir/expr-testsuite/test.ea.base], [pass])
-    
-_EXPR_TEST([-b -W], [$abs_srcdir/expr-testsuite/test.e], ['names.s&names.s=~".*: 3"'], 
-    [$abs_srcdir/expr-testsuite/test.ea.base], [pass])
-
-dnl since 'Silly ...:5' will never be produced, this tests what happens when the sequence
-dnl does not contain the value. Note that this test does not have to be rewritten because
-dnl of the change to the TestStr code. 12/2/13 jhrg
+EXPR_RESPONSE_P([test.e], ['names.s&names.s=~".*: 3"'], [test.ea], [pass])
 EXPR_RESPONSE_P([test.e], ['names.s&names.s=~".*: 5"'], [test.eb], [pass])
-
 EXPR_RESPONSE_P([test.5], [g[[0:2:4]][[0]][[0]]], [test.5], [pass])
 EXPR_RESPONSE_P([test.5], [g[[0:2:4]][[0:2:4]][[0:2:4]]], [test.5a], [pass])
 EXPR_RESPONSE_P([test.6], [i], [test.6], [pass])
@@ -91,16 +75,6 @@ EXPR_RESPONSE_P([test.8], ["data%20name,y"], [test.8b], [pass])
 EXPR_RESPONSE_P([test.9], ["Data-Set-2.fakeDim0[[0:3]],Data-Set-2.fakeDim1[[0:3]]"], [test.9], [pass])
 EXPR_RESPONSE_P([test.5], [g[[1:4:9]]], [test.5e], [pass])
 EXPR_RESPONSE_P([test.6], [i[[1:4:9]]], [test.6b], [pass])
-
-# New tests for server functions that take arrays and include array projections
-# Added 10/23/13 jhrg
-EXPR_RESPONSE_P([test.6], [scale\(i,2\)], [test.6.func1], [pass])
-EXPR_RESPONSE_P([test.6], [scale\(i[[2:4]][[3:6]],2\)], [test.6.func2], [pass])
-
-EXPR_RESPONSE_P([test.5], [scale\(i[[3]],2\)], [test.5.func3], [pass])
-# This doesn't work yet 10/23/13 jhrg 
-EXPR_RESPONSE_P([test.5], [scale\(j,2\)], [test.5.func4], [pass])
-
 EXPR_RESPONSE_P([test.a], ["" -b], [test.a], [pass])
 EXPR_RESPONSE_P([test.a], ["&i<2000" -b], [test.aa], [pass])
 EXPR_RESPONSE_P([test.a], ["j&i>2000" -b], [test.ab], [pass])
diff --git a/tests/getdapTest b/tests/getdapTest
deleted file mode 100755
index 3b74e23..0000000
--- a/tests/getdapTest
+++ /dev/null
@@ -1,2034 +0,0 @@
-#! /bin/sh
-# Generated from getdapTest.at by GNU Autoconf 2.69.
-#
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
-#
-# This test suite is free software; the Free Software Foundation gives
-# unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# How were we run?
-at_cli_args="$@"
-
-
-# Not all shells have the 'times' builtin; the subshell is needed to make
-# sure we discard the 'times: not found' message from the shell.
-at_times_p=false
-(times) >/dev/null 2>&1 && at_times_p=:
-
-# CLI Arguments to pass to the debugging scripts.
-at_debug_args=
-# -e sets to true
-at_errexit_p=false
-# Shall we be verbose?  ':' means no, empty means yes.
-at_verbose=:
-at_quiet=
-# Running several jobs in parallel, 0 means as many as test groups.
-at_jobs=1
-at_traceon=:
-at_trace_echo=:
-at_check_filter_trace=:
-
-# Shall we keep the debug scripts?  Must be `:' when the suite is
-# run by a debug script, so that the script doesn't remove itself.
-at_debug_p=false
-# Display help message?
-at_help_p=false
-# Display the version message?
-at_version_p=false
-# List test groups?
-at_list_p=false
-# --clean
-at_clean=false
-# Test groups to run
-at_groups=
-# Whether to rerun failed tests.
-at_recheck=
-# Whether a write failure occurred
-at_write_fail=0
-
-# The directory we run the suite in.  Default to . if no -C option.
-at_dir=`pwd`
-# An absolute reference to this testsuite script.
-case $as_myself in
-  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
-  * ) at_myself=$at_dir/$as_myself ;;
-esac
-# Whether -C is in effect.
-at_change_dir=false
-
-# Whether to enable colored test results.
-at_color=no
-# List of the tested programs.
-at_tested=''
-# As many question marks as there are digits in the last test group number.
-# Used to normalize the test group numbers so that `ls' lists them in
-# numerical order.
-at_format='?'
-# Description of all the test groups.
-at_help_all="1;getdapTest.at:34;getdap -d http://test.opendap.org/dap/data/nc/fnoc1.nc getdap-testsuite/fnoc1.nc.dds (pass);getdap;
-"
-# List of the all the test groups.
-at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
-
-# at_fn_validate_ranges NAME...
-# -----------------------------
-# Validate and normalize the test group number contained in each variable
-# NAME. Leading zeroes are treated as decimal.
-at_fn_validate_ranges ()
-{
-  for at_grp
-  do
-    eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 1; then
-      $as_echo "invalid test group: $at_value" >&2
-      exit 1
-    fi
-    case $at_value in
-      0*) # We want to treat leading 0 as decimal, like expr and test, but
-	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
-	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
-	  # expr fork, but it is not worth the effort to determine if the
-	  # shell supports XSI when the user can just avoid leading 0.
-	  eval $at_grp='`expr $at_value + 0`' ;;
-    esac
-  done
-}
-
-at_prev=
-for at_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$at_prev"; then
-    at_option=$at_prev=$at_option
-    at_prev=
-  fi
-
-  case $at_option in
-  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
-  *)    at_optarg= ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $at_option in
-    --help | -h )
-	at_help_p=:
-	;;
-
-    --list | -l )
-	at_list_p=:
-	;;
-
-    --version | -V )
-	at_version_p=:
-	;;
-
-    --clean | -c )
-	at_clean=:
-	;;
-
-    --color )
-	at_color=always
-	;;
-    --color=* )
-	case $at_optarg in
-	no | never | none) at_color=never ;;
-	auto | tty | if-tty) at_color=auto ;;
-	always | yes | force) at_color=always ;;
-	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
-	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
-	esac
-	;;
-
-    --debug | -d )
-	at_debug_p=:
-	;;
-
-    --errexit | -e )
-	at_debug_p=:
-	at_errexit_p=:
-	;;
-
-    --verbose | -v )
-	at_verbose=; at_quiet=:
-	;;
-
-    --trace | -x )
-	at_traceon='set -x'
-	at_trace_echo=echo
-	at_check_filter_trace=at_fn_filter_trace
-	;;
-
-    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
-	at_fn_validate_ranges at_option
-	as_fn_append at_groups "$at_option$as_nl"
-	;;
-
-    # Ranges
-    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
-	at_range_start=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_start
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,$p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d X-`
-	at_fn_validate_ranges at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '1,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
-    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
-    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
-    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
-    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`expr $at_option : '\(.*\)-'`
-	at_range_end=`expr $at_option : '.*-\(.*\)'`
-	if test $at_range_start -gt $at_range_end; then
-	  at_tmp=$at_range_end
-	  at_range_end=$at_range_start
-	  at_range_start=$at_tmp
-	fi
-	at_fn_validate_ranges at_range_start at_range_end
-	at_range=`$as_echo "$at_groups_all" | \
-	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
-	as_fn_append at_groups "$at_range$as_nl"
-	;;
-
-    # Directory selection.
-    --directory | -C )
-	at_prev=--directory
-	;;
-    --directory=* )
-	at_change_dir=:
-	at_dir=$at_optarg
-	if test x- = "x$at_dir" ; then
-	  at_dir=./-
-	fi
-	;;
-
-    # Parallel execution.
-    --jobs | -j )
-	at_jobs=0
-	;;
-    --jobs=* | -j[0-9]* )
-	if test -n "$at_optarg"; then
-	  at_jobs=$at_optarg
-	else
-	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
-	fi
-	case $at_jobs in *[!0-9]*)
-	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
-	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
-	esac
-	;;
-
-    # Keywords.
-    --keywords | -k )
-	at_prev=--keywords
-	;;
-    --keywords=* )
-	at_groups_selected=$at_help_all
-	at_save_IFS=$IFS
-	IFS=,
-	set X $at_optarg
-	shift
-	IFS=$at_save_IFS
-	for at_keyword
-	do
-	  at_invert=
-	  case $at_keyword in
-	  '!'*)
-	    at_invert="-v"
-	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
-	    ;;
-	  esac
-	  # It is on purpose that we match the test group titles too.
-	  at_groups_selected=`$as_echo "$at_groups_selected" |
-	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
-	done
-	# Smash the keywords.
-	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
-	as_fn_append at_groups "$at_groups_selected$as_nl"
-	;;
-    --recheck)
-	at_recheck=:
-	;;
-
-    *=*)
-	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-	# Reject names that are not valid shell variable names.
-	case $at_envvar in
-	  '' | [0-9]* | *[!_$as_cr_alnum]* )
-	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
-	esac
-	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-	# Export now, but save eval for later and for debug scripts.
-	export $at_envvar
-	as_fn_append at_debug_args " $at_envvar='$at_value'"
-	;;
-
-     *) $as_echo "$as_me: invalid option: $at_option" >&2
-	$as_echo "Try \`$0 --help' for more information." >&2
-	exit 1
-	;;
-  esac
-done
-
-# Verify our last option didn't require an argument
-if test -n "$at_prev"; then :
-  as_fn_error $? "\`$at_prev' requires an argument"
-fi
-
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-
-# Selected test groups.
-if test -z "$at_groups$at_recheck"; then
-  at_groups=$at_groups_all
-else
-  if test -n "$at_recheck" && test -r "$at_suite_log"; then
-    at_oldfails=`sed -n '
-      /^Failed tests:$/,/^Skipped tests:$/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^Unexpected passes:$/,/^## Detailed failed tests/{
-	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
-      }
-      /^## Detailed failed tests/q
-      ' "$at_suite_log"`
-    as_fn_append at_groups "$at_oldfails$as_nl"
-  fi
-  # Sort the tests, removing duplicates.
-  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
-fi
-
-if test x"$at_color" = xalways \
-   || { test x"$at_color" = xauto && test -t 1; }; then
-  at_red=`printf '\033[0;31m'`
-  at_grn=`printf '\033[0;32m'`
-  at_lgn=`printf '\033[1;32m'`
-  at_blu=`printf '\033[1;34m'`
-  at_std=`printf '\033[m'`
-else
-  at_red= at_grn= at_lgn= at_blu= at_std=
-fi
-
-# Help message.
-if $at_help_p; then
-  cat <<_ATEOF || at_write_fail=1
-Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
-
-Run all the tests, or the selected TESTS, given by numeric ranges, and
-save a detailed log file.  Upon failure, create debugging scripts.
-
-Do not change environment variables directly.  Instead, set them via
-command line arguments.  Set \`AUTOTEST_PATH' to select the executables
-to exercise.  Each relative directory is expanded as build and source
-directories relative to the top level of this distribution.
-E.g., from within the build directory /tmp/foo-1.0, invoking this:
-
-  $ $0 AUTOTEST_PATH=bin
-
-is equivalent to the following, assuming the source directory is /src/foo-1.0:
-
-  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Operation modes:
-  -h, --help     print the help message, then exit
-  -V, --version  print version number, then exit
-  -c, --clean    remove all the files this test suite might create and exit
-  -l, --list     describes all the tests, or the selected TESTS
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Execution tuning:
-  -C, --directory=DIR
-                 change to directory DIR before starting
-      --color[=never|auto|always]
-                 enable colored test results on terminal, or always
-  -j, --jobs[=N]
-                 Allow N jobs at once; infinite jobs with no arg (default 1)
-  -k, --keywords=KEYWORDS
-                 select the tests matching all the comma-separated KEYWORDS
-                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
-      --recheck  select all tests that failed or passed unexpectedly last time
-  -e, --errexit  abort as soon as a test fails; implies --debug
-  -v, --verbose  force more detailed output
-                 default for debugging scripts
-  -d, --debug    inhibit clean up and top-level logging
-                 default for debugging scripts
-  -x, --trace    enable tests shell tracing
-_ATEOF
-cat <<_ATEOF || at_write_fail=1
-
-Report bugs to <opendap-tech at opendap.org>.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# List of tests.
-if $at_list_p; then
-  cat <<_ATEOF || at_write_fail=1
-libdap 3.15.1 test suite: getdap test groups:
-
- NUM: FILE-NAME:LINE     TEST-GROUP-NAME
-      KEYWORDS
-
-_ATEOF
-  # Pass an empty line as separator between selected groups and help.
-  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
-    awk 'NF == 1 && FS != ";" {
-	   selected[$ 1] = 1
-	   next
-	 }
-	 /^$/ { FS = ";" }
-	 NF > 0 {
-	   if (selected[$ 1]) {
-	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
-	     if ($ 4) {
-	       lmax = 79
-	       indent = "     "
-	       line = indent
-	       len = length (line)
-	       n = split ($ 4, a, " ")
-	       for (i = 1; i <= n; i++) {
-		 l = length (a[i]) + 1
-		 if (i > 1 && len + l > lmax) {
-		   print line
-		   line = indent " " a[i]
-		   len = length (line)
-		 } else {
-		   line = line " " a[i]
-		   len += l
-		 }
-	       }
-	       if (n)
-		 print line
-	     }
-	   }
-	 }' || at_write_fail=1
-  exit $at_write_fail
-fi
-if $at_version_p; then
-  $as_echo "$as_me (libdap 3.15.1)" &&
-  cat <<\_ATEOF || at_write_fail=1
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This test suite is free software; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-_ATEOF
-  exit $at_write_fail
-fi
-
-# Should we print banners?  Yes if more than one test is run.
-case $at_groups in #(
-  *$as_nl* )
-      at_print_banners=: ;; #(
-  * ) at_print_banners=false ;;
-esac
-# Text for banner N, set to a single space once printed.
-
-# Take any -C into account.
-if $at_change_dir ; then
-  test x != "x$at_dir" && cd "$at_dir" \
-    || as_fn_error $? "unable to change directory"
-  at_dir=`pwd`
-fi
-
-# Load the config files for any default variable assignments.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || as_fn_error $? "invalid content: $at_file"
-done
-
-# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
-: "${at_top_build_prefix=$at_top_builddir}"
-
-# Perform any assignments requested during argument parsing.
-eval "$at_debug_args"
-
-# atconfig delivers names relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir_var in srcdir top_srcdir top_build_prefix
-  do
-    eval at_val=\$at_$at_dir_var
-    case $at_val in
-      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
-      *) at_prefix=../../ ;;
-    esac
-    eval "$at_dir_var=\$at_prefix\$at_val"
-  done
-fi
-
-## -------------------- ##
-## Directory structure. ##
-## -------------------- ##
-
-# This is the set of directories and files used by this script
-# (non-literals are capitalized):
-#
-# TESTSUITE         - the testsuite
-# TESTSUITE.log     - summarizes the complete testsuite run
-# TESTSUITE.dir/    - created during a run, remains after -d or failed test
-# + at-groups/      - during a run: status of all groups in run
-# | + NNN/          - during a run: meta-data about test group NNN
-# | | + check-line  - location (source file and line) of current AT_CHECK
-# | | + status      - exit status of current AT_CHECK
-# | | + stdout      - stdout of current AT_CHECK
-# | | + stder1      - stderr, including trace
-# | | + stderr      - stderr, with trace filtered out
-# | | + test-source - portion of testsuite that defines group
-# | | + times       - timestamps for computing duration
-# | | + pass        - created if group passed
-# | | + xpass       - created if group xpassed
-# | | + fail        - created if group failed
-# | | + xfail       - created if group xfailed
-# | | + skip        - created if group skipped
-# + at-stop         - during a run: end the run if this file exists
-# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
-# + 0..NNN/         - created for each group NNN, remains after -d or failed test
-# | + TESTSUITE.log - summarizes the group results
-# | + ...           - files created during the group
-
-# The directory the whole suite works in.
-# Should be absolute to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite ($at_dir might have changed since earlier).
-at_suite_log=$at_dir/$as_me.log
-# The directory containing helper files per test group.
-at_helper_dir=$at_suite_dir/at-groups
-# Stop file: if it exists, do not start new jobs.
-at_stop_file=$at_suite_dir/at-stop
-# The fifo used for the job dispatcher.
-at_job_fifo=$at_suite_dir/at-job-fifo
-
-if $at_clean; then
-  test -d "$at_suite_dir" &&
-    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-  rm -f -r "$at_suite_dir" "$at_suite_log"
-  exit $?
-fi
-
-# Don't take risks: use only absolute directories in PATH.
-#
-# For stand-alone test suites (ie. atconfig was not found),
-# AUTOTEST_PATH is relative to `.'.
-#
-# For embedded test suites, AUTOTEST_PATH is relative to the top level
-# of the package.  Then expand it into build/src parts, since users
-# may create executables in both places.
-AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
-at_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $AUTOTEST_PATH $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
-case $as_dir in
-  [\\/]* | ?:[\\/]* )
-    as_fn_append at_path "$as_dir"
-    ;;
-  * )
-    if test -z "$at_top_build_prefix"; then
-      # Stand-alone test suite.
-      as_fn_append at_path "$as_dir"
-    else
-      # Embedded test suite.
-      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
-      as_fn_append at_path "$at_top_srcdir/$as_dir"
-    fi
-    ;;
-esac
-  done
-IFS=$as_save_IFS
-
-
-# Now build and simplify PATH.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-at_new_path=
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $at_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -d "$as_dir" || continue
-case $as_dir in
-  [\\/]* | ?:[\\/]* ) ;;
-  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
-esac
-case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
-  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
-  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
-esac
-  done
-IFS=$as_save_IFS
-
-PATH=$at_new_path
-export PATH
-
-# Setting up the FDs.
-
-
-
-# 5 is the log file.  Not to be overwritten if `-d'.
-if $at_debug_p; then
-  at_suite_log=/dev/null
-else
-  : >"$at_suite_log"
-fi
-exec 5>>"$at_suite_log"
-
-# Banners and logs.
-$as_echo "## --------------------------------- ##
-## libdap 3.15.1 test suite: getdap. ##
-## --------------------------------- ##"
-{
-  $as_echo "## --------------------------------- ##
-## libdap 3.15.1 test suite: getdap. ##
-## --------------------------------- ##"
-  echo
-
-  $as_echo "$as_me: command line was:"
-  $as_echo "  \$ $0 $at_cli_args"
-  echo
-
-  # If ChangeLog exists, list a few lines in case it might help determining
-  # the exact version.
-  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
-    $as_echo "## ---------- ##
-## ChangeLog. ##
-## ---------- ##"
-    echo
-    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
-    echo
-  fi
-
-  {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-}
-  echo
-
-  # Contents of the config files.
-  for at_file in atconfig atlocal
-  do
-    test -r $at_file || continue
-    $as_echo "$as_me: $at_file:"
-    sed 's/^/| /' $at_file
-    echo
-  done
-} >&5
-
-
-## ------------------------- ##
-## Autotest shell functions. ##
-## ------------------------- ##
-
-# at_fn_banner NUMBER
-# -------------------
-# Output banner NUMBER, provided the testsuite is running multiple groups and
-# this particular banner has not yet been printed.
-at_fn_banner ()
-{
-  $at_print_banners || return 0
-  eval at_banner_text=\$at_banner_text_$1
-  test "x$at_banner_text" = "x " && return 0
-  eval "at_banner_text_$1=\" \""
-  if test -z "$at_banner_text"; then
-    $at_first || echo
-  else
-    $as_echo "$as_nl$at_banner_text$as_nl"
-  fi
-} # at_fn_banner
-
-# at_fn_check_prepare_notrace REASON LINE
-# ---------------------------------------
-# Perform AT_CHECK preparations for the command at LINE for an untraceable
-# command; REASON is the reason for disabling tracing.
-at_fn_check_prepare_notrace ()
-{
-  $at_trace_echo "Not enabling shell tracing (command contains $1)"
-  $as_echo "$2" >"$at_check_line_file"
-  at_check_trace=: at_check_filter=:
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_trace LINE
-# ------------------------------
-# Perform AT_CHECK preparations for the command at LINE for a traceable
-# command.
-at_fn_check_prepare_trace ()
-{
-  $as_echo "$1" >"$at_check_line_file"
-  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
-  : >"$at_stdout"; : >"$at_stderr"
-}
-
-# at_fn_check_prepare_dynamic COMMAND LINE
-# ----------------------------------------
-# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
-# preparation function.
-at_fn_check_prepare_dynamic ()
-{
-  case $1 in
-    *$as_nl*)
-      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
-    *)
-      at_fn_check_prepare_trace "$2" ;;
-  esac
-}
-
-# at_fn_filter_trace
-# ------------------
-# Remove the lines in the file "$at_stderr" generated by "set -x" and print
-# them to stderr.
-at_fn_filter_trace ()
-{
-  mv "$at_stderr" "$at_stder1"
-  grep '^ *+' "$at_stder1" >&2
-  grep -v '^ *+' "$at_stder1" >"$at_stderr"
-}
-
-# at_fn_log_failure FILE-LIST
-# ---------------------------
-# Copy the files in the list on stdout with a "> " prefix, and exit the shell
-# with a failure exit code.
-at_fn_log_failure ()
-{
-  for file
-    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
-  echo 1 > "$at_status_file"
-  exit 1
-}
-
-# at_fn_check_skip EXIT-CODE LINE
-# -------------------------------
-# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
-# the test group subshell with that same exit code. Use LINE in any report
-# about test failure.
-at_fn_check_skip ()
-{
-  case $1 in
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$2: hard failure"; exit 99;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-  esac
-}
-
-# at_fn_check_status EXPECTED EXIT-CODE LINE
-# ------------------------------------------
-# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
-# Otherwise, if it is 77 or 99, exit the test group subshell with that same
-# exit code; if it is anything else print an error message referring to LINE,
-# and fail the test.
-at_fn_check_status ()
-{
-  case $2 in
-    $1 ) ;;
-    77) echo 77 > "$at_status_file"; exit 77;;
-    99) echo 99 > "$at_status_file"; at_failed=:
-	$as_echo "$3: hard failure"; exit 99;;
-    *) $as_echo "$3: exit code was $2, expected $1"
-      at_failed=:;;
-  esac
-}
-
-# at_fn_diff_devnull FILE
-# -----------------------
-# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
-# invocations.
-at_fn_diff_devnull ()
-{
-  test -s "$1" || return 0
-  $at_diff "$at_devnull" "$1"
-}
-
-# at_fn_test NUMBER
-# -----------------
-# Parse out test NUMBER from the tail of this file.
-at_fn_test ()
-{
-  eval at_sed=\$at_sed$1
-  sed "$at_sed" "$at_myself" > "$at_test_source"
-}
-
-# at_fn_create_debugging_script
-# -----------------------------
-# Create the debugging script $at_group_dir/run which will reproduce the
-# current test group.
-at_fn_create_debugging_script ()
-{
-  {
-    echo "#! /bin/sh" &&
-    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
-    $as_echo "cd '$at_dir'" &&
-    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
-    echo 'exit 1'
-  } >"$at_group_dir/run" &&
-  chmod +x "$at_group_dir/run"
-}
-
-## -------------------------------- ##
-## End of autotest shell functions. ##
-## -------------------------------- ##
-{
-  $as_echo "## ---------------- ##
-## Tested programs. ##
-## ---------------- ##"
-  echo
-} >&5
-
-# Report what programs are being tested.
-for at_program in : $at_tested
-do
-  test "$at_program" = : && continue
-  case $at_program in
-    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
-    * )
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -f "$as_dir/$at_program" && break
-  done
-IFS=$as_save_IFS
-
-    at_program_=$as_dir/$at_program ;;
-  esac
-  if test -f "$at_program_"; then
-    {
-      $as_echo "$at_srcdir/getdapTest.at:3: $at_program_ --version"
-      "$at_program_" --version </dev/null
-      echo
-    } >&5 2>&1
-  else
-    as_fn_error $? "cannot find $at_program" "$LINENO" 5
-  fi
-done
-
-{
-  $as_echo "## ------------------ ##
-## Running the tests. ##
-## ------------------ ##"
-} >&5
-
-at_start_date=`date`
-at_start_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: starting at: $at_start_date" >&5
-
-# Create the master directory if it doesn't already exist.
-as_dir="$at_suite_dir"; as_fn_mkdir_p ||
-  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
-
-# Can we diff with `/dev/null'?  DU 5.0 refuses.
-if diff /dev/null /dev/null >/dev/null 2>&1; then
-  at_devnull=/dev/null
-else
-  at_devnull=$at_suite_dir/devnull
-  >"$at_devnull"
-fi
-
-# Use `diff -u' when possible.
-if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
-then
-  at_diff='diff -u'
-else
-  at_diff=diff
-fi
-
-# Get the last needed group.
-for at_group in : $at_groups; do :; done
-
-# Extract the start and end lines of each test group at the tail
-# of this file
-awk '
-BEGIN { FS="" }
-/^#AT_START_/ {
-  start = NR
-}
-/^#AT_STOP_/ {
-  test = substr ($ 0, 10)
-  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
-  if (test == "'"$at_group"'") exit
-}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
-. "$at_suite_dir/at-source-lines" ||
-  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
-rm -f "$at_suite_dir/at-source-lines"
-
-# Set number of jobs for `-j'; avoid more jobs than test groups.
-set X $at_groups; shift; at_max_jobs=$#
-if test $at_max_jobs -eq 0; then
-  at_jobs=1
-fi
-if test $at_jobs -ne 1 &&
-   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
-  at_jobs=$at_max_jobs
-fi
-
-# If parallel mode, don't output banners, don't split summary lines.
-if test $at_jobs -ne 1; then
-  at_print_banners=false
-  at_quiet=:
-fi
-
-# Set up helper dirs.
-rm -rf "$at_helper_dir" &&
-mkdir "$at_helper_dir" &&
-cd "$at_helper_dir" &&
-{ test -z "$at_groups" || mkdir $at_groups; } ||
-as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
-
-# Functions for running a test group.  We leave the actual
-# test group execution outside of a shell function in order
-# to avoid hitting zsh 4.x exit status bugs.
-
-# at_fn_group_prepare
-# -------------------
-# Prepare for running a test group.
-at_fn_group_prepare ()
-{
-  # The directory for additional per-group helper files.
-  at_job_dir=$at_helper_dir/$at_group
-  # The file containing the location of the last AT_CHECK.
-  at_check_line_file=$at_job_dir/check-line
-  # The file containing the exit status of the last command.
-  at_status_file=$at_job_dir/status
-  # The files containing the output of the tested commands.
-  at_stdout=$at_job_dir/stdout
-  at_stder1=$at_job_dir/stder1
-  at_stderr=$at_job_dir/stderr
-  # The file containing the code for a test group.
-  at_test_source=$at_job_dir/test-source
-  # The file containing dates.
-  at_times_file=$at_job_dir/times
-
-  # Be sure to come back to the top test directory.
-  cd "$at_suite_dir"
-
-  # Clearly separate the test groups when verbose.
-  $at_first || $at_verbose echo
-
-  at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-
-  # Create a fresh directory for the next test group, and enter.
-  # If one already exists, the user may have invoked ./run from
-  # within that directory; we remove the contents, but not the
-  # directory itself, so that we aren't pulling the rug out from
-  # under the shell's notion of the current directory.
-  at_group_dir=$at_suite_dir/$at_group_normalized
-  at_group_log=$at_group_dir/$as_me.log
-  if test -d "$at_group_dir"; then
-  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
-  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
-fi ||
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
-$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
-  # Be tolerant if the above `rm' was not able to remove the directory.
-  as_dir="$at_group_dir"; as_fn_mkdir_p
-
-  echo 0 > "$at_status_file"
-
-  # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log.
-  if test -z "$at_verbose"; then
-    at_tee_pipe='tee -a "$at_group_log"'
-  else
-    at_tee_pipe='cat >> "$at_group_log"'
-  fi
-}
-
-# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
-# -------------------------------------------------
-# Declare the test group ORDINAL, located at LINE with group description DESC,
-# and residing under BANNER. Use PAD to align the status column.
-at_fn_group_banner ()
-{
-  at_setup_line="$2"
-  test -n "$5" && at_fn_banner $5
-  at_desc="$3"
-  case $1 in
-    [0-9])      at_desc_line="  $1: ";;
-    [0-9][0-9]) at_desc_line=" $1: " ;;
-    *)          at_desc_line="$1: "  ;;
-  esac
-  as_fn_append at_desc_line "$3$4"
-  $at_quiet $as_echo_n "$at_desc_line"
-  echo "#                             -*- compilation -*-" >> "$at_group_log"
-}
-
-# at_fn_group_postprocess
-# -----------------------
-# Perform cleanup after running a test group.
-at_fn_group_postprocess ()
-{
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd "$at_suite_dir"
-
-  if test ! -f "$at_check_line_file"; then
-    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
-      A failure happened in a test group before any test could be
-      run. This means that test suite is improperly designed.  Please
-      report this failure to <opendap-tech at opendap.org>.
-_ATEOF
-    $as_echo "$at_setup_line" >"$at_check_line_file"
-    at_status=99
-  fi
-  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
-  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
-  case $at_xfail:$at_status in
-    yes:0)
-	at_msg="UNEXPECTED PASS"
-	at_res=xpass
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    no:0)
-	at_msg="ok"
-	at_res=pass
-	at_errexit=false
-	at_color=$at_grn
-	;;
-    *:77)
-	at_msg='skipped ('`cat "$at_check_line_file"`')'
-	at_res=skip
-	at_errexit=false
-	at_color=$at_blu
-	;;
-    no:* | *:99)
-	at_msg='FAILED ('`cat "$at_check_line_file"`')'
-	at_res=fail
-	at_errexit=$at_errexit_p
-	at_color=$at_red
-	;;
-    yes:*)
-	at_msg='expected failure ('`cat "$at_check_line_file"`')'
-	at_res=xfail
-	at_errexit=false
-	at_color=$at_lgn
-	;;
-  esac
-  echo "$at_res" > "$at_job_dir/$at_res"
-  # In parallel mode, output the summary line only afterwards.
-  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
-    $as_echo "$at_desc_line $at_color$at_msg$at_std"
-  else
-    # Make sure there is a separator even with long titles.
-    $as_echo " $at_color$at_msg$at_std"
-  fi
-  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-  case $at_status in
-    0|77)
-      # $at_times_file is only available if the group succeeded.
-      # We're not including the group log, so the success message
-      # is written in the global log separately.  But we also
-      # write to the group log in case they're using -d.
-      if test -f "$at_times_file"; then
-	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
-	rm -f "$at_times_file"
-      fi
-      $as_echo "$at_log_msg" >> "$at_group_log"
-      $as_echo "$at_log_msg" >&5
-
-      # Cleanup the group directory, unless the user wants the files
-      # or the success was unexpected.
-      if $at_debug_p || test $at_res = xpass; then
-	at_fn_create_debugging_script
-	if test $at_res = xpass && $at_errexit; then
-	  echo stop > "$at_stop_file"
-	fi
-      else
-	if test -d "$at_group_dir"; then
-	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-	  rm -fr "$at_group_dir"
-	fi
-	rm -f "$at_test_source"
-      fi
-      ;;
-    *)
-      # Upon failure, include the log into the testsuite's global
-      # log.  The failure message is written in the group log.  It
-      # is later included in the global log.
-      $as_echo "$at_log_msg" >> "$at_group_log"
-
-      # Upon failure, keep the group directory for autopsy, and create
-      # the debugging script.  With -e, do not start any further tests.
-      at_fn_create_debugging_script
-      if $at_errexit; then
-	echo stop > "$at_stop_file"
-      fi
-      ;;
-  esac
-}
-
-
-## ------------ ##
-## Driver loop. ##
-## ------------ ##
-
-
-if (set -m && set +m && set +b) >/dev/null 2>&1; then
-  set +b
-  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
-else
-  at_job_control_on=: at_job_control_off=: at_job_group=
-fi
-
-for at_signal in 1 2 15; do
-  trap 'set +x; set +e
-	$at_job_control_off
-	at_signal='"$at_signal"'
-	echo stop > "$at_stop_file"
-	trap "" $at_signal
-	at_pgids=
-	for at_pgid in `jobs -p 2>/dev/null`; do
-	  at_pgids="$at_pgids $at_job_group$at_pgid"
-	done
-	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
-	wait
-	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
-	  echo >&2
-	fi
-	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
-	set x $at_signame
-	test 1 -gt 2 && at_signame=$at_signal
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
-$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
-	as_fn_arith 128 + $at_signal && exit_status=$as_val
-	as_fn_exit $exit_status' $at_signal
-done
-
-rm -f "$at_stop_file"
-at_first=:
-
-if test $at_jobs -ne 1 &&
-     rm -f "$at_job_fifo" &&
-     test -n "$at_job_group" &&
-     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
-then
-  # FIFO job dispatcher.
-
-  trap 'at_pids=
-	for at_pid in `jobs -p`; do
-	  at_pids="$at_pids $at_job_group$at_pid"
-	done
-	if test -n "$at_pids"; then
-	  at_sig=TSTP
-	  test "${TMOUT+set}" = set && at_sig=STOP
-	  kill -$at_sig $at_pids 2>/dev/null
-	fi
-	kill -STOP $$
-	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
-
-  echo
-  # Turn jobs into a list of numbers, starting from 1.
-  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
-
-  set X $at_joblist
-  shift
-  for at_group in $at_groups; do
-    $at_job_control_on 2>/dev/null
-    (
-      # Start one test group.
-      $at_job_control_off
-      if $at_first; then
-	exec 7>"$at_job_fifo"
-      else
-	exec 6<&-
-      fi
-      trap 'set +x; set +e
-	    trap "" PIPE
-	    echo stop > "$at_stop_file"
-	    echo >&7
-	    as_fn_exit 141' PIPE
-      at_fn_group_prepare
-      if cd "$at_group_dir" &&
-	 at_fn_test $at_group &&
-	 . "$at_test_source"
-      then :; else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-	at_failed=:
-      fi
-      at_fn_group_postprocess
-      echo >&7
-    ) &
-    $at_job_control_off
-    if $at_first; then
-      at_first=false
-      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
-    fi
-    shift # Consume one token.
-    if test $# -gt 0; then :; else
-      read at_token <&6 || break
-      set x $*
-    fi
-    test -f "$at_stop_file" && break
-  done
-  exec 7>&-
-  # Read back the remaining ($at_jobs - 1) tokens.
-  set X $at_joblist
-  shift
-  if test $# -gt 0; then
-    shift
-    for at_job
-    do
-      read at_token
-    done <&6
-  fi
-  exec 6<&-
-  wait
-else
-  # Run serially, avoid forks and other potential surprises.
-  for at_group in $at_groups; do
-    at_fn_group_prepare
-    if cd "$at_group_dir" &&
-       at_fn_test $at_group &&
-       . "$at_test_source"; then :; else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
-$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-      at_failed=:
-    fi
-    at_fn_group_postprocess
-    test -f "$at_stop_file" && break
-    at_first=false
-  done
-fi
-
-# Wrap up the test suite with summary statistics.
-cd "$at_helper_dir"
-
-# Use ?..???? when the list must remain sorted, the faster * otherwise.
-at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
-at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
-at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
-at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
-		 echo $f; done | sed '/?/d; s,/xpass,,'`
-at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
-		echo $f; done | sed '/?/d; s,/fail,,'`
-
-set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
-shift; at_group_count=$#
-set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
-set X $at_xfail_list; shift; at_xfail_count=$#
-set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
-set X $at_skip_list; shift; at_skip_count=$#
-
-as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
-as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
-as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
-
-# Back to the top directory.
-cd "$at_dir"
-rm -rf "$at_helper_dir"
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`date +%s 2>/dev/null`
-$as_echo "$as_me: ending at: $at_stop_date" >&5
-case $at_start_time,$at_stop_time in
-  [0-9]*,[0-9]*)
-    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
-    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
-    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
-    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
-    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
-    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-    $as_echo "$as_me: test suite duration: $at_duration" >&5
-    ;;
-esac
-
-echo
-$as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-echo
-{
-  echo
-  $as_echo "## ------------- ##
-## Test results. ##
-## ------------- ##"
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-  at_color=$at_red
-else
-  # Don't you just love exponential explosion of the number of cases?
-  at_color=$at_red
-  case $at_xpass_count:$at_fail_count:$at_xfail_count in
-    # So far, so good.
-    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
-    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_color$at_result$at_std"
-  echo "$at_result" >&5
-else
-  echo "${at_color}ERROR: $at_result$at_std" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    $as_echo "## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##"
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL "$at_myself" $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL "$at_myself" $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL "$at_myself" $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      $as_echo "## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##"
-      echo
-      for at_group in $at_fail_list
-      do
-	at_group_normalized=$at_group
-
-  eval 'while :; do
-    case $at_group_normalized in #(
-    '"$at_format"'*) break;;
-    esac
-    at_group_normalized=0$at_group_normalized
-  done'
-
-	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
-	echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## ${at_top_build_prefix}config.log ##
-_ASBOX
-      sed 's/^/| /' ${at_top_build_prefix}config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  if $at_debug_p; then
-    at_msg='per-test log files'
-  else
-    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
-  fi
-  $as_echo "Please send $at_msg and all information you think might help:
-
-   To: <opendap-tech at opendap.org>
-   Subject: [libdap 3.15.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
-
-You may investigate any problem if you feel able to do so, in which
-case the test suite provides a good starting point.  Its output may
-be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
-"
-  exit 1
-fi
-
-exit 0
-
-## ------------- ##
-## Actual tests. ##
-## ------------- ##
-#AT_START_1
-at_fn_group_banner 1 'getdapTest.at:34' \
-  "getdap -d http://test.opendap.org/dap/data/nc/fnoc1.nc getdap-testsuite/fnoc1.nc.dds (pass)" ""
-at_xfail=no
-      test "pass" = "xfail" && at_xfail=yes
-(
-  $as_echo "1. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-    # Added || true because expr-test returns 0 (failure) for some of
-    # these tests which is correct for the test - we expect some of
-    # the input to trigger an error response from the parser, et
-    # cetera. That's also why we capture both stdout and stderr -
-    # successful runs are sent to stdout while the errors are sent to
-    # stderr.
-
-    { set +x
-$as_echo "$at_srcdir/getdapTest.at:34: \$abs_builddir/../getdap -d http://test.opendap.org/dap/data/nc/fnoc1.nc || true"
-at_fn_check_prepare_dynamic "$abs_builddir/../getdap -d http://test.opendap.org/dap/data/nc/fnoc1.nc || true" "getdapTest.at:34"
-( $at_check_trace; $abs_builddir/../getdap -d http://test.opendap.org/dap/data/nc/fnoc1.nc || true
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-echo stderr:; tee stderr <"$at_stderr"
-echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/getdapTest.at:34"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-    { set +x
-$as_echo "$at_srcdir/getdapTest.at:34: diff -b -B \$abs_srcdir/getdap-testsuite/fnoc1.nc.dds stdout || diff -b -B \$abs_srcdir/getdap-testsuite/fnoc1.nc.dds stderr"
-at_fn_check_prepare_dynamic "diff -b -B $abs_srcdir/getdap-testsuite/fnoc1.nc.dds stdout || diff -b -B $abs_srcdir/getdap-testsuite/fnoc1.nc.dds stderr" "getdapTest.at:34"
-( $at_check_trace; diff -b -B $abs_srcdir/getdap-testsuite/fnoc1.nc.dds stdout || diff -b -B $abs_srcdir/getdap-testsuite/fnoc1.nc.dds stderr
-) >>"$at_stdout" 2>>"$at_stderr" 5>&-
-at_status=$? at_failed=false
-$at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/getdapTest.at:34"
-$at_failed && at_fn_log_failure
-$at_traceon; }
-
-
-      set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_1
diff --git a/tests/io_test.cc b/tests/io_test.cc
new file mode 100644
index 0000000..82dbb6c
--- /dev/null
+++ b/tests/io_test.cc
@@ -0,0 +1,64 @@
+/*
+ * io_test.cc
+ *
+ *  Created on: Sep 29, 2008
+ *      Author: jimg
+ */
+
+#include "config.h"
+
+//#define DODS_DEBUG
+
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <string.h>
+#include <errno.h>
+
+#include <iostream>
+#include <string>
+
+#include "xstream/fd.h"
+
+using namespace std;
+
+int
+main(int argc, char *argv[])
+{
+#if 0
+    // Build a loopback pipe that uses c++ streams
+    int fd[2];
+    if (pipe(fd) < 0) {
+        fprintf(stderr, "Could not open pipe\n");
+        return 1;
+    }
+
+    xstream::fd::streambuf out(fd[1], true);
+    xstream::fd::streambuf in(fd[0], true);
+#endif
+    xstream::fd::streambuf out(1, true);
+    xstream::fd::streambuf in(0, true);
+
+    std::ostream pout(&out);
+    pout.exceptions(ios::badbit);
+    std::istream pin(&in);
+    pin.exceptions(ios::badbit);
+#if 0
+    FILE *pin = fdopen(fd[0], "rb");
+    if (!pin)
+        cerr << "Could not open input side of loopback pipe." << endl;
+#endif
+
+    pout << "This is a test." << endl;
+    pout << flush;
+#if 0
+    string info;
+
+    pin >> info;
+
+    cout << "info: " << info << endl;
+#endif
+}
+
diff --git a/tests/package.m4 b/tests/package.m4
deleted file mode 100644
index 1edad11..0000000
--- a/tests/package.m4
+++ /dev/null
@@ -1,6 +0,0 @@
-# Signature of the current package.
-m4_define([AT_PACKAGE_NAME],      [libdap])
-m4_define([AT_PACKAGE_TARNAME],   [libdap])
-m4_define([AT_PACKAGE_VERSION],   [3.15.1])
-m4_define([AT_PACKAGE_STRING],    [libdap 3.15.1])
-m4_define([AT_PACKAGE_BUGREPORT], [opendap-tech at opendap.org])
diff --git a/tests/valgrind-osx-10.8.txt b/tests/valgrind-osx-10.8.txt
new file mode 100644
index 0000000..7fcf3f1
--- /dev/null
+++ b/tests/valgrind-osx-10.8.txt
@@ -0,0 +1,2420 @@
+{
+   mem 0
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 1
+   Memcheck:Leak
+   fun:malloc
+   ...
+   obj:/bin/sh
+}
+{
+   mem 2
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 3
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 4
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 5
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 6
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 7
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 8
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 9
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 10
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 11
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 12
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 13
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 14
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 15
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 16
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 17
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 18
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 19
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 20
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 21
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 22
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 23
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 24
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 25
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 26
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 27
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 28
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 29
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 30
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 31
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 32
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 33
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 34
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 35
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 36
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 37
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 38
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+
+{
+   mem 39
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 40
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 41
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 42
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 43
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:(below main)
+}
+{
+   mem 44
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 45
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 46
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 47
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 48
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 49
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 50
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 51
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 52
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 53
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 54
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 55
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 56
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 57
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 58
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+
+{
+   mem 59
+   Memcheck:Leak
+   fun:malloc
+   ...
+   obj:/bin/sh
+}
+{
+   mem 60
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 61
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 62
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 63
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 64
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 65
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 66
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 67
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 68
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 69
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 70
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 71
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 72
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 73
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 74
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 75
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 76
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 77
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 78
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 79
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN4dyld36registerImageStateBatchChangeHandlerE17dyld_image_statesPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 80
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 81
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 82
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 83
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 84
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 85
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 86
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 87
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 88
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 89
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 90
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 91
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 92
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 93
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 94
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 95
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 96
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 97
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 98
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 99
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 100
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 101
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 102
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 103
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 104
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 105
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 106
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 107
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 108
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 109
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 110
+   Memcheck:Cond
+   fun:fts_close$INODE64
+   ...
+   fun:(below main)
+}
+{
+   mem 111
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 112
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN4dyld36registerImageStateBatchChangeHandlerE17dyld_image_statesPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 113
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 114
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 115
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 116
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 117
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 118
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 119
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:(below main)
+}
+{
+   mem 120
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 121
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 122
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 123
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 124
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 125
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 126
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 127
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:(below main)
+}
+{
+   mem 128
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 129
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 130
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 131
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 132
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 133
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:(below main)
+}
+{
+   mem 134
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN4dyld36registerImageStateBatchChangeHandlerE17dyld_image_statesPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 135
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 136
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 137
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 138
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 139
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 140
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 141
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 142
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 143
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 144
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 145
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 146
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 147
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 148
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 149
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 150
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 151
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 152
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 153
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 154
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 155
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 156
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 157
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 158
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 159
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 160
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 161
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 162
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 163
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 164
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+
+{
+   mem 165
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 166
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 167
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 168
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 169
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 170
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 171
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 172
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 173
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 174
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 175
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 176
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 177
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 178
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 179
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 180
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 181
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 182
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 183
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+
+{
+   mem 184
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 185
+   Memcheck:Leak
+   fun:malloc
+   ...
+   obj:/bin/sh
+}
+{
+   mem 186
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 187
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 188
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 189
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 190
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 191
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 192
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 193
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 194
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 195
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 196
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 197
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 198
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 199
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 200
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 201
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 202
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 203
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 204
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN4dyld36registerImageStateBatchChangeHandlerE17dyld_image_statesPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 205
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 206
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 207
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 208
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 209
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 210
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 211
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 212
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 213
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 214
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 215
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 216
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 217
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 218
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 219
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 220
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 221
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 222
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 223
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 224
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 225
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dyld_register_image_state_change_handler
+}
+{
+   mem 226
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_objc_init
+}
+{
+   mem 227
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 228
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 229
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 230
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 231
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 232
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 233
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 234
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+
+{
+   mem 235
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 236
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:+[NSObject new]
+}
+{
+   mem 237
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:+[NSObject new]
+}
+{
+   mem 238
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:+[NSDictionary allocWithZone:]
+}
+{
+   mem 239
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_NSThreadGet0
+}
+{
+   mem 240
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader4linkERKNS_11LinkContextEbbRKNS_10RPathChainE
+}
+{
+   mem 241
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:dlopen
+}
+{
+   mem 242
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN4dyld36registerImageStateBatchChangeHandlerE17dyld_image_statesPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 243
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 244
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 245
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 246
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 247
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 248
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 249
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 250
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 251
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 252
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 253
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dlopen
+}
+{
+   mem 254
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dlopen
+}
+{
+   mem 255
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:dlopen
+}
+{
+   mem 256
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:heim_load_frameworks
+}
+{
+   mem 257
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 258
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 259
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 260
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 261
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 262
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 263
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 264
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 265
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 266
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 267
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 268
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN4dyldL12notifySingleE17dyld_image_statesPK11ImageLoader
+}
+{
+   mem 269
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 270
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 271
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:call_load_methods
+}
+{
+   mem 272
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_NSInitializePlatform
+}
+{
+   mem 273
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:load_images
+}
+{
+   mem 274
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 275
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 276
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 277
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 278
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 279
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 280
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 281
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 282
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 283
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 284
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 285
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 286
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 287
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 288
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 289
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 290
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 291
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 292
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 293
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 294
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 295
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 296
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 297
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 298
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 299
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 300
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 301
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 302
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 303
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 304
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:main
+}
+{
+   mem 305
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 306
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 307
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 308
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 309
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 310
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 311
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 312
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 313
+   Memcheck:Leak
+   fun:malloc_zone_realloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 314
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 315
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 316
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 317
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 318
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 319
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 320
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 321
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 322
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 323
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 324
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 325
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN16ImageLoaderMachO11doImageInitERKN11ImageLoader11LinkContextE
+}
+{
+   mem 326
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZThn120_N11TestFloat6413output_valuesERSo
+}
+{
+   mem 327
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 328
+   Memcheck:Leak
+   fun:malloc_zone_realloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 329
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 330
+   Memcheck:Leak
+   fun:malloc_zone_calloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 331
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 332
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:dlopen
+}
+{
+   mem 333
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN4dyldL18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
+}
+{
+   mem 334
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:heim_load_frameworks
+}
+{
+   mem 335
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 336
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
+}
+{
+   mem 337
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:libSystem_initializer
+}
+{
+   mem 338
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE
+}
+{
+   mem 339
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:_ZN4dyld15runInitializersEP11ImageLoader
+}
+{
+   mem 340
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:dlopen
+}
+{
+   mem 341
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:_ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_Pm
+}
+{
+   mem 342
+   Memcheck:Leak
+   fun:malloc_zone_memalign
+   ...
+   fun:_ZN11ImageLoader15runInitializersERKNS_11LinkContextERNS_21InitializerTimingListE
+}
+{
+   mem 343
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
+{
+   mem 344
+   Memcheck:Leak
+   fun:malloc_zone_malloc
+   ...
+   fun:_ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE
+}
diff --git a/unit-tests/AISDatabaseParserTest.cc b/unit-tests/AISDatabaseParserTest.cc
new file mode 100644
index 0000000..f88fa39
--- /dev/null
+++ b/unit-tests/AISDatabaseParserTest.cc
@@ -0,0 +1,174 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+ 
+// Tests for the AISResources class.
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include "AISDatabaseParser.h"
+#include <test_config.h>
+#include "debug.h"
+
+using namespace CppUnit;
+using namespace std;
+using namespace libdap;
+
+class AISDatabaseParserTest:public TestFixture {
+private:
+    string fnoc1, fnoc2, fnoc3, number, bears, three_fnoc;
+    string fnoc1_ais, fnoc2_ais, fnoc3_ais, number_ais;
+    AISDatabaseParser *ais_parser;
+    AISResources *ais;
+
+public:
+    AISDatabaseParserTest() {} 
+    ~AISDatabaseParserTest() {} 
+
+    void setUp() {
+	fnoc1 = "http://test.opendap.org/opendap/data/nc/fnoc1.nc";
+	fnoc2 = "http://test.opendap.org/opendap/data/nc/fnoc2.nc";
+	fnoc3 = "http://test.opendap.org/opendap/data/nc/fnoc3.nc";
+	// number is the regular expression that will be in the
+	// ais_database.xml file.
+	number = "http://test.opendap.org/opendap/data/nc/[0-9]+.*\\.nc";
+	bears = "http://test.opendap.org/opendap/data/nc/123bears.nc";
+	three_fnoc = "http://test.opendap.org/opendap/data/nc/3fnoc.nc";
+
+	fnoc1_ais = "http://test.opendap.org/ais/fnoc1.nc.das";
+	fnoc2_ais = (string)TEST_SRC_DIR + "/ais_testsuite/fnoc2_replace.das";
+	fnoc3_ais = "http://test.opendap.org/ais/fnoc3_fallback.das";
+	number_ais = (string)TEST_SRC_DIR + "/ais_testsuite/starts_with_number.das";
+
+	ais = new AISResources;
+	ais_parser = new AISDatabaseParser();
+    } 
+
+    void tearDown() { 
+	delete ais_parser; ais_parser = 0;
+	delete ais; ais = 0;
+    }
+
+    CPPUNIT_TEST_SUITE( AISDatabaseParserTest );
+
+    CPPUNIT_TEST(intern_test);
+    CPPUNIT_TEST(errant_database_test);
+
+    CPPUNIT_TEST_SUITE_END();
+
+    void intern_test() {
+	try {
+	    ais_parser->intern("ais_testsuite/ais_database.xml", ais);
+
+	    ResourceVector trv1 = ais->get_resource(fnoc1);
+	    CPPUNIT_ASSERT(trv1.size() == 1);
+	    CPPUNIT_ASSERT(trv1[0].get_url() == fnoc1_ais);
+	    CPPUNIT_ASSERT(trv1[0].get_rule() == Resource::overwrite);
+
+	    ResourceVector trv2 = ais->get_resource(fnoc2);
+	    CPPUNIT_ASSERT(trv2.size() == 1);
+	    CPPUNIT_ASSERT(trv2[0].get_url() == fnoc2_ais);
+	    CPPUNIT_ASSERT(trv2[0].get_rule() == Resource::replace);
+
+	    ResourceVector trv3 = ais->get_resource(fnoc3);
+	    CPPUNIT_ASSERT(trv3.size() == 1);
+	    CPPUNIT_ASSERT(trv3[0].get_url() == fnoc3_ais);
+	    CPPUNIT_ASSERT(trv3[0].get_rule() == Resource::fallback);
+
+	    ResourceVector trv4 = ais->get_resource(bears);
+	    CPPUNIT_ASSERT(trv4.size() == 1);
+	    CPPUNIT_ASSERT(trv4[0].get_url() == number_ais);
+	    CPPUNIT_ASSERT(trv4[0].get_rule() == Resource::overwrite);
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    cerr << endl << "Error: " << e.get_error_message() << endl;
+	    CPPUNIT_ASSERT(!"Parse failed.");
+	}
+    }
+
+    void errant_database_test() {
+	try {
+	    ais_parser->intern((string)TEST_SRC_DIR + "/" + "ais_testsuite/ais_error_1.xml", ais);
+	    CPPUNIT_ASSERT(!"ais_error_1.xml should fail!");
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    DBG(cerr << "Error: " << e.get_error_message() << endl);
+	}
+
+	try {
+	    ais_parser->intern((string)TEST_SRC_DIR + "/" + "ais_testsuite/ais_error_2.xml", ais);
+	    CPPUNIT_ASSERT(!"ais_error_2.xml should fail!");
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    DBG(cerr << "Error: " << e.get_error_message() << endl);
+	}
+
+	try {
+	    ais_parser->intern((string)TEST_SRC_DIR + "/" + "ais_testsuite/ais_error_3.xml", ais);
+	    CPPUNIT_ASSERT(!"ais_error_3.xml should fail!");
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    DBG(cerr << "Error: " << e.get_error_message() << endl);
+	}
+
+	try {
+	    ais_parser->intern((string)TEST_SRC_DIR + "/" + "ais_testsuite/ais_error_4.xml", ais);
+	    CPPUNIT_ASSERT(!"ais_error_4.xml should fail!");
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    DBG(cerr << "Error: " << e.get_error_message() << endl);
+	}
+
+	try {
+	    ais_parser->intern((string)TEST_SRC_DIR + "/" + "ais_testsuite/ais_error_5.xml", ais);
+	    CPPUNIT_ASSERT(!"ais_error_5.xml should fail!");
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    DBG(cerr << "Error: " << e.get_error_message() << endl);
+	}
+
+	try {
+	    ais_parser->intern((string)TEST_SRC_DIR + "/" + "ais_testsuite/ais_error_6.xml", ais);
+	    CPPUNIT_ASSERT(!"ais_error_6.xml should fail!");
+	}
+	catch (AISDatabaseReadFailed &e) {
+	    DBG(cerr << "Error: " << e.get_error_message() << endl);
+	}
+    }
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(AISDatabaseParserTest);
+
+int 
+main( int, char** )
+{
+    CppUnit::TextTestRunner runner;
+    runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
+
+    bool wasSuccessful = runner.run( "", false ) ;
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/chunked-io/test_text_file.txt.plain b/unit-tests/AISMergeTest.cc
similarity index 99%
rename from unit-tests/chunked-io/test_text_file.txt.plain
rename to unit-tests/AISMergeTest.cc
index 9a6ac95..9e61cb6 100644
--- a/unit-tests/chunked-io/test_text_file.txt.plain
+++ b/unit-tests/AISMergeTest.cc
@@ -19,7 +19,7 @@
 //
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 //
 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
 
diff --git a/unit-tests/AISResourcesTest.cc b/unit-tests/AISResourcesTest.cc
new file mode 100644
index 0000000..945a194
--- /dev/null
+++ b/unit-tests/AISResourcesTest.cc
@@ -0,0 +1,319 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+ 
+// Tests for the AISResources class.
+
+#include "config.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <algorithm>
+#include <stdexcept>
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include "AISResources.h"
+#include "debug.h"
+#include <test_config.h>
+
+using namespace CppUnit;
+
+namespace libdap
+{
+
+class AISResourcesTest:public TestFixture {
+private:
+    AISResources *ais;
+    string fnoc1, fnoc2, fnoc3, regexp, bears, three_fnoc, one_2_3;
+    string fnoc1_ais, fnoc2_ais, fnoc3_ais, digit_ais, one_2_3_ais;
+
+public:
+    AISResourcesTest() {} 
+    ~AISResourcesTest() {} 
+
+    void setUp() {
+	fnoc1 = "http://test.opendap.org/opendap/data/nc/fnoc1.nc";
+	fnoc2 = "http://test.opendap.org/opendap/data/nc/fnoc2.nc";
+	fnoc3 = "http://test.opendap.org/opendap/data/nc/fnoc3.nc";
+
+	regexp = "http://test.opendap.org/opendap/data/nc/[0-9]+.*\\.nc";
+	bears = "http://test.opendap.org/opendap/data/nc/123bears.nc";
+	three_fnoc = "http://test.opendap.org/opendap/data/nc/3fnoc.nc";
+	one_2_3 = "http://test.opendap.org/opendap/data/nc/123.nc";
+
+
+	fnoc1_ais = "http://test.opendap.org/ais/fnoc1.nc.das";
+	fnoc2_ais = (string)TEST_SRC_DIR + "/ais_testsuite/fnoc2_replace.das";
+	fnoc3_ais = "http://test.opendap.org/ais/fnoc3_fallback.das";
+	digit_ais = (string)TEST_SRC_DIR + "/ais_testsuite/starts_with_number.das";
+	one_2_3_ais = (string)TEST_SRC_DIR + "/ais_testsuite/123.das";
+
+	ais = new AISResources;
+
+	Resource r1(fnoc1_ais);
+	ais->add_url_resource(fnoc1, r1);
+
+	Resource r2(fnoc2_ais, Resource::fallback);
+	ais->add_url_resource(fnoc2, r2);
+
+	ais->add_url_resource(fnoc3, r1);
+	ais->add_url_resource(fnoc3, r2);
+
+	Resource r3(digit_ais);
+	ais->add_regexp_resource(regexp, r3);
+
+	Resource r4(one_2_3_ais);
+	ais->add_url_resource(one_2_3, r4);
+    } 
+
+    void tearDown() { 
+	delete ais; ais = 0;
+    }
+
+    CPPUNIT_TEST_SUITE( AISResourcesTest );
+
+    CPPUNIT_TEST(add_url_resource_test);
+    CPPUNIT_TEST(add_regexp_resource_test);
+    CPPUNIT_TEST(add_url_resource_vector_test);
+    CPPUNIT_TEST(has_resource_test);
+    CPPUNIT_TEST(get_resource_test);
+    CPPUNIT_TEST(read_database_test);
+    CPPUNIT_TEST(write_database_test);
+
+    CPPUNIT_TEST_SUITE_END();
+
+    void add_url_resource_test() {
+	// setUp() makes the add_url_resource calls. 02/13/03 jhrg
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc1) != ais->d_db.end());
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc1)->second.size() == 1);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc1)->second[0].get_url() == fnoc1_ais);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc1)->second[0].get_rule() == Resource::overwrite);
+
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc2) != ais->d_db.end());
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc2)->second.size() == 1);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc2)->second[0].get_url() == fnoc2_ais);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc2)->second[0].get_rule() == Resource::fallback);
+
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc3) != ais->d_db.end());
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc3)->second.size() == 2);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc3)->second[0].get_url() == fnoc1_ais);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc3)->second[1].get_url() == fnoc2_ais);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc3)->second[0].get_rule() == Resource::overwrite);
+	CPPUNIT_ASSERT(ais->d_db.find(fnoc3)->second[1].get_rule() == Resource::fallback);
+    }
+
+    void add_regexp_resource_test() {
+	AISResources::ResourceRegexpsIter pos;
+	pos = find_if(ais->d_re.begin(), ais->d_re.end(), 
+		      AISResources::FindRegexp(regexp));
+	CPPUNIT_ASSERT(pos != ais->d_re.end());
+	CPPUNIT_ASSERT(pos->second.size() == 1);
+	CPPUNIT_ASSERT(pos->second[0].get_url() == digit_ais);
+	CPPUNIT_ASSERT(pos->second[0].get_rule() == Resource::overwrite);
+    }
+
+    void add_url_resource_vector_test() {
+	AISResources *ais2 = new AISResources;
+
+	Resource r1(fnoc1_ais);
+	ResourceVector rv1(1, r1);
+	ais2->add_url_resource(fnoc2, rv1);
+
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2) != ais2->d_db.end());
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second.size() == 1);
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second[0].get_url() == fnoc1_ais);
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second[0].get_rule() == Resource::overwrite);
+
+	Resource r2(fnoc2_ais, Resource::fallback);
+	ResourceVector rv2(1, r2);
+	ais2->add_url_resource(fnoc2, rv2);
+
+
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2) != ais2->d_db.end());
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second.size() == 2);
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second[0].get_url() == fnoc1_ais);
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second[1].get_url() == fnoc2_ais);
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second[0].get_rule() == Resource::overwrite);
+	CPPUNIT_ASSERT(ais2->d_db.find(fnoc2)->second[1].get_rule() == Resource::fallback);
+    }
+
+    void has_resource_test() {
+	CPPUNIT_ASSERT(ais->has_resource(fnoc1));
+	CPPUNIT_ASSERT(ais->has_resource(fnoc2));
+	CPPUNIT_ASSERT(ais->has_resource(fnoc3));
+	CPPUNIT_ASSERT(ais->has_resource(bears));
+	CPPUNIT_ASSERT(ais->has_resource(three_fnoc));
+    }
+
+    void get_resource_test() {
+	ResourceVector trv1 = ais->get_resource(fnoc1);
+	CPPUNIT_ASSERT(trv1.size() == 1);
+	CPPUNIT_ASSERT(trv1[0].get_url() == fnoc1_ais);
+	CPPUNIT_ASSERT(trv1[0].get_rule() == Resource::overwrite);
+
+	ResourceVector trv2 = ais->get_resource(fnoc2);
+	CPPUNIT_ASSERT(trv2.size() == 1);
+	CPPUNIT_ASSERT(trv2[0].get_url() == fnoc2_ais);
+	CPPUNIT_ASSERT(trv2[0].get_rule() == Resource::fallback);
+
+	ResourceVector trv3 = ais->get_resource(fnoc3);
+	CPPUNIT_ASSERT(trv3.size() == 2);
+	CPPUNIT_ASSERT(trv3[0].get_url() == fnoc1_ais);
+	CPPUNIT_ASSERT(trv3[0].get_rule() == Resource::overwrite);
+	CPPUNIT_ASSERT(trv3[1].get_url() == fnoc2_ais);
+	CPPUNIT_ASSERT(trv3[1].get_rule() == Resource::fallback);
+
+	ResourceVector trv4 = ais->get_resource(bears);
+	CPPUNIT_ASSERT(trv4.size() == 1);
+	CPPUNIT_ASSERT(trv4[0].get_url() == digit_ais);
+	CPPUNIT_ASSERT(trv4[0].get_rule() == Resource::overwrite);
+
+	ResourceVector trv5 = ais->get_resource(three_fnoc);
+	CPPUNIT_ASSERT(trv5.size() == 1);
+	CPPUNIT_ASSERT(trv5[0].get_url() == digit_ais);
+	CPPUNIT_ASSERT(trv5[0].get_rule() == Resource::overwrite);
+
+	ResourceVector trv6 = ais->get_resource(one_2_3);
+	CPPUNIT_ASSERT(trv6.size() == 2);
+	CPPUNIT_ASSERT((trv6[0].get_url() == one_2_3_ais 
+			&& trv6[1].get_url() == digit_ais)
+		       || (trv6[1].get_url() == one_2_3_ais 
+			   && trv6[0].get_url() == digit_ais));
+	CPPUNIT_ASSERT(trv6[0].get_rule() == Resource::overwrite);
+	CPPUNIT_ASSERT(trv6[1].get_rule() == Resource::overwrite);
+
+	try {
+	    ResourceVector trv4 = ais->get_resource("http://never");
+	    CPPUNIT_ASSERT(!"get_resource() failed to throw NoSuchPrimaryResource");
+	}
+	catch (NoSuchPrimaryResource &nspr) {
+	    CPPUNIT_ASSERT("get_resource() correctly threw NoSuchPrimaryResource");
+	}
+    }
+
+    void read_database_test() {
+	try {
+	    AISResources *ais2 = new AISResources;
+	    ais2->read_database("ais_testsuite/ais_database.xml");
+
+	    ResourceVector trv1 = ais2->get_resource(fnoc1);
+	    CPPUNIT_ASSERT(trv1.size() == 1);
+	    CPPUNIT_ASSERT(trv1[0].get_url() == fnoc1_ais);
+	    CPPUNIT_ASSERT(trv1[0].get_rule() == Resource::overwrite);
+
+	    ResourceVector trv2 = ais2->get_resource(fnoc2);
+	    CPPUNIT_ASSERT(trv2.size() == 1);
+	    CPPUNIT_ASSERT(trv2[0].get_url() == fnoc2_ais);
+	    CPPUNIT_ASSERT(trv2[0].get_rule() == Resource::replace);
+
+	    ResourceVector trv3 = ais2->get_resource(fnoc3);
+	    CPPUNIT_ASSERT(trv3.size() == 1);
+	    CPPUNIT_ASSERT(trv3[0].get_url() == fnoc3_ais);
+	    CPPUNIT_ASSERT(trv3[0].get_rule() == Resource::fallback);
+
+	    ResourceVector trv6 = ais->get_resource(one_2_3);
+	    CPPUNIT_ASSERT(trv6.size() == 2);
+	    CPPUNIT_ASSERT((trv6[0].get_url() == one_2_3_ais 
+			    && trv6[1].get_url() == digit_ais)
+			   || (trv6[1].get_url() == one_2_3_ais 
+			       && trv6[0].get_url() == digit_ais));
+	    CPPUNIT_ASSERT(trv6[0].get_rule() == Resource::overwrite);
+	    CPPUNIT_ASSERT(trv6[1].get_rule() == Resource::overwrite);
+	}
+	catch (AISDatabaseReadFailed &adrf) {
+	    CPPUNIT_ASSERT(!"Document not well formed and/or valid!");
+	}
+	catch (Error &e) {
+	    cerr << "Error: " << e.get_error_message() << endl;
+	    CPPUNIT_ASSERT(!"Caught Error");
+	}
+	catch (std::exception &e) {
+	    cerr << "std::exception: " << e.what() << endl;
+	    CPPUNIT_ASSERT(!"Caught exception");
+	}
+    }
+
+    void write_database_test() {
+	try {
+	    ais->write_database("dummy.xml");
+	    AISResources *ais2 = new AISResources;
+
+	    ais2->read_database("dummy.xml");
+
+	    ResourceVector trv1 = ais2->get_resource(fnoc1);
+	    CPPUNIT_ASSERT(trv1.size() == 1);
+	    CPPUNIT_ASSERT(trv1[0].get_url() == fnoc1_ais);
+	    CPPUNIT_ASSERT(trv1[0].get_rule() == Resource::overwrite);
+
+	    ResourceVector trv2 = ais2->get_resource(fnoc2);
+	    CPPUNIT_ASSERT(trv2.size() == 1);
+	    CPPUNIT_ASSERT(trv2[0].get_url() == fnoc2_ais);
+	    CPPUNIT_ASSERT(trv2[0].get_rule() == Resource::fallback);
+
+	    ResourceVector trv3 = ais2->get_resource(fnoc3);
+	    CPPUNIT_ASSERT(trv3.size() == 2);
+	    CPPUNIT_ASSERT(trv3[0].get_url() == fnoc1_ais);
+	    CPPUNIT_ASSERT(trv3[0].get_rule() == Resource::overwrite);
+	    CPPUNIT_ASSERT(trv3[1].get_url() == fnoc2_ais);
+	    CPPUNIT_ASSERT(trv3[1].get_rule() == Resource::fallback);
+
+	    ResourceVector trv6 = ais->get_resource(one_2_3);
+	    CPPUNIT_ASSERT(trv6.size() == 2);
+	    CPPUNIT_ASSERT((trv6[0].get_url() == one_2_3_ais 
+			    && trv6[1].get_url() == digit_ais)
+			   || (trv6[1].get_url() == one_2_3_ais 
+			       && trv6[0].get_url() == digit_ais));
+	    CPPUNIT_ASSERT(trv6[0].get_rule() == Resource::overwrite);
+	    CPPUNIT_ASSERT(trv6[1].get_rule() == Resource::overwrite);
+	}
+	catch (AISDatabaseReadFailed &adrf) {
+	    CPPUNIT_ASSERT(!"Document not well formed and/or valid!");
+	}
+	catch (AISDatabaseWriteFailed &adwf) {
+	    CPPUNIT_ASSERT(!"Write failed!");
+	}
+    }
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(AISResourcesTest);
+
+} // namespace libdap
+
+int 
+main( int, char** )
+{
+    CppUnit::TextTestRunner runner;
+    runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
+
+    bool wasSuccessful = runner.run( "", false ) ;
+
+    unlink("dummy.xml");
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/D4-marshaller/test_cmp.dat b/unit-tests/D4-marshaller/big-endian/test_cmp.dat
similarity index 100%
copy from unit-tests/D4-marshaller/test_cmp.dat
copy to unit-tests/D4-marshaller/big-endian/test_cmp.dat
diff --git a/unit-tests/D4-marshaller/test_opaque_1_bin.dat b/unit-tests/D4-marshaller/big-endian/test_opaque_1_bin.dat
similarity index 99%
copy from unit-tests/D4-marshaller/test_opaque_1_bin.dat
copy to unit-tests/D4-marshaller/big-endian/test_opaque_1_bin.dat
index 5e52c65..71b7268 100644
Binary files a/unit-tests/D4-marshaller/test_opaque_1_bin.dat and b/unit-tests/D4-marshaller/big-endian/test_opaque_1_bin.dat differ
diff --git a/unit-tests/D4-marshaller/big-endian/test_scalars_1_bin.dat b/unit-tests/D4-marshaller/big-endian/test_scalars_1_bin.dat
new file mode 100644
index 0000000..0eb0077
Binary files /dev/null and b/unit-tests/D4-marshaller/big-endian/test_scalars_1_bin.dat differ
diff --git a/unit-tests/D4-marshaller/big-endian/test_scalars_2_bin.dat b/unit-tests/D4-marshaller/big-endian/test_scalars_2_bin.dat
new file mode 100644
index 0000000..d8acf84
Binary files /dev/null and b/unit-tests/D4-marshaller/big-endian/test_scalars_2_bin.dat differ
diff --git a/unit-tests/D4-marshaller/big-endian/test_scalars_3_bin.dat b/unit-tests/D4-marshaller/big-endian/test_scalars_3_bin.dat
new file mode 100644
index 0000000..0b8d844
Binary files /dev/null and b/unit-tests/D4-marshaller/big-endian/test_scalars_3_bin.dat differ
diff --git a/unit-tests/D4-marshaller/big-endian/test_vector_1_bin.dat b/unit-tests/D4-marshaller/big-endian/test_vector_1_bin.dat
new file mode 100644
index 0000000..e0e8df4
Binary files /dev/null and b/unit-tests/D4-marshaller/big-endian/test_vector_1_bin.dat differ
diff --git a/unit-tests/D4-marshaller/test_cmp.dat b/unit-tests/D4-marshaller/little-endian/test_cmp.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_cmp.dat
rename to unit-tests/D4-marshaller/little-endian/test_cmp.dat
diff --git a/unit-tests/D4-marshaller/test_opaque_1_bin.dat b/unit-tests/D4-marshaller/little-endian/test_opaque_1_bin.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_opaque_1_bin.dat
rename to unit-tests/D4-marshaller/little-endian/test_opaque_1_bin.dat
diff --git a/unit-tests/D4-marshaller/test_scalars_1.dat b/unit-tests/D4-marshaller/little-endian/test_scalars_1.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_scalars_1.dat
rename to unit-tests/D4-marshaller/little-endian/test_scalars_1.dat
diff --git a/unit-tests/D4-marshaller/test_scalars_1_bin.dat b/unit-tests/D4-marshaller/little-endian/test_scalars_1_bin.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_scalars_1_bin.dat
rename to unit-tests/D4-marshaller/little-endian/test_scalars_1_bin.dat
diff --git a/unit-tests/D4-marshaller/test_scalars_2.dat b/unit-tests/D4-marshaller/little-endian/test_scalars_2.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_scalars_2.dat
rename to unit-tests/D4-marshaller/little-endian/test_scalars_2.dat
diff --git a/unit-tests/D4-marshaller/test_scalars_2_bin.dat b/unit-tests/D4-marshaller/little-endian/test_scalars_2_bin.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_scalars_2_bin.dat
rename to unit-tests/D4-marshaller/little-endian/test_scalars_2_bin.dat
diff --git a/unit-tests/D4-marshaller/test_scalars_3_bin.dat b/unit-tests/D4-marshaller/little-endian/test_scalars_3_bin.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_scalars_3_bin.dat
rename to unit-tests/D4-marshaller/little-endian/test_scalars_3_bin.dat
diff --git a/unit-tests/D4-marshaller/test_vector_1_bin.dat b/unit-tests/D4-marshaller/little-endian/test_vector_1_bin.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_vector_1_bin.dat
rename to unit-tests/D4-marshaller/little-endian/test_vector_1_bin.dat
diff --git a/unit-tests/D4-marshaller/test_vector_2_bin.dat b/unit-tests/D4-marshaller/little-endian/test_vector_2_bin.dat
similarity index 100%
rename from unit-tests/D4-marshaller/test_vector_2_bin.dat
rename to unit-tests/D4-marshaller/little-endian/test_vector_2_bin.dat
diff --git a/unit-tests/D4-type-testsuite/TestD4Sequence_one_clause.txt b/unit-tests/D4-type-testsuite/TestD4Sequence_one_clause.txt
new file mode 100644
index 0000000..e9abb82
--- /dev/null
+++ b/unit-tests/D4-type-testsuite/TestD4Sequence_one_clause.txt
@@ -0,0 +1 @@
+{ { 1024, "Silly test string: 2", -1.77 } }
\ No newline at end of file
diff --git a/unit-tests/D4-type-testsuite/TestD4Sequence_s.txt b/unit-tests/D4-type-testsuite/TestD4Sequence_s.txt
new file mode 100644
index 0000000..876df5a
--- /dev/null
+++ b/unit-tests/D4-type-testsuite/TestD4Sequence_s.txt
@@ -0,0 +1 @@
+{ { 32, "Silly test string: 1", -54.4 }, { 1024, "Silly test string: 2", -1.77 }, { 32768, "Silly test string: 3", 98.93 }, { 1048576, "Silly test string: 4", 92.68 }, { 33554432, "Silly test string: 5", 99.48 }, { 1073741824, "Silly test string: 6", 81.67 }, { 32, "Silly test string: 7", 10.59 } }
\ No newline at end of file
diff --git a/unit-tests/D4-type-testsuite/TestD4Sequence_two_clause.txt b/unit-tests/D4-type-testsuite/TestD4Sequence_two_clause.txt
new file mode 100644
index 0000000..a926038
--- /dev/null
+++ b/unit-tests/D4-type-testsuite/TestD4Sequence_two_clause.txt
@@ -0,0 +1 @@
+{ { 1024, "Silly test string: 2", -1.77 }, { 32768, "Silly test string: 3", 98.93 }, { 1048576, "Silly test string: 4", 92.68 } }
\ No newline at end of file
diff --git a/unit-tests/D4EnumTest.cc b/unit-tests/D4EnumTest.cc
index acbcd4d..ffbb722 100644
--- a/unit-tests/D4EnumTest.cc
+++ b/unit-tests/D4EnumTest.cc
@@ -101,19 +101,19 @@ public:
     	D4Enum e("second", dods_byte_c);
     	dods_byte db = 200;
     	e.set_value(db);
-    	CPPUNIT_ASSERT(e.d_buf.ui8 == 200);
+    	CPPUNIT_ASSERT(e.d_buf == 200);
     }
 
     void test_set_value2() {
     	D4Enum e("second", dods_byte_c);
     	e.set_value(200);
-    	CPPUNIT_ASSERT(e.d_buf.ui8 == 200);
+    	CPPUNIT_ASSERT(e.d_buf == 200);
     }
 
     void test_set_value3() {
     	D4Enum e("third", dods_int32_c);
     	e.set_value(-65535);
-    	CPPUNIT_ASSERT(e.d_buf.i32 == -65535);
+    	CPPUNIT_ASSERT(e.d_buf == -65535);
     }
 
     void test_value() {
@@ -139,7 +139,7 @@ public:
     	D4Enum f(e);
     	CPPUNIT_ASSERT(f.d_element_type == dods_byte_c);
     	CPPUNIT_ASSERT(f.name() == "second");
-    	CPPUNIT_ASSERT(f.d_buf.ui8 == 200);
+    	CPPUNIT_ASSERT(f.d_buf == 200);
     }
 
     void test_assignment() {
@@ -149,7 +149,7 @@ public:
     	D4Enum f = e;
     	CPPUNIT_ASSERT(f.d_element_type == dods_byte_c);
     	CPPUNIT_ASSERT(f.name() == "second");
-    	CPPUNIT_ASSERT(f.d_buf.ui8 == 200);
+    	CPPUNIT_ASSERT(f.d_buf == 200);
     }
 
     void test_print() {
diff --git a/unit-tests/D4FilterClauseTest.cc b/unit-tests/D4FilterClauseTest.cc
new file mode 100644
index 0000000..4146fc1
--- /dev/null
+++ b/unit-tests/D4FilterClauseTest.cc
@@ -0,0 +1,599 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2014 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <sstream>
+
+#include "Byte.h"
+#include "Int8.h"
+#include "Int16.h"
+#include "UInt16.h"
+#include "Int32.h"
+#include "UInt32.h"
+
+#include "Float32.h"
+#include "Float64.h"
+
+#include "Str.h"
+#include "Url.h"
+//#include "Array.h"
+#include "Structure.h"
+
+#include "D4RValue.h"
+#include "D4FilterClause.h"
+#include "DMR.h"    // We need this because D4FilterClause::value needs it (sort of).
+
+#include "GetOpt.h"
+#include "util.h"
+#include "debug.h"
+
+//#include "testFile.h"
+//#include "test_config.h"
+
+static bool debug = false;
+
+#undef DBG
+#define DBG(x) do { if (debug) {x;} } while(false)
+
+using namespace CppUnit;
+using namespace std;
+
+namespace libdap {
+
+class D4FilterClauseTest: public TestFixture {
+	// Build a DMR and build several D4RValue objects that reference its variables.
+	// Then build several D4RValue objects that hold constants
+
+private:
+    Byte *byte;
+    Float32 *f32;
+    Str *str;
+    Url *url;
+
+    DMR dmr;
+
+public:
+	D4FilterClauseTest(): byte(0), f32(0), str(0), url(0) {
+    }
+    ~D4FilterClauseTest() {
+    }
+
+    void setUp() {
+        byte = new Byte("byte");
+        byte->set_value(17);
+
+        f32 = new Float32("f32");
+        f32->set_value(3.1415);
+
+        str = new Str("str");
+        str->set_value("Einstein");
+
+        url = new Url("url");
+        url->set_value("https://github.com/opendap");
+    }
+
+    void tearDown() {
+        delete byte;
+        delete str;
+    }
+
+    // FilterClauseList tests further down...
+
+    void Byte_and_long_long_test() {
+        D4RValue *arg1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+        CPPUNIT_ASSERT(less->value(dmr));
+
+        D4RValue *arg2_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2_2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> greater(new D4FilterClause(D4FilterClause::greater, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(!greater->value(dmr));
+
+        D4RValue *arg3_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg3_2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> equal(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+        CPPUNIT_ASSERT(!equal->value(dmr));
+
+        D4RValue *arg4_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg4_2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> not_equal(new D4FilterClause(D4FilterClause::not_equal, arg4_1, arg4_2));
+        CPPUNIT_ASSERT(not_equal->value(dmr));
+    }
+
+    // This version uses the D4FilterClause::value() and not value(DMR&) method
+    void Byte_and_long_long_test_2() {
+        D4RValue *arg1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+        CPPUNIT_ASSERT(less->value());
+
+        D4RValue *arg2_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2_2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> greater(new D4FilterClause(D4FilterClause::greater, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(!greater->value());
+
+        D4RValue *arg3_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg3_2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> equal(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+        CPPUNIT_ASSERT(!equal->value());
+
+        D4RValue *arg4_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg4_2 = new D4RValue((long long)21);
+
+        auto_ptr<D4FilterClause> not_equal(new D4FilterClause(D4FilterClause::not_equal, arg4_1, arg4_2));
+        CPPUNIT_ASSERT(not_equal->value());
+    }
+
+    void Byte_and_double_test() {
+        D4RValue *arg1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2 = new D4RValue((double)21.0);
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+        CPPUNIT_ASSERT(less->value(dmr));
+
+        D4RValue *arg2_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2_2 = new D4RValue((double)21);
+
+        auto_ptr<D4FilterClause> greater(new D4FilterClause(D4FilterClause::greater, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(!greater->value(dmr));
+
+        D4RValue *arg3_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg3_2 = new D4RValue((double)21);
+
+        auto_ptr<D4FilterClause> equal(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+        CPPUNIT_ASSERT(!equal->value(dmr));
+
+        D4RValue *arg4_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg4_2 = new D4RValue((double)21);
+
+        auto_ptr<D4FilterClause> not_equal(new D4FilterClause(D4FilterClause::not_equal, arg4_1, arg4_2));
+        CPPUNIT_ASSERT(not_equal->value(dmr));
+    }
+
+    /** @defgroup type_conv Tests for type promotion
+     * @{
+     */
+    void Byte_and_int_test() {
+        D4RValue *arg1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2 = new D4RValue((unsigned long long)(21));
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+        CPPUNIT_ASSERT(less->value());
+
+    }
+
+    void Byte_and_float_test() {
+        D4RValue *arg1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg2 = new D4RValue((float)21.0);
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+        CPPUNIT_ASSERT(less->value());
+
+    }
+    /** @} */
+
+    // this uses a mix of value() and value(dmr), just for cover both cases
+    void Str_and_str_test() {
+        D4RValue *arg1 = new D4RValue(str);
+        D4RValue *arg2 = new D4RValue(string("Tesla"));
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+        CPPUNIT_ASSERT(less->value());
+
+        D4RValue *arg2_1 = new D4RValue(str);
+        D4RValue *arg2_2 = new D4RValue("Tesla");
+
+        auto_ptr<D4FilterClause> greater(new D4FilterClause(D4FilterClause::greater, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(!greater->value());
+
+        D4RValue *arg3_1 = new D4RValue(str);
+        D4RValue *arg3_2 = new D4RValue("Tesla");
+
+        auto_ptr<D4FilterClause> equal(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+        CPPUNIT_ASSERT(!equal->value(dmr));
+
+        D4RValue *arg4_1 = new D4RValue(str);
+        D4RValue *arg4_2 = new D4RValue("Tesla");
+
+        auto_ptr<D4FilterClause> not_equal(new D4FilterClause(D4FilterClause::not_equal, arg4_1, arg4_2));
+        CPPUNIT_ASSERT(not_equal->value(dmr));
+    }
+
+    void Str_and_match_test() {
+        D4RValue *arg1 = new D4RValue(str);
+        D4RValue *arg2 = new D4RValue(string("E.*n"));
+
+        auto_ptr<D4FilterClause> match(new D4FilterClause(D4FilterClause::match, arg1, arg2));
+        CPPUNIT_ASSERT(match->value());
+    }
+
+    void Str_and_number_error_test()
+    {
+        D4RValue *arg1 = new D4RValue(str);
+        D4RValue *arg2 = new D4RValue((long long) 21);
+
+        try {
+            auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+            // The Filter Clause instance is built OK, but the value() method
+            // will balk at this comparison. jhrg 4/21/16
+            DBG(cerr << "built filter clause instance" << endl);
+
+            less->value();
+            CPPUNIT_FAIL("Expected error");
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_ASSERT("Caught error");
+        }
+    }
+
+    void Byte_and_string_error_test()
+    {
+        D4RValue *arg1 = new D4RValue(byte);
+        D4RValue *arg2 = new D4RValue("Tesla");
+
+        try {
+            auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+
+            CPPUNIT_ASSERT(less->value());
+            CPPUNIT_FAIL("Expected error");
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_ASSERT("Caught error");
+        }
+    }
+
+    void Structure_and_string_error_test()
+    {
+        auto_ptr<Structure> s(new Structure("s"));
+        s->add_var(byte); // copy the object
+        D4RValue *arg1 = new D4RValue(s.get()); // BaseType*s are not free'd by D4RValue
+        D4RValue *arg2 = new D4RValue("Tesla");
+
+        try {
+            auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+
+            CPPUNIT_ASSERT(less->value());
+            CPPUNIT_FAIL("Expected error");
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_ASSERT("Caught error");
+        }
+    }
+
+    // There's no way this will get past the parser, but ...
+    void Byte_and_Structure_error_test()
+    {
+        auto_ptr<Structure> s(new Structure("s"));
+        s->add_var(str); // copy the object
+        D4RValue *arg1 = new D4RValue(byte);
+        D4RValue *arg2 = new D4RValue(s.get());
+
+        try {
+            auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+
+            CPPUNIT_ASSERT(less->value());
+            CPPUNIT_FAIL("Expected error");
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_ASSERT("Caught error");
+        }
+    }
+
+    // There's no way this will get past the parser, but ...
+    void Str_and_Structure_error_test()
+    {
+        auto_ptr<Structure> s(new Structure("s"));
+        s->add_var(str); // copy the object
+        D4RValue *arg1 = new D4RValue(str);
+        D4RValue *arg2 = new D4RValue(s.get());
+
+        try {
+            auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg1, arg2));
+
+            CPPUNIT_ASSERT(less->value());
+            CPPUNIT_FAIL("Expected error");
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_ASSERT("Caught error");
+        }
+    }
+
+    // test Url and Float32
+    void grab_bag_test() {
+        D4RValue *arg2_1 = new D4RValue(f32);
+        D4RValue *arg2_2 = new D4RValue(17.0);
+
+        auto_ptr<D4FilterClause> less(new D4FilterClause(D4FilterClause::less, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(less->value());
+
+        D4RValue *arg3_1 = new D4RValue(url);
+        D4RValue *arg3_2 = new D4RValue("https://github.com/opendap");
+
+        auto_ptr<D4FilterClause> equal(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+        CPPUNIT_ASSERT(equal->value(dmr));
+
+        D4RValue *arg4_1 = new D4RValue(url);
+        D4RValue *arg4_2 = new D4RValue("https://.*dap$");
+
+        auto_ptr<D4FilterClause> not_equal(new D4FilterClause(D4FilterClause::not_equal, arg4_1, arg4_2));
+        CPPUNIT_ASSERT(not_equal->value(dmr));
+
+        D4RValue *arg5_1 = new D4RValue(url);
+        D4RValue *arg5_2 = new D4RValue("https://.*dap$");
+
+        auto_ptr<D4FilterClause> match(new D4FilterClause(D4FilterClause::match, arg5_1, arg5_2));
+        CPPUNIT_ASSERT(match->value(dmr));
+    }
+
+    void float_test() {
+        D4RValue *arg2_1 = new D4RValue(f32);
+        D4RValue *arg2_2 = new D4RValue(3.1415);
+
+        auto_ptr<D4FilterClause> clause(new D4FilterClause(D4FilterClause::equal, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(clause->value());
+    }
+
+    void float_test_2() {
+        D4RValue *arg2_1 = new D4RValue(f32);
+        D4RValue *arg2_2 = new D4RValue(3.1415);
+
+        auto_ptr<D4FilterClause> clause(new D4FilterClause(D4FilterClause::greater_equal, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(clause->value());
+    }
+
+    void float_test_3() {
+        D4RValue *arg2_1 = new D4RValue(f32);
+        D4RValue *arg2_2 = new D4RValue(3.1415);
+
+        auto_ptr<D4FilterClause> clause(new D4FilterClause(D4FilterClause::less_equal, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(clause->value());
+    }
+
+    void int_test() {
+        auto_ptr<Int8> i8(new Int8(""));
+        i8->set_value(17);
+        D4RValue *arg2_1 = new D4RValue(i8.get());
+        D4RValue *arg2_2 = new D4RValue((long long)17);
+
+        auto_ptr<D4FilterClause> clause(new D4FilterClause(D4FilterClause::equal, arg2_1, arg2_2));
+        CPPUNIT_ASSERT(clause->value());
+    }
+
+
+    void true_clauses_test() {
+        // Testing this as a pointer since that's how it will be stored in D4Sequence
+        auto_ptr<D4FilterClauseList> clauses(new D4FilterClauseList());
+
+        D4RValue *arg1_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg1_2 = new D4RValue((double)21.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::less, arg1_1, arg1_2));
+
+        D4RValue *arg2_1 = new D4RValue(f32);       // holds pi
+        D4RValue *arg2_2 = new D4RValue(17.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::less, arg2_1, arg2_2));
+
+        D4RValue *arg3_1 = new D4RValue(url);
+        D4RValue *arg3_2 = new D4RValue("https://github.com/opendap");
+        clauses->add_clause(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+
+        D4RValue *arg4_1 = new D4RValue(url);
+        D4RValue *arg4_2 = new D4RValue("https://.*dap$");
+        clauses->add_clause(new D4FilterClause(D4FilterClause::match, arg4_1, arg4_2));
+
+        CPPUNIT_ASSERT(clauses->size() == 4);
+        CPPUNIT_ASSERT(clauses->value(dmr));
+        CPPUNIT_ASSERT(clauses->value());
+    }
+
+    // This should return true
+    void no_clauses_test() {
+        auto_ptr<D4FilterClauseList> clauses(new D4FilterClauseList());
+
+        CPPUNIT_ASSERT(clauses->size() == 0);
+        CPPUNIT_ASSERT(clauses->value(dmr));
+        CPPUNIT_ASSERT(clauses->value());
+    }
+
+    void false_clauses_test() {
+        auto_ptr<D4FilterClauseList> clauses(new D4FilterClauseList());
+
+        D4RValue *arg1_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg1_2 = new D4RValue((double)21.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::less, arg1_1, arg1_2));
+
+        // This clause will fail
+        D4RValue *arg2_1 = new D4RValue(f32);       // holds pi
+        D4RValue *arg2_2 = new D4RValue(17.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::greater, arg2_1, arg2_2));
+
+        D4RValue *arg3_1 = new D4RValue(url);
+        D4RValue *arg3_2 = new D4RValue("https://github.com/opendap");
+        clauses->add_clause(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+
+        D4RValue *arg4_1 = new D4RValue(url);
+        D4RValue *arg4_2 = new D4RValue("https://.*dap$");
+        clauses->add_clause(new D4FilterClause(D4FilterClause::match, arg4_1, arg4_2));
+
+        CPPUNIT_ASSERT(clauses->size() == 4);
+        CPPUNIT_ASSERT(clauses->value(dmr) == false);
+        CPPUNIT_ASSERT(clauses->value() == false);
+    }
+
+    void evaluation_order_test() {
+        auto_ptr<D4FilterClauseList> clauses(new D4FilterClauseList());
+
+        D4RValue *arg1_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg1_2 = new D4RValue((double)21.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::less, arg1_1, arg1_2));
+
+        // This clause will fail and we should not get to the next clause, which will
+        // throw and exception.
+        D4RValue *arg2_1 = new D4RValue(f32);       // holds pi
+        D4RValue *arg2_2 = new D4RValue(17.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::greater, arg2_1, arg2_2));
+
+        D4RValue *arg3_1 = new D4RValue(url);
+        D4RValue *arg3_2 = new D4RValue(17.0); // Error - mismatched types
+        clauses->add_clause(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+
+        D4RValue *arg4_1 = new D4RValue(url);
+        D4RValue *arg4_2 = new D4RValue("https://.*dap$");
+        clauses->add_clause(new D4FilterClause(D4FilterClause::match, arg4_1, arg4_2));
+
+        try {
+            CPPUNIT_ASSERT(clauses->size() == 4);
+            CPPUNIT_ASSERT(clauses->value(dmr) == false);
+            CPPUNIT_ASSERT(clauses->value() == false);
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_FAIL("Exception, but the thrid clause should not have been evaluated");
+
+        }
+    }
+
+    void evaluation_order_test_2() {
+        auto_ptr<D4FilterClauseList> clauses(new D4FilterClauseList());
+
+        D4RValue *arg1_1 = new D4RValue(byte);    // holds 17
+        D4RValue *arg1_2 = new D4RValue((double)21.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::less, arg1_1, arg1_2));
+
+        // This clause will *pass* and we *should* get to the next clause, which will
+        // throw and exception.
+        D4RValue *arg2_1 = new D4RValue(f32);       // holds pi
+        D4RValue *arg2_2 = new D4RValue(17.0);
+        clauses->add_clause(new D4FilterClause(D4FilterClause::less, arg2_1, arg2_2));
+
+        D4RValue *arg3_1 = new D4RValue(url);
+        D4RValue *arg3_2 = new D4RValue(17.0); // Error - mismatched types
+        clauses->add_clause(new D4FilterClause(D4FilterClause::equal, arg3_1, arg3_2));
+
+        D4RValue *arg4_1 = new D4RValue(url);
+        D4RValue *arg4_2 = new D4RValue("https://.*dap$");
+        clauses->add_clause(new D4FilterClause(D4FilterClause::match, arg4_1, arg4_2));
+
+        try {
+            CPPUNIT_ASSERT(clauses->size() == 4);
+            CPPUNIT_ASSERT(clauses->value(dmr));
+
+            CPPUNIT_FAIL("Expected the third clause to throw an exception.");
+        }
+        catch (Error &e) {
+            DBG(cerr << "Caught error: " + e.get_error_message() << endl);
+            CPPUNIT_ASSERT("Expected exception found.");
+        }
+    }
+
+    CPPUNIT_TEST_SUITE( D4FilterClauseTest );
+
+    CPPUNIT_TEST(Byte_and_long_long_test);
+    CPPUNIT_TEST(Byte_and_long_long_test_2);
+    CPPUNIT_TEST(Byte_and_double_test);
+    // These float --> double, etc.
+    CPPUNIT_TEST(Byte_and_int_test);
+    CPPUNIT_TEST(Byte_and_float_test);
+
+    CPPUNIT_TEST(Str_and_str_test);
+    CPPUNIT_TEST(Str_and_match_test);
+    CPPUNIT_TEST(Str_and_number_error_test);
+    CPPUNIT_TEST(Byte_and_string_error_test);
+    CPPUNIT_TEST(Structure_and_string_error_test);
+    CPPUNIT_TEST(Byte_and_Structure_error_test);
+    CPPUNIT_TEST(Str_and_Structure_error_test);
+
+    CPPUNIT_TEST(grab_bag_test);
+    CPPUNIT_TEST(float_test);
+    CPPUNIT_TEST(float_test_2);
+    CPPUNIT_TEST(float_test_3);
+    CPPUNIT_TEST(int_test);
+
+    // FilterClauseList tests
+    CPPUNIT_TEST(true_clauses_test);
+    CPPUNIT_TEST(no_clauses_test);
+    CPPUNIT_TEST(false_clauses_test);
+    CPPUNIT_TEST(evaluation_order_test);
+    CPPUNIT_TEST(evaluation_order_test_2);
+
+    CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(D4FilterClauseTest);
+
+} // namepsace libdap
+
+int main(int argc, char*argv[]) {
+    CppUnit::TextTestRunner runner;
+    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+
+    GetOpt getopt(argc, argv, "d");
+    char option_char;
+
+    while ((option_char = getopt()) != EOF)
+        switch (option_char) {
+        case 'd':
+            debug = 1;  // debug is a static global
+            break;
+        default:
+            break;
+        }
+
+    bool wasSuccessful = true;
+    string test = "";
+    int i = getopt.optind;
+    if (i == argc) {
+        // run them all
+        wasSuccessful = runner.run("");
+    }
+    else {
+        while (i < argc) {
+            test = string("libdap::D4FilterClauseTest::") + argv[i++];
+            DBG(cerr << "test: " << test << endl);
+            wasSuccessful = wasSuccessful && runner.run(test);
+        }
+    }
+
+    // xmlMemoryDump();
+
+    return wasSuccessful ? 0 : 1;
+}
+
diff --git a/unit-tests/D4MarshallerTest.cc b/unit-tests/D4MarshallerTest.cc
index b309acf..e066ea0 100644
--- a/unit-tests/D4MarshallerTest.cc
+++ b/unit-tests/D4MarshallerTest.cc
@@ -38,8 +38,6 @@
 #include <fcntl.h>
 #include <stdint.h>
 
-// #define DODS_DEBUG 1
-
 #include <iostream>
 #include <fstream>
 #include <sstream>
@@ -54,11 +52,16 @@
 
 static bool debug = false;
 static bool write_baselines = false;
-const string path = (string)TEST_SRC_DIR + "/D4-marshaller";
 
 #undef DBG
 #define DBG(x) do { if (debug) (x); } while(false);
 
+#if WORDS_BIGENDIAN
+const static string path = (string)TEST_SRC_DIR + "/D4-marshaller/big-endian";
+#else
+const static string path = (string)TEST_SRC_DIR + "/D4-marshaller/little-endian";
+#endif
+
 using namespace std;
 using namespace libdap;
 
@@ -124,6 +127,7 @@ public:
 
     void test_cmp() {
         char buf[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
+	DBG(cerr << "Path: " << path << endl);
         CPPUNIT_ASSERT(cmp(buf, 16, path + "/test_cmp.dat"));
     }
 
diff --git a/unit-tests/D4SequenceTest.cc b/unit-tests/D4SequenceTest.cc
new file mode 100644
index 0000000..0ffa254
--- /dev/null
+++ b/unit-tests/D4SequenceTest.cc
@@ -0,0 +1,246 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <string>
+#include <sstream>
+
+//#define DODS_DEBUG
+
+#include "DMR.h"
+#include "D4Group.h"
+#include "D4RValue.h"
+#include "D4FilterClause.h"
+
+#include "../tests/D4TestTypeFactory.h"
+#include "../tests/TestD4Sequence.h"
+#include "../tests/TestInt32.h"
+#include "../tests/TestStr.h"
+#include "../tests/TestFloat32.h"
+
+#include "testFile.h"
+#include "test_config.h"
+
+#include "GNURegex.h"
+#include "GetOpt.h"
+#include "debug.h"
+
+static bool debug = false;
+
+#undef DBG
+#define DBG(x) do { if (debug) (x); } while(false);
+
+using namespace CppUnit;
+using namespace std;
+
+int test_variable_sleep_interval;
+
+const static string prefix = string(TEST_SRC_DIR) + "/D4-type-testsuite/";
+
+const static string s_txt = "TestD4Sequence_s.txt";
+const static string one_clause_txt = "TestD4Sequence_one_clause.txt";
+const static string two_clause_txt = "TestD4Sequence_two_clause.txt";
+
+namespace libdap
+{
+
+class D4SequenceTest : public TestFixture {
+private:
+    TestD4Sequence *s;
+
+public:
+    D4SequenceTest() : s(0) {}
+    ~D4SequenceTest() {}
+
+    void setUp() {
+        // Set up a simple sequence. Used to test ctor, assigment, et cetera.
+        s = new TestD4Sequence("s");
+        s->add_var_nocopy(new TestInt32("i32"));
+        s->add_var_nocopy(new TestStr("str"));
+        s->add_var_nocopy(new TestFloat32("f32"));
+        s->set_series_values(true);
+        s->set_send_p(true);
+        s->set_length(7);
+    }
+
+    void tearDown() {
+        delete s; s = 0;
+    }
+
+    void ctor_test() {
+        s->intern_data();
+        CPPUNIT_ASSERT(s->length() == 7);
+
+        ostringstream oss;
+        s->output_values(oss);
+
+        DBG(cerr << "s: " << oss.str() << endl);
+        DBG(cerr << "Baseline: " << readTestBaseline(prefix + s_txt) << endl);
+
+        CPPUNIT_ASSERT(oss.str() == readTestBaseline(prefix + s_txt));
+    }
+
+    void assignment_test() {
+        TestD4Sequence ts = *s;
+        ts.intern_data();
+        CPPUNIT_ASSERT(ts.length() == 7);
+
+        ostringstream oss;
+        ts.output_values(oss);
+
+        DBG(cerr << "ts: " << oss.str() << endl);
+        //CPPUNIT_ASSERT(oss.str() == readTestBaseline(prefix + s_txt));
+    }
+
+    void copy_ctor_test() {
+        auto_ptr<TestD4Sequence> ts(new TestD4Sequence(*s));
+        ts->intern_data();
+
+        CPPUNIT_ASSERT(ts->length() == 7);
+
+        ostringstream oss;
+        ts->output_values(oss);
+
+        DBG(cerr << "ts: " << oss.str() << endl);
+        //CPPUNIT_ASSERT(oss.str() == readTestBaseline(prefix + s_txt));
+    }
+
+    void one_clause_test() {
+        D4RValue *arg1 = new D4RValue(s->var("i32"));
+        D4RValue *arg2 = new D4RValue((long long)1024);
+        s->clauses().add_clause(new D4FilterClause(D4FilterClause::equal, arg1, arg2));
+
+        s->intern_data();
+
+        DBG(cerr << "one_clause_test, s->length(): " << s->length() << endl);
+
+        ostringstream oss;
+        s->output_values(oss);
+
+        DBG(cerr << "one_clause_test, s: " << oss.str() << endl);
+        CPPUNIT_ASSERT(s->length() == 1);
+
+        CPPUNIT_ASSERT(oss.str() == readTestBaseline(prefix + one_clause_txt));
+    }
+
+
+    void two_clause_test() {
+        D4RValue *arg1 = new D4RValue(s->var("i32"));
+        D4RValue *arg2 = new D4RValue((long long)1024);
+        s->clauses().add_clause(new D4FilterClause(D4FilterClause::greater_equal, arg1, arg2));
+
+        D4RValue *arg1_2 = new D4RValue(s->var("i32"));
+        D4RValue *arg2_2 = new D4RValue((long long)1048576);
+        s->clauses().add_clause(new D4FilterClause(D4FilterClause::less_equal, arg1_2, arg2_2));
+
+        s->intern_data();
+
+        DBG(cerr << "two_clause_test, s->length(): " << s->length() << endl);
+
+        ostringstream oss;
+        s->output_values(oss);
+
+        DBG(cerr << "two_clause_test, s: " << oss.str() << endl);
+
+        CPPUNIT_ASSERT(s->length() == 3);
+
+        CPPUNIT_ASSERT(oss.str() == readTestBaseline(prefix + two_clause_txt));
+    }
+
+    void two_variable_test() {
+        D4RValue *arg1 = new D4RValue(s->var("i32"));
+        D4RValue *arg2 = new D4RValue((long long)1024);
+        s->clauses().add_clause(new D4FilterClause(D4FilterClause::greater_equal, arg1, arg2));
+
+        D4RValue *arg1_2 = new D4RValue(s->var("f32"));
+        D4RValue *arg2_2 = new D4RValue((long long)0.0);
+        s->clauses().add_clause(new D4FilterClause(D4FilterClause::less, arg1_2, arg2_2));
+
+        s->intern_data();
+
+        DBG(cerr << "two_variable_test, s->length(): " << s->length() << endl);
+
+        ostringstream oss;
+        s->output_values(oss);
+
+        DBG(cerr << "two_variable_test, s: " << oss.str() << endl);
+
+        CPPUNIT_ASSERT(s->length() == 1);
+        // ...just happens to be hte same baseline file at one_clause_test()
+        CPPUNIT_ASSERT(oss.str() == readTestBaseline(prefix + one_clause_txt));
+    }
+
+    CPPUNIT_TEST_SUITE( D4SequenceTest );
+
+    CPPUNIT_TEST(ctor_test);
+    CPPUNIT_TEST(assignment_test);
+    CPPUNIT_TEST(copy_ctor_test);
+
+    CPPUNIT_TEST(one_clause_test);
+    CPPUNIT_TEST(two_clause_test);
+    CPPUNIT_TEST(two_variable_test);
+
+    CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(D4SequenceTest);
+
+}
+
+int main(int argc, char*argv[]) {
+    CppUnit::TextTestRunner runner;
+    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+
+    GetOpt getopt(argc, argv, "d");
+    int option_char;
+    while ((option_char = getopt()) != -1)
+        switch (option_char) {
+        case 'd':
+            debug = 1;  // debug is a static global
+            break;
+        default:
+            break;
+        }
+
+    bool wasSuccessful = true;
+    string test = "";
+    int i = getopt.optind;
+    if (i == argc) {
+        // run them all
+        wasSuccessful = runner.run("");
+    }
+    else {
+        while (i < argc) {
+            test = string("libdap::D4SequenceTest::") + argv[i++];
+
+            wasSuccessful = wasSuccessful && runner.run(test);
+        }
+    }
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/D4UnMarshallerTest.cc b/unit-tests/D4UnMarshallerTest.cc
index 9a4ccce..90519ab 100644
--- a/unit-tests/D4UnMarshallerTest.cc
+++ b/unit-tests/D4UnMarshallerTest.cc
@@ -52,11 +52,16 @@
 #include "test_config.h"
 
 static bool debug = false;
-const string path = (string)TEST_SRC_DIR + "/D4-marshaller";
 
 #undef DBG
 #define DBG(x) do { if (debug) (x); } while(false);
 
+#if WORDS_BIGENDIAN
+const static string path = string(TEST_SRC_DIR) + "/D4-marshaller/big-endian";
+#else
+const static string path = string(TEST_SRC_DIR) + "/D4-marshaller/little-endian";
+#endif
+
 using namespace std;
 using namespace libdap;
 
@@ -82,7 +87,7 @@ class D4UnMarshallerTest: public CppUnit::TestFixture {
 
 #else
 
-#ifdef WORDS_BIGENDIAN
+#ifdef __BIG_ENDIAN__
         return true;
 #else
         return false;
@@ -111,56 +116,62 @@ public:
 	    string file = path + "/test_scalars_1_bin.dat";
 	    DBG(cerr << "file: " << file << endl);
 	    in.open(file.c_str(), fstream::binary | fstream::in);
-            D4StreamUnMarshaller dsm(in, is_host_big_endian());
+
+	    // Don't use is_host_big_endian() because these tests should
+	    // never 'twiddle bytes' They are always testing little to little
+	    // of big to big
+            D4StreamUnMarshaller dsm(in, 0 /*is_host_big_endian()*/);
 
             dods_byte b;
             dsm.get_byte(b);
             CPPUNIT_ASSERT(b == 17);
             string ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
+            DBG(cerr << "ck: " << ck << endl);
+            // Same checksum for both big- and little-endian
             CPPUNIT_ASSERT(ck == "b8b2cf7f");
 
             dods_int16 i1;
             dsm.get_int16(i1);
             CPPUNIT_ASSERT(i1 == 17);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "120031ef");
+            DBG(cerr << "ck: " << ck << endl);
+            // little-endian || big-endian checksum values
+            CPPUNIT_ASSERT(ck == "120031ef" || ck == "2b69320d");
 
             dods_int32 i2;
             dsm.get_int32(i2);
             CPPUNIT_ASSERT(i2 == 17);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "c9e1efe6");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "c9e1efe6" || ck == "4bf4ffee");
 
             dods_int64 i3;
             dsm.get_int64(i3);
             CPPUNIT_ASSERT(i3 == 17);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "d533eedc");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "d533eedc" || ck == "0f92ff9b");
 
             dods_uint16 ui1;
             dsm.get_uint16(ui1);
             CPPUNIT_ASSERT(ui1 == 17);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "120031ef");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "120031ef" || ck == "2b69320d");
 
             dods_uint32 ui2;
             dsm.get_uint32(ui2);
             CPPUNIT_ASSERT(ui2 == 17);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "c9e1efe6");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "c9e1efe6" || ck == "4bf4ffee");
 
             dods_uint64 ui3;
             dsm.get_uint64(ui3);
             CPPUNIT_ASSERT(ui3 == 17);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "d533eedc");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "d533eedc" || ck == "0f92ff9b");
         }
         catch (Error &e) {
             cerr << "Error: " << e.get_error_message() << endl;
@@ -181,21 +192,21 @@ public:
         try {
 	    string file = path + "/test_scalars_2_bin.dat";
             in.open(file.c_str(), fstream::binary | fstream::in);
-            D4StreamUnMarshaller dsm(in, is_host_big_endian());
+            D4StreamUnMarshaller dsm(in, 0);
 
             dods_float32 r1;
             dsm.get_float32(r1);
             CPPUNIT_ASSERT(r1 == 17.0);
             string ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "d3c5bc59");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "d3c5bc59" || ck == "edcaaa7c");
 
             dods_float64 r2;
             dsm.get_float64(r2);
             CPPUNIT_ASSERT(r2 == 17.0);
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "d5a3994b");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "d5a3994b" || ck == "42abb362");
         }
         catch (Error &e) {
             cerr << "Error: " << e.get_error_message() << endl;
@@ -215,20 +226,20 @@ public:
         try {
 	    string file = path + "/test_scalars_3_bin.dat";
             in.open(file.c_str(), fstream::binary | fstream::in);
-            D4StreamUnMarshaller dsm(in, is_host_big_endian());
+            D4StreamUnMarshaller dsm(in, 0);
 
             string s;
             dsm.get_str(s);
             CPPUNIT_ASSERT(s == "This is a test string with 40 characters");
             string ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
+            DBG(cerr << "ck: " << ck << endl);
             CPPUNIT_ASSERT(ck == "af117544");
 
             string u;
             dsm.get_url(u);
             CPPUNIT_ASSERT(u == "http://www.opendap.org/lame/unit/test");
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
+            DBG(cerr << "ck: " << ck << endl);
             CPPUNIT_ASSERT(ck == "41e10081");
         }
         catch (Error &e) {
@@ -249,7 +260,7 @@ public:
         try {
 	    string file = path + "/test_opaque_1_bin.dat";
             in.open(file.c_str(), fstream::binary | fstream::in);
-            D4StreamUnMarshaller dsm(in, is_host_big_endian());
+            D4StreamUnMarshaller dsm(in, 0);
 
             char *buf2;
             int64_t len;
@@ -258,7 +269,7 @@ public:
             for (int i = 0; i < 32768; ++i)
                 CPPUNIT_ASSERT(buf2[i] == i % (1 << 7));
             string ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
+            DBG(cerr << "ck: " << ck << endl);
             CPPUNIT_ASSERT(ck == "199ad7f5");
 
             delete buf2;
@@ -281,23 +292,23 @@ public:
         try {
 	    string file = path + "/test_vector_1_bin.dat";
             in.open(file.c_str(), fstream::binary | fstream::in);
-            D4StreamUnMarshaller dsm(in, is_host_big_endian());
+            D4StreamUnMarshaller dsm(in, 0);
 
             vector<unsigned char> buf1(32768);
             dsm.get_vector(reinterpret_cast<char*>(&buf1[0]), 32768);
             for (int i = 0; i < 32768; ++i)
                 CPPUNIT_ASSERT(buf1[i] == i % (1 << 7));
             string ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "199ad7f5");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "199ad7f5" || ck == "199ad7f5");
 
             vector<dods_int32> buf2(32768);
             dsm.get_vector(reinterpret_cast<char*>(&buf2[0]), 32768, sizeof(dods_int32));
             for (int i = 0; i < 32768; ++i)
                 CPPUNIT_ASSERT(buf2[i] == i % (1 << 9));
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "5c1bf29f");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "5c1bf29f" || ck == "8efd2d3d");
 
             vector<dods_float64> buf3(32768);
             dsm.get_vector_float64(reinterpret_cast<char*>(&buf3[0]), 32768);
@@ -307,8 +318,8 @@ public:
                 CPPUNIT_ASSERT(buf3[i] == i % (1 << 9));
             }
             ck = dsm.get_checksum_str();
-            DBG2(cerr << "ck: " << ck << endl);
-            CPPUNIT_ASSERT(ck == "aafc2a91");
+            DBG(cerr << "ck: " << ck << endl);
+            CPPUNIT_ASSERT(ck == "aafc2a91" || ck == "7bdf9931");
        }
         catch (Error &e) {
             cerr << "Error: " << e.get_error_message() << endl;
diff --git a/unit-tests/DODSFilterTest.cc b/unit-tests/DODSFilterTest.cc
new file mode 100644
index 0000000..17e37dd
--- /dev/null
+++ b/unit-tests/DODSFilterTest.cc
@@ -0,0 +1,345 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>  // for stat
+#include <cstring>
+#include <sstream>
+
+//#define DODS_DEBUG
+
+#include "DODSFilter.h"
+#include "DAS.h"
+#include "DDS.h"
+#include "GNURegex.h"
+#include "debug.h"
+
+#include "../tests/TestTypeFactory.h"
+#include "../tests/TestByte.h"
+
+#include <test_config.h>
+
+using namespace CppUnit;
+using namespace std;
+using namespace libdap;
+
+int test_variable_sleep_interval = 0;
+
+namespace libdap {
+
+class DODSFilterTest: public TestFixture {
+private:
+    DODSFilter *df, *df_conditional, *df1, *df2, *df3, *df4, *df5, *df6;
+
+    AttrTable *cont_a;
+    DAS *das;
+    DDS *dds;
+    ostringstream oss;
+    time_t now;
+    char now_array[256];
+
+public:
+    DODSFilterTest() {
+        now = time(0);
+        ostringstream time_string;
+        time_string << (int) now;
+        strncpy(now_array, time_string.str().c_str(), 255);
+        now_array[255] = '\0';
+    }
+
+    ~DODSFilterTest() {
+    }
+
+    void setUp() {
+        // Test pathname
+        string test_file = (string) TEST_SRC_DIR + "/server-testsuite/bears.data";
+        char *argv_1[] = { (char*) "test_case", (char *) test_file.c_str() };
+        df = new DODSFilter(2, argv_1);
+
+        char *argv_1_1[] = { (char*) "test_case", (char *) test_file.c_str(), (char*) "-l", &now_array[0] };
+        df_conditional = new DODSFilter(4, argv_1_1);
+
+        // Test missing file
+        argv_1[1] = (char*) "no-such-file";
+        df1 = new DODSFilter(2, argv_1);
+
+        // Test files in CWD. Note that the time is the GM time : Tue, 01 May
+        // 2001 01:08:14 -0700
+        argv_1[1] = (char*) "test_config.h";
+        df2 = new DODSFilter(2, argv_1);
+
+        // This file has an ancillary DAS in the server-testsuite dir.
+        // df3 is also used to test escaping stuff in URLs. 5/4/2001 jhrg
+        char *argv_2[8];
+        argv_2[0] = (char*) "test_case";
+        test_file = (string) TEST_SRC_DIR + "/server-testsuite/coads.data";
+        argv_2[1] = (char *) test_file.c_str();
+        argv_2[2] = (char*) "-l";
+        argv_2[3] = &now_array[0];
+        argv_2[4] = (char*) "-e";
+        argv_2[5] = (char*) "u,x,z[0]&grid(u,\"lat<10.0\")";
+        argv_2[6] = (char*) "-t";
+        argv_2[7] = (char*) "1";
+        df3 = new DODSFilter(6, argv_2);
+
+        // Go back to this data source to test w/o an ancillary DAS.
+        argv_2[0] = (char*) "test_case";
+        test_file = (string) TEST_SRC_DIR + "/server-testsuite/bears.data";
+        argv_2[1] = (char *) test_file.c_str();
+        argv_2[2] = (char*) "-l";
+        argv_2[3] = &now_array[0];
+        argv_2[4] = (char*) "-e";
+        argv_2[5] = (char*) "u,x,z[0]&grid(u,\"lat<10.0\")";
+        argv_2[6] = (char*) "-t";
+        argv_2[7] = (char*) "1";
+        df4 = new DODSFilter(6, argv_2);
+
+        // Test escaping stuff. 5/4/2001 jhrg
+        char *argv_3[] = { (char*) "test_case", (char*) "nowhere%5Bmydisk%5Dmyfile", (char*) "-e", (char*) "u%5B0%5D" };
+        df5 = new DODSFilter(4, argv_3);
+
+        char *argv_4[] = { (char*) "test_case", (char*) "nowhere%3a%5bmydisk%5dmyfile", (char*) "-e",
+                (char*) "Grid%20field%3au%5b0%5d,Grid%20field%3av" };
+        df6 = new DODSFilter(4, argv_4);
+
+        cont_a = new AttrTable;
+        cont_a->append_attr("size", "Int32", "7");
+        cont_a->append_attr("type", "String", "cars");
+        das = new DAS;
+        das->add_table("a", cont_a);
+
+        // This AttrTable looks like:
+        //      Attributes {
+        //          a {
+        //              Int32 size 7;
+        //              String type cars;
+        //          }
+        //      }
+
+        TestTypeFactory ttf;
+        dds = new DDS(&ttf, "test");
+        TestByte a("a");
+        dds->add_var(&a);
+
+        dds->transfer_attributes(das);
+        dds->set_dap_major(3);
+        dds->set_dap_minor(2);
+    }
+
+    void tearDown() {
+        delete df; df = 0;
+        delete df_conditional; df_conditional = 0;
+        delete df1; df1 = 0;
+        delete df2; df2 = 0;
+        delete df3; df3 = 0;
+        delete df4; df4 = 0;
+        delete df5; df5 = 0;
+        delete df6; df6 = 0;
+
+        delete das; das = 0;
+        delete dds; dds = 0;
+    }
+
+    bool re_match(Regex &r, const string &s) {
+        DBG(cerr << "s.length(): " << s.length() << endl);
+        int pos = r.match(s.c_str(), s.length());
+        DBG(cerr << "r.match(s): " << pos << endl);
+        return pos > 0 && static_cast<unsigned> (pos) == s.length();
+    }
+
+    bool re_match_binary(Regex &r, const string &s) {
+        DBG(cerr << "s.length(): " << s.length() << endl);
+        int pos = r.match(s.c_str(), s.length());
+        DBG(cerr << "r.match(s): " << pos << endl);
+        return pos > 0;
+    }
+
+    void get_dataset_last_modified_time_test() {
+        time_t t = time(0);
+        CPPUNIT_ASSERT(df1->get_dataset_last_modified_time() == t);
+
+        struct stat st;
+        string test_file = (string) TEST_SRC_DIR + "/server-testsuite/bears.data";
+        stat(test_file.c_str(), &st);
+        CPPUNIT_ASSERT(df->get_dataset_last_modified_time() == st.st_mtime);
+
+        stat("test_config.h", &st);
+        CPPUNIT_ASSERT(df2->get_dataset_last_modified_time() == st.st_mtime);
+
+        test_file = (string) TEST_SRC_DIR + "/server-testsuite/coads.data";
+        stat(test_file.c_str(), &st);
+        CPPUNIT_ASSERT(df3->get_dataset_last_modified_time() == st.st_mtime);
+    }
+
+    void get_das_last_modified_time_test() {
+        // the dataset pointed to by df has no anc. DAS
+        struct stat st;
+        string test_file = (string) TEST_SRC_DIR + "/server-testsuite/bears.data";
+        stat(test_file.c_str(), &st);
+        CPPUNIT_ASSERT(df->get_das_last_modified_time() == st.st_mtime);
+
+        // the dataset pointed by df3 has an anc. DAS
+        test_file = (string) TEST_SRC_DIR + "/server-testsuite/coads.data.das";
+        stat(test_file.c_str(), &st);
+        CPPUNIT_ASSERT(df3->get_das_last_modified_time() == st.st_mtime);
+    }
+
+    void send_das_test() {
+        Regex
+                r1(
+                        "HTTP/1.0 200 OK\r\n\
+XDODS-Server: .*\
+XOPeNDAP-Server: .*\
+XDAP: .*\
+Date: .*\
+Last-Modified: .*\
+Content-Type: text/plain\r\n\
+Content-Description: dods_das\r\n\
+\r\n\
+Attributes \\{\n\
+    a \\{\n\
+        Int32 size 7;\n\
+        String type \"cars\";\n\
+    \\}\n\
+\\}\n");
+
+        df->send_das(oss, *das);
+
+        DBG(cerr << "DAS: " << oss.str() << endl);
+
+        CPPUNIT_ASSERT(re_match(r1, oss.str()));
+        oss.str("");
+
+        Regex r2("HTTP/1.0 304 NOT MODIFIED\r\n\
+Date: .*\r\n\
+\r\n");
+
+        df_conditional->send_das(oss, *das);
+        CPPUNIT_ASSERT(re_match(r2, oss.str()));
+    }
+
+    void send_dds_test() {
+        Regex
+                r1(
+                        "HTTP/1.0 200 OK\r\n\
+XDODS-Server: .*\
+XOPeNDAP-Server: .*\
+XDAP: .*\
+Date: .*\
+Last-Modified: .*\
+Content-Type: text/plain\r\n\
+Content-Description: dods_dds\r\n\
+\r\n\
+Dataset \\{\n\
+    Byte a;\n\
+\\} test;\n");
+
+        ConstraintEvaluator ce;
+
+        df->send_dds(oss, *dds, ce);
+
+        DBG(cerr << "DDS: " << oss.str() << endl);
+
+        CPPUNIT_ASSERT(re_match(r1, oss.str()));
+        oss.str("");
+
+        Regex r2("HTTP/1.0 304 NOT MODIFIED\r\n\
+Date: .*\r\n\
+\r\n");
+
+        df_conditional->send_dds(oss, *dds, ce);
+        CPPUNIT_ASSERT(re_match(r2, oss.str()));
+    }
+
+    void is_conditional_test() {
+        CPPUNIT_ASSERT(df->is_conditional() == false);
+        CPPUNIT_ASSERT(df3->is_conditional() == true);
+    }
+
+    void get_request_if_modified_since_test() {
+        CPPUNIT_ASSERT(df->get_request_if_modified_since() == -1);
+        CPPUNIT_ASSERT(df3->get_request_if_modified_since() == now);
+    }
+
+    void escape_code_test() {
+        // These should NOT be escaped.
+
+        DBG(cerr << df3->get_dataset_name() << endl); DBG(cerr << df3->get_ce() << endl);
+
+        CPPUNIT_ASSERT(df3->get_dataset_name() == (string)TEST_SRC_DIR + "/server-testsuite/coads.data");
+        CPPUNIT_ASSERT(df3->get_ce() == "u,x,z[0]&grid(u,\"lat<10.0\")");
+
+        // The DODSFIlter instance is feed escaped values; they should be
+        // unescaped by the ctor and the mutators. 5/4/2001 jhrg
+
+        DBG(cerr << df5->get_dataset_name() << endl); DBG(cerr << df5->get_ce() << endl);
+
+        CPPUNIT_ASSERT(df5->get_dataset_name() == "nowhere[mydisk]myfile");
+        CPPUNIT_ASSERT(df5->get_ce() == "u[0]");
+
+        df5->set_ce("u%5B0%5D");
+        CPPUNIT_ASSERT(df5->get_ce() == "u[0]");
+
+        DBG(cerr << df6->get_dataset_name() << endl); DBG(cerr << df6->get_ce() << endl);
+        df5->set_ce("Grid%20u%5B0%5D");
+        CPPUNIT_ASSERT(df5->get_ce() == "Grid%20u[0]");
+    }
+
+    // This tests reading the timeout value from argv[].
+    void timeout_test() {
+        CPPUNIT_ASSERT(df3->get_timeout() == 1);
+        CPPUNIT_ASSERT(df1->get_timeout() == 0);
+    }
+
+CPPUNIT_TEST_SUITE( DODSFilterTest );
+
+        CPPUNIT_TEST(get_dataset_last_modified_time_test);
+        CPPUNIT_TEST(get_das_last_modified_time_test);
+
+        CPPUNIT_TEST(send_das_test);
+        CPPUNIT_TEST(send_dds_test);
+
+        CPPUNIT_TEST(is_conditional_test);
+        CPPUNIT_TEST(get_request_if_modified_since_test);
+        CPPUNIT_TEST(escape_code_test);
+
+    CPPUNIT_TEST_SUITE_END();
+};
+CPPUNIT_TEST_SUITE_REGISTRATION(DODSFilterTest);
+}
+
+int main(int, char**) {
+    CppUnit::TextTestRunner runner;
+    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+
+    bool wasSuccessful = runner.run("", false);
+
+    return wasSuccessful ? 0 : 1;
+}
+
diff --git a/unit-tests/HTTPCacheTest.cc b/unit-tests/HTTPCacheTest.cc
index 42c7200..2fd3b08 100644
--- a/unit-tests/HTTPCacheTest.cc
+++ b/unit-tests/HTTPCacheTest.cc
@@ -102,8 +102,7 @@ private:
 protected:
 
 public:
-    HTTPCacheTest() :
-            http_conn(0)
+    HTTPCacheTest() : hc(0), http_conn(0)
     {
         putenv((char*) "DODS_CONF=./cache-testsuite/dodsrc");
         http_conn = new HTTPConnect(RCReader::instance());
@@ -185,11 +184,14 @@ public:
 
     CPPUNIT_TEST(perform_garbage_collection_test);
     CPPUNIT_TEST(purge_cache_and_release_cached_response_test);
-    CPPUNIT_TEST(instance_test);
     CPPUNIT_TEST(get_conditional_response_headers_test);
     CPPUNIT_TEST(update_response_test);
     CPPUNIT_TEST(cache_gc_test);
 
+    // Make this the last test because when distcheck is run, running
+    // it before other tests will break them.
+    CPPUNIT_TEST(instance_test);
+
     CPPUNIT_TEST_SUITE_END()  ;
 
     void constructor_test()
@@ -244,9 +246,6 @@ public:
         HTTPCacheTable::CacheEntry *e2 = hc->d_http_cache_table->get_locked_entry_from_cache_table(localhost_url);
         CPPUNIT_ASSERT(e2);
         CPPUNIT_ASSERT(e2->url == localhost_url);
-#if 0
-        e2->unlock();
-#endif
         e2->unlock_read_response();
 
         // Now test what happens when two entries collide.
@@ -263,9 +262,6 @@ public:
         HTTPCacheTable::CacheEntry *g = hc->d_http_cache_table->get_locked_entry_from_cache_table(hash_value, e3->url);
         CPPUNIT_ASSERT(g);
         CPPUNIT_ASSERT(g->url == e3->url);
-#if 0
-        g->unlock();
-#endif
         g->unlock_read_response();
 
         g = hc->d_http_cache_table->get_locked_entry_from_cache_table("http://not.in.table/never.x");
@@ -548,6 +544,7 @@ public:
             delete hc;
             hc = 0;
             auto_ptr<HTTPCache> gc(new HTTPCache("cache-testsuite/gc_cache", true));
+            DBG(cerr << "get_cache_root: " << gc->get_cache_root() << endl);
 
             HTTPResponse *rs = http_conn->fetch_url(localhost_url);
             gc->cache_response(localhost_url, time(0), *(rs->get_headers()), rs->get_stream());
@@ -579,6 +576,7 @@ public:
     {
         try {
             auto_ptr<HTTPCache> pc(new HTTPCache("cache-testsuite/purge_cache", true));
+            DBG(cerr << "get_cache_root: " << pc->get_cache_root() << endl);
 
             time_t now = time(0);
             HTTPResponse *rs = http_conn->fetch_url(localhost_url);
@@ -601,13 +599,7 @@ public:
             HTTPCacheTable::CacheEntry *e2 = pc->d_http_cache_table->get_locked_entry_from_cache_table(localhost_url);
             string e1_file = e1->cachename;
             string e2_file = e2->cachename;
-#if 0
-            e1->unlock();
-#endif
             e1->unlock_read_response();
-#if 0
-            e2->unlock();
-#endif
             e2->unlock_read_response();
 
             vector<string> headers;
@@ -640,7 +632,11 @@ public:
     void instance_test()
     {
         try {
+            // FIXME: Explain
+            HTTPCache::delete_instance();
+
             HTTPCache *c = HTTPCache::instance("cache-testsuite/singleton_cache", true);
+            DBG(cerr << "get_cache_root: " << c->get_cache_root() << endl);
 
             if (!c->is_url_in_cache(localhost_url)) {
                 HTTPResponse *rs = http_conn->fetch_url(localhost_url);
@@ -662,13 +658,7 @@ public:
             HTTPCacheTable::CacheEntry *e2 = c->d_http_cache_table->get_locked_entry_from_cache_table(localhost_url);
             string e1_file = e1->cachename;
             string e2_file = e2->cachename;
-#if 0
-            e1->unlock();
-#endif
             e1->unlock_read_response();
-#if 0
-            e2->unlock();
-#endif
             e2->unlock_read_response();
 
             c->purge_cache();
@@ -696,13 +686,14 @@ public:
     void get_conditional_response_headers_test()
     {
         try {
-            HTTPCache *c = HTTPCache::instance("cache-testsuite/header_cache", true);
+            auto_ptr<HTTPCache> c(new HTTPCache("cache-testsuite/header_cache", true));
+            DBG(cerr << "get_cache_root: " << c->get_cache_root() << endl);
+
             CPPUNIT_ASSERT(c->get_cache_root() == "cache-testsuite/header_cache/");
             if (!c->is_url_in_cache(localhost_url)) {
                 HTTPResponse *rs = http_conn->fetch_url(localhost_url);
                 c->cache_response(localhost_url, time(0), *(rs->get_headers()), rs->get_stream());
                 delete rs;
-                rs = 0;
             }
             CPPUNIT_ASSERT(c->is_url_in_cache(localhost_url));
 
@@ -710,7 +701,6 @@ public:
                 HTTPResponse *rs = http_conn->fetch_url(expired);
                 c->cache_response(expired, time(0), *(rs->get_headers()), rs->get_stream());
                 delete rs;
-                rs = 0;
             }
             CPPUNIT_ASSERT(c->is_url_in_cache(expired));
 
@@ -726,18 +716,15 @@ public:
             CPPUNIT_ASSERT(h[0].find("If-Modified-Since: ") == 0);
         }
         catch (Error &e) {
-            cerr << "Exception: " << e.get_error_message() << endl;
-            CPPUNIT_ASSERT(false);
+            CPPUNIT_FAIL(e.get_error_message());
         }
-
-        HTTPCache::delete_instance();
     }
 
     void update_response_test()
     {
-        HTTPCache *c = 0;
         try {
-            c = new HTTPCache("cache-testsuite/singleton_cache", true);
+            auto_ptr<HTTPCache> c(new HTTPCache("cache-testsuite/singleton_cache", true));
+            DBG(cerr << "get_cache_root: " << c->get_cache_root() << endl);
 
             if (!c->is_url_in_cache(localhost_url)) {
                 HTTPResponse *rs = http_conn->fetch_url(localhost_url);
@@ -783,18 +770,15 @@ public:
 
             // The XHTTPCacheTest header should be new, Date should replace the
             // existing Date header.
-            CPPUNIT_ASSERT(orig_h.size() + 1 == updated_h.size());
+            // This may not be true when using distcheck and/or when the user
+            // has set USE_CACHE to 1 in their .dodsrc. jhrg 9/29/15
+            // CPPUNIT_ASSERT(orig_h.size() + 1 == updated_h.size());
             CPPUNIT_ASSERT(find(updated_h.begin(), updated_h.end(), "XHTTPCache: 123456789") != updated_h.end());
             CPPUNIT_ASSERT(find(updated_h.begin(), updated_h.end(), "Date: <invalid date>") != updated_h.end());
-
-            delete c;
         }
         catch (Error &e) {
-            delete c;
             CPPUNIT_FAIL(e.get_error_message());
         }
-
-        HTTPCache::delete_instance();
     }
 
     // Only run this interactively since you need to hit Ctrl-c to generate
@@ -802,7 +786,7 @@ public:
     void interrupt_test()
     {
         try {
-            HTTPCache *c = new HTTPCache("cache-testsuite/singleton_cache", true);
+            auto_ptr<HTTPCache> c(new HTTPCache("cache-testsuite/singleton_cache", true));
             string coads = "http://test.opendap.org/dap/data/nc/coads_climatology.nc";
             if (!c->is_url_in_cache(coads)) {
                 HTTPResponse *rs = http_conn->fetch_url(coads);
@@ -810,26 +794,18 @@ public:
                 c->cache_response(coads, time(0), *(rs->get_headers()), rs->get_stream());
                 cerr << "to late.";
                 delete rs;
-                rs = 0;
             }
         }
         catch (Error &e) {
-            cerr << "Exception: " << e.get_error_message() << endl;
-            CPPUNIT_ASSERT(false);
+            CPPUNIT_FAIL(e.get_error_message());
         }
-
-        // Call this here to simulate exiting the program. This ensures that
-        // the next test's call to instance() gets a fresh cache. The static
-        // method will still be run at exit, but that's OK since it tests the
-        // value of _instance and simply returns with it's zero.
-        HTTPCache::delete_instance();
     }
 
     void cache_gc_test()
     {
         string fnoc1 = "http://test.opendap.org/dap/data/nc/fnoc1.nc.dds";
-        string fnoc2 = "http://test.opendap.org/dap/data/nc/fnoc2.nc.dds";
-        string fnoc3 = "http://test.opendap.org/dap/data/nc/fnoc3.nc.dds";
+        string jan = "http://test.opendap.org/dap/data/nc/jan.nc.dds";
+        string feb = "http://test.opendap.org/dap/data/nc/feb.nc.dds";
         try {
             auto_ptr<HTTPCache> pc(new HTTPCache("cache-testsuite/purge_cache", true));
 
@@ -854,38 +830,36 @@ public:
             FILE *f = pc->get_cached_response(fnoc1, h);
             pc->release_cached_response(f);
 
-            rs = http_conn->fetch_url(fnoc2);
-            pc->cache_response(fnoc2, time(0), *(rs->get_headers()), rs->get_stream());
-            CPPUNIT_ASSERT(pc->is_url_in_cache(fnoc2));
+            rs = http_conn->fetch_url(jan);
+            pc->cache_response(jan, time(0), *(rs->get_headers()), rs->get_stream());
+            CPPUNIT_ASSERT(pc->is_url_in_cache(jan));
             delete rs;
             rs = 0;
-            // trigger two hits for fnoc2
-            f = pc->get_cached_response(fnoc2, h);
+            // trigger two hits for jan
+            f = pc->get_cached_response(jan, h);
             pc->release_cached_response(f);
-            f = pc->get_cached_response(fnoc2, h);
+            f = pc->get_cached_response(jan, h);
             pc->release_cached_response(f);
 
-            rs = http_conn->fetch_url(fnoc3);
-            pc->cache_response(fnoc3, time(0), *(rs->get_headers()), rs->get_stream());
-            CPPUNIT_ASSERT(pc->is_url_in_cache(fnoc3));
+            rs = http_conn->fetch_url(feb);
+            pc->cache_response(feb, time(0), *(rs->get_headers()), rs->get_stream());
+            CPPUNIT_ASSERT(pc->is_url_in_cache(feb));
             delete rs;
             rs = 0;
         }
         catch (Error &e) {
-            cerr << "Exception: " << e.get_error_message() << endl;
-            CPPUNIT_ASSERT(false);
+            CPPUNIT_FAIL(e.get_error_message());
         }
 
         // now that pc is out of scope, its dtor has been run and GC
-        // performed. The fnoc3 URL should have been deleted.
+        // performed. The feb URL should have been deleted.
 
         try {
             auto_ptr<HTTPCache> pc(new HTTPCache("cache-testsuite/purge_cache", true));
-            CPPUNIT_ASSERT(!pc->is_url_in_cache(fnoc3));
+            CPPUNIT_ASSERT(!pc->is_url_in_cache(feb));
         }
         catch (Error &e) {
-            cerr << "Exception: " << e.get_error_message() << endl;
-            CPPUNIT_ASSERT(false);
+            CPPUNIT_FAIL(e.get_error_message());
         }
     }
 
diff --git a/unit-tests/Keywords2Test.cc b/unit-tests/Keywords2Test.cc
new file mode 100644
index 0000000..eb34de9
--- /dev/null
+++ b/unit-tests/Keywords2Test.cc
@@ -0,0 +1,217 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2006 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+// Tests for the AISResources class.
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+//#define DODS_DEBUG
+
+#include "BaseType.h"
+#include "Int32.h"
+#include "Float64.h"
+#include "Str.h"
+#include "Array.h"
+#include "Grid.h"
+#include "DDS.h"
+#include "DAS.h"
+//#include "ce_functions.h"
+#include "Keywords2.h"
+
+#include <test_config.h>
+
+#include "../tests/TestTypeFactory.h"
+
+#include "debug.h"
+
+using namespace CppUnit;
+using namespace libdap;
+using namespace std;
+
+int test_variable_sleep_interval = 0;
+
+class KeywordsTest:public TestFixture
+{
+private:
+    Keywords *k;
+public:
+    KeywordsTest()
+    {}
+
+    ~KeywordsTest()
+    {}
+
+    void setUp()
+    {
+	k = new Keywords();
+    }
+
+    void tearDown()
+    {
+        delete k; k = 0;
+    }
+
+    CPPUNIT_TEST_SUITE( KeywordsTest );
+
+    CPPUNIT_TEST(no_keywords_test_1);
+    CPPUNIT_TEST(no_keywords_test_2);
+
+    CPPUNIT_TEST(one_keyword_test_1);
+    CPPUNIT_TEST(one_keyword_test_2);
+
+    CPPUNIT_TEST(two_keyword_test_1);
+    CPPUNIT_TEST(two_keyword_test_2);
+
+    CPPUNIT_TEST(bad_keyword_test_1);
+    CPPUNIT_TEST(bad_keyword_test_2);
+    CPPUNIT_TEST(bad_keyword_test_3);
+    CPPUNIT_TEST(bad_keyword_test_4);
+
+    CPPUNIT_TEST_SUITE_END();
+
+    void no_keywords_test_1()
+    {
+	string ce = k->parse_keywords("");
+	CPPUNIT_ASSERT(!k->has_keyword("dap"));
+	CPPUNIT_ASSERT(ce == "");
+	CPPUNIT_ASSERT(k->get_keywords().size() == 0);
+    }
+
+    void no_keywords_test_2()
+    {
+	string ce = k->parse_keywords("u,v");
+	CPPUNIT_ASSERT(!k->has_keyword("dap"));
+	CPPUNIT_ASSERT(ce == "u,v");
+	CPPUNIT_ASSERT(k->get_keywords().size() == 0);
+    }
+
+    void one_keyword_test_1()
+    {
+	CPPUNIT_ASSERT(k->is_known_keyword("dap"));
+
+	string ce = k->parse_keywords("dap(2)");
+	CPPUNIT_ASSERT(ce == "");
+	CPPUNIT_ASSERT(k->has_keyword("dap"));
+	CPPUNIT_ASSERT(k->get_keyword_value("dap") == "2");
+	CPPUNIT_ASSERT(k->get_keywords().size() == 1);
+    }
+
+    void one_keyword_test_2()
+    {
+	string ce = k->parse_keywords("dap(2),u,v&v<7");
+	CPPUNIT_ASSERT(ce == "u,v&v<7");
+	CPPUNIT_ASSERT(k->has_keyword("dap"));
+	CPPUNIT_ASSERT(k->get_keyword_value("dap") == "2");
+	CPPUNIT_ASSERT(k->get_keywords().size() == 1);
+    }
+
+    void two_keyword_test_1()
+    {
+	string ce = k->parse_keywords("dap(2),dap(3.2)");
+	CPPUNIT_ASSERT(ce == "");
+	CPPUNIT_ASSERT(k->has_keyword("dap"));
+	CPPUNIT_ASSERT(k->get_keyword_value("dap") == "3.2");
+	CPPUNIT_ASSERT(k->get_keywords().size() == 1);
+
+	CPPUNIT_ASSERT(k->is_known_keyword("dap"));
+    }
+
+    void two_keyword_test_2()
+    {
+	string ce = k->parse_keywords("dap(2),dap(3.2),u,v&v<7");
+	CPPUNIT_ASSERT(ce == "u,v&v<7");
+	CPPUNIT_ASSERT(k->has_keyword("dap"));
+	CPPUNIT_ASSERT(k->get_keyword_value("dap") == "3.2");
+	CPPUNIT_ASSERT(k->get_keywords().size() == 1);
+    }
+
+    void bad_keyword_test_1()
+    {
+	try {
+	    string ce = k->parse_keywords("dap7");
+	    // Even though this is pretty obviously wrong, we soldier on because
+	    // The keyword processing code has no way of knowing what will be
+	    // valid variable names.
+	    CPPUNIT_ASSERT(ce == "dap7");
+	}
+	catch (Error &e) {
+	    CPPUNIT_FAIL("Should not get here");
+	}
+    }
+    void bad_keyword_test_2()
+    {
+	try {
+	    string ce = k->parse_keywords("dap(7");
+	    // Even though this is pretty obviously wrong, we soldier on because
+	    // The keyword processing code has no way of knowing what will be
+	    // valid variable names.
+	    CPPUNIT_ASSERT(ce == "dap(7");
+	}
+	catch (Error &e) {
+	    CPPUNIT_FAIL("Should not get here");
+	}
+    }
+    void bad_keyword_test_3()
+    {
+	try {
+	    string ce = k->parse_keywords("dap7)");
+	    // Even though this is pretty obviously wrong, we soldier on because
+	    // The keyword processing code has no way of knowing what will be
+	    // valid variable names.
+	    CPPUNIT_ASSERT(ce == "dap7)");
+	}
+	catch (Error &e) {
+	    CPPUNIT_FAIL("Should not get here");
+	}
+    }
+    void bad_keyword_test_4()
+    {
+	try {
+	    string ce = k->parse_keywords("dap(7)");
+	    // Even though this is pretty obviously wrong, we soldier on because
+	    // The keyword processing code has no way of knowing what will be
+	    // valid variable names.
+	    CPPUNIT_FAIL("Should throw - bad value to keyword/function");
+	}
+	catch (Error &e) {
+	    CPPUNIT_ASSERT("Should throw - bad value to keyword/function");
+	}
+    }
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(KeywordsTest);
+
+int
+main( int, char** )
+{
+    CppUnit::TextTestRunner runner;
+    runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
+
+    bool wasSuccessful = runner.run( "", false ) ;
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/Makefile.am b/unit-tests/Makefile.am
index 9278bd5..a2e96ae 100644
--- a/unit-tests/Makefile.am
+++ b/unit-tests/Makefile.am
@@ -8,7 +8,7 @@ AUTOMAKE_OPTIONS = foreign
 # Headers in 'tests' are used by the arrayT unit tests.
 
 AM_CPPFLAGS = -I$(top_srcdir)/GNU -I$(top_srcdir) -I$(top_srcdir)/tests $(CURL_CFLAGS) $(XML2_CFLAGS)
-AM_LDADD =
+AM_LDADD = $(XML2_LIBS)
 AM_CXXFLAGS = 
 # CXXFLAGS =
 
@@ -45,12 +45,12 @@ noinst_HEADERS = test_config.h
 
 DIRS_EXTRA = das-testsuite dds-testsuite ddx-testsuite		\
 	rcreader-testsuite server-testsuite cgi-util-tests D4-xml \
-	chunked-io D4-marshaller
+	chunked-io D4-marshaller D4-type-testsuite
 
 EXTRA_DIST = $(DIRS_EXTRA) testFile.cc testFile.h test_config.h.in \
 	valgrind_suppressions.txt
 
-CLEANFILES = testout .dodsrc  *.gcda *.gcno D4-xml.tar.gz
+CLEANFILES = testout .dodsrc  *.gcda *.gcno *.gcov *.trs *.log *.file D4-xml.tar.gz
 
 DISTCLEANFILES = test_config.h *.strm *.file tmp.txt
 
@@ -69,12 +69,13 @@ UNIT_TESTS = marshT arrayT attrTableT structT sequenceT ddsT dasT \
 	RegexTest ArrayTest AttrTableTest ByteTest MIMEUtilTest ancT DASTest \
 	DDSTest	DDXParserTest  generalUtilTest HTTPConnectTest parserUtilTest \
 	RCReaderTest SequenceTest SignalHandlerTest  MarshallerTest \
-	HTTPCacheTest ServerFunctionsListUnitTest 
+	HTTPCacheTest ServerFunctionsListUnitTest
 
 if DAP4_DEFINED
 UNIT_TESTS += D4MarshallerTest D4UnMarshallerTest D4DimensionsTest \
 	D4EnumDefsTest D4GroupTest D4ParserSax2Test D4AttributesTest D4EnumTest \
-	chunked_iostream_test D4AsyncDocTest DMRTest
+	chunked_iostream_test D4AsyncDocTest DMRTest D4FilterClauseTest \
+	D4SequenceTest
 endif
 
 else
@@ -218,4 +219,10 @@ D4AsyncDocTest_LDADD = ../libdap.la $(AM_LDADD)
 DMRTest_SOURCES = DMRTest.cc $(TEST_SRC)
 DMRTest_LDADD = ../libdap.la $(AM_LDADD)
 
+D4FilterClauseTest_SOURCES = D4FilterClauseTest.cc
+D4FilterClauseTest_LDADD = ../libdap.la $(AM_LDADD)
+
+D4SequenceTest_SOURCES = D4SequenceTest.cc $(TEST_SRC)
+D4SequenceTest_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
+
 endif
diff --git a/unit-tests/Makefile.in b/unit-tests/Makefile.in
deleted file mode 100644
index bde7415..0000000
--- a/unit-tests/Makefile.in
+++ /dev/null
@@ -1,2409 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-# CXXFLAGS =
- at COMPILER_IS_GCC_TRUE@am__append_1 = -Wall -W -Wcast-align
- at CPPUNIT_TRUE@am__append_2 = $(CPPUNIT_CFLAGS)
- at CPPUNIT_TRUE@am__append_3 = $(CPPUNIT_LIBS)
-
-# skip using --log-file="valgrind-%p.log" because it always generates files
-# Might also drop --dsymutil=yes because it can take a long time to run.
- at BUILD_DEVELOPER_TRUE@am__append_4 = $(CXXFLAGS_DEBUG)
-check_PROGRAMS = $(am__EXEEXT_2)
-TESTS = $(am__EXEEXT_2)
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE at am__append_5 = D4MarshallerTest D4UnMarshallerTest D4DimensionsTest \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4EnumDefsTest D4GroupTest D4ParserSax2Test D4AttributesTest D4EnumTest \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	chunked_iostream_test D4AsyncDocTest DMRTest
-
-subdir = unit-tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/conf/depcomp $(noinst_HEADERS) \
-	$(top_srcdir)/conf/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h \
-	$(top_builddir)/dods-datatypes-config.h \
-	$(top_builddir)/xdr-datatypes-config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE at am__EXEEXT_1 =  \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4MarshallerTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4UnMarshallerTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4DimensionsTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4EnumDefsTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4GroupTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4ParserSax2Test$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4AttributesTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4EnumTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	chunked_iostream_test$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	D4AsyncDocTest$(EXEEXT) \
- at CPPUNIT_TRUE@@DAP4_DEFINED_TRUE@	DMRTest$(EXEEXT)
- at CPPUNIT_TRUE@am__EXEEXT_2 = marshT$(EXEEXT) arrayT$(EXEEXT) \
- at CPPUNIT_TRUE@	attrTableT$(EXEEXT) structT$(EXEEXT) \
- at CPPUNIT_TRUE@	sequenceT$(EXEEXT) ddsT$(EXEEXT) dasT$(EXEEXT) \
- at CPPUNIT_TRUE@	RegexTest$(EXEEXT) ArrayTest$(EXEEXT) \
- at CPPUNIT_TRUE@	AttrTableTest$(EXEEXT) ByteTest$(EXEEXT) \
- at CPPUNIT_TRUE@	MIMEUtilTest$(EXEEXT) ancT$(EXEEXT) \
- at CPPUNIT_TRUE@	DASTest$(EXEEXT) DDSTest$(EXEEXT) \
- at CPPUNIT_TRUE@	DDXParserTest$(EXEEXT) generalUtilTest$(EXEEXT) \
- at CPPUNIT_TRUE@	HTTPConnectTest$(EXEEXT) parserUtilTest$(EXEEXT) \
- at CPPUNIT_TRUE@	RCReaderTest$(EXEEXT) SequenceTest$(EXEEXT) \
- at CPPUNIT_TRUE@	SignalHandlerTest$(EXEEXT) \
- at CPPUNIT_TRUE@	MarshallerTest$(EXEEXT) HTTPCacheTest$(EXEEXT) \
- at CPPUNIT_TRUE@	ServerFunctionsListUnitTest$(EXEEXT) \
- at CPPUNIT_TRUE@	$(am__EXEEXT_1)
-am_ArrayTest_OBJECTS = ArrayTest.$(OBJEXT)
-ArrayTest_OBJECTS = $(am_ArrayTest_OBJECTS)
-am__DEPENDENCIES_1 =
- at CPPUNIT_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
-am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2)
-ArrayTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-am__objects_1 = testFile.$(OBJEXT)
-am_AttrTableTest_OBJECTS = AttrTableTest.$(OBJEXT) $(am__objects_1)
-AttrTableTest_OBJECTS = $(am_AttrTableTest_OBJECTS)
-AttrTableTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_ByteTest_OBJECTS = ByteTest.$(OBJEXT) $(am__objects_1)
-ByteTest_OBJECTS = $(am_ByteTest_OBJECTS)
-ByteTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am__D4AsyncDocTest_SOURCES_DIST = D4AsyncDocTest.cc testFile.cc \
-	testFile.h
- at DAP4_DEFINED_TRUE@am_D4AsyncDocTest_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4AsyncDocTest.$(OBJEXT) $(am__objects_1)
-D4AsyncDocTest_OBJECTS = $(am_D4AsyncDocTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4AsyncDocTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4AttributesTest_SOURCES_DIST = D4AttributesTest.cc testFile.cc \
-	testFile.h
- at DAP4_DEFINED_TRUE@am_D4AttributesTest_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4AttributesTest.$(OBJEXT) $(am__objects_1)
-D4AttributesTest_OBJECTS = $(am_D4AttributesTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4AttributesTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4DimensionsTest_SOURCES_DIST = D4DimensionsTest.cc testFile.cc \
-	testFile.h
- at DAP4_DEFINED_TRUE@am_D4DimensionsTest_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4DimensionsTest.$(OBJEXT) $(am__objects_1)
-D4DimensionsTest_OBJECTS = $(am_D4DimensionsTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4DimensionsTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4EnumDefsTest_SOURCES_DIST = D4EnumDefsTest.cc testFile.cc \
-	testFile.h
- at DAP4_DEFINED_TRUE@am_D4EnumDefsTest_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4EnumDefsTest.$(OBJEXT) $(am__objects_1)
-D4EnumDefsTest_OBJECTS = $(am_D4EnumDefsTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4EnumDefsTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4EnumTest_SOURCES_DIST = D4EnumTest.cc testFile.cc testFile.h
- at DAP4_DEFINED_TRUE@am_D4EnumTest_OBJECTS = D4EnumTest.$(OBJEXT) \
- at DAP4_DEFINED_TRUE@	$(am__objects_1)
-D4EnumTest_OBJECTS = $(am_D4EnumTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4EnumTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4GroupTest_SOURCES_DIST = D4GroupTest.cc testFile.cc testFile.h
- at DAP4_DEFINED_TRUE@am_D4GroupTest_OBJECTS = D4GroupTest.$(OBJEXT) \
- at DAP4_DEFINED_TRUE@	$(am__objects_1)
-D4GroupTest_OBJECTS = $(am_D4GroupTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4GroupTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4MarshallerTest_SOURCES_DIST = D4MarshallerTest.cc
- at DAP4_DEFINED_TRUE@am_D4MarshallerTest_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4MarshallerTest.$(OBJEXT)
-D4MarshallerTest_OBJECTS = $(am_D4MarshallerTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4MarshallerTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4ParserSax2Test_SOURCES_DIST = D4ParserSax2Test.cc testFile.cc \
-	testFile.h
- at DAP4_DEFINED_TRUE@am_D4ParserSax2Test_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4ParserSax2Test.$(OBJEXT) $(am__objects_1)
-D4ParserSax2Test_OBJECTS = $(am_D4ParserSax2Test_OBJECTS)
- at DAP4_DEFINED_TRUE@D4ParserSax2Test_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am__D4UnMarshallerTest_SOURCES_DIST = D4UnMarshallerTest.cc
- at DAP4_DEFINED_TRUE@am_D4UnMarshallerTest_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	D4UnMarshallerTest.$(OBJEXT)
-D4UnMarshallerTest_OBJECTS = $(am_D4UnMarshallerTest_OBJECTS)
- at DAP4_DEFINED_TRUE@D4UnMarshallerTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am_DASTest_OBJECTS = DASTest.$(OBJEXT)
-DASTest_OBJECTS = $(am_DASTest_OBJECTS)
-DASTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_DDSTest_OBJECTS = DDSTest.$(OBJEXT) $(am__objects_1)
-DDSTest_OBJECTS = $(am_DDSTest_OBJECTS)
-DDSTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_DDXParserTest_OBJECTS = DDXParserTest-DDXParserTest.$(OBJEXT)
-DDXParserTest_OBJECTS = $(am_DDXParserTest_OBJECTS)
-DDXParserTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am__DMRTest_SOURCES_DIST = DMRTest.cc testFile.cc testFile.h
- at DAP4_DEFINED_TRUE@am_DMRTest_OBJECTS = DMRTest.$(OBJEXT) \
- at DAP4_DEFINED_TRUE@	$(am__objects_1)
-DMRTest_OBJECTS = $(am_DMRTest_OBJECTS)
- at DAP4_DEFINED_TRUE@DMRTest_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am_HTTPCacheTest_OBJECTS = HTTPCacheTest-HTTPCacheTest.$(OBJEXT)
-HTTPCacheTest_OBJECTS = $(am_HTTPCacheTest_OBJECTS)
-HTTPCacheTest_DEPENDENCIES = ../libdapclient.la ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_HTTPConnectTest_OBJECTS =  \
-	HTTPConnectTest-HTTPConnectTest.$(OBJEXT)
-HTTPConnectTest_OBJECTS = $(am_HTTPConnectTest_OBJECTS)
-HTTPConnectTest_DEPENDENCIES = ../libdapclient.la ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_MIMEUtilTest_OBJECTS = MIMEUtilTest.$(OBJEXT)
-MIMEUtilTest_OBJECTS = $(am_MIMEUtilTest_OBJECTS)
-MIMEUtilTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_MarshallerTest_OBJECTS = MarshallerTest.$(OBJEXT)
-MarshallerTest_OBJECTS = $(am_MarshallerTest_OBJECTS)
-MarshallerTest_DEPENDENCIES = ../tests/libtest-types.a \
-	../libdapclient.la ../libdap.la $(am__DEPENDENCIES_3)
-am_RCReaderTest_OBJECTS = RCReaderTest.$(OBJEXT)
-RCReaderTest_OBJECTS = $(am_RCReaderTest_OBJECTS)
-RCReaderTest_DEPENDENCIES = ../libdapclient.la ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_RegexTest_OBJECTS = RegexTest.$(OBJEXT)
-RegexTest_OBJECTS = $(am_RegexTest_OBJECTS)
-RegexTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_SequenceTest_OBJECTS = SequenceTest.$(OBJEXT)
-SequenceTest_OBJECTS = $(am_SequenceTest_OBJECTS)
-SequenceTest_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_ServerFunctionsListUnitTest_OBJECTS =  \
-	ServerFunctionsListUnitTest.$(OBJEXT)
-ServerFunctionsListUnitTest_OBJECTS =  \
-	$(am_ServerFunctionsListUnitTest_OBJECTS)
-ServerFunctionsListUnitTest_DEPENDENCIES = ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_SignalHandlerTest_OBJECTS = SignalHandlerTest.$(OBJEXT)
-SignalHandlerTest_OBJECTS = $(am_SignalHandlerTest_OBJECTS)
-SignalHandlerTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_ancT_OBJECTS = ancT.$(OBJEXT)
-ancT_OBJECTS = $(am_ancT_OBJECTS)
-ancT_DEPENDENCIES = ../libdapserver.la ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_arrayT_OBJECTS = arrayT.$(OBJEXT)
-arrayT_OBJECTS = $(am_arrayT_OBJECTS)
-arrayT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_attrTableT_OBJECTS = attrTableT.$(OBJEXT)
-attrTableT_OBJECTS = $(am_attrTableT_OBJECTS)
-attrTableT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am__chunked_iostream_test_SOURCES_DIST = chunked_iostream_test.cc \
-	testFile.cc testFile.h
- at DAP4_DEFINED_TRUE@am_chunked_iostream_test_OBJECTS =  \
- at DAP4_DEFINED_TRUE@	chunked_iostream_test.$(OBJEXT) \
- at DAP4_DEFINED_TRUE@	$(am__objects_1)
-chunked_iostream_test_OBJECTS = $(am_chunked_iostream_test_OBJECTS)
- at DAP4_DEFINED_TRUE@chunked_iostream_test_DEPENDENCIES = ../libdap.la \
- at DAP4_DEFINED_TRUE@	$(am__DEPENDENCIES_3)
-am_dasT_OBJECTS = dasT.$(OBJEXT) $(am__objects_1)
-dasT_OBJECTS = $(am_dasT_OBJECTS)
-dasT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_ddsT_OBJECTS = ddsT.$(OBJEXT) $(am__objects_1)
-ddsT_OBJECTS = $(am_ddsT_OBJECTS)
-ddsT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_generalUtilTest_OBJECTS = generalUtilTest.$(OBJEXT)
-generalUtilTest_OBJECTS = $(am_generalUtilTest_OBJECTS)
-generalUtilTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_marshT_OBJECTS = marshT.$(OBJEXT)
-marshT_OBJECTS = $(am_marshT_OBJECTS)
-marshT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_parserUtilTest_OBJECTS = parserUtilTest.$(OBJEXT)
-parserUtilTest_OBJECTS = $(am_parserUtilTest_OBJECTS)
-parserUtilTest_DEPENDENCIES = ../libdap.la $(am__DEPENDENCIES_3)
-am_sequenceT_OBJECTS = sequenceT.$(OBJEXT)
-sequenceT_OBJECTS = $(am_sequenceT_OBJECTS)
-sequenceT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-am_structT_OBJECTS = structT.$(OBJEXT)
-structT_OBJECTS = $(am_structT_OBJECTS)
-structT_DEPENDENCIES = ../tests/libtest-types.a ../libdap.la \
-	$(am__DEPENDENCIES_3)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/conf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(ArrayTest_SOURCES) $(AttrTableTest_SOURCES) \
-	$(ByteTest_SOURCES) $(D4AsyncDocTest_SOURCES) \
-	$(D4AttributesTest_SOURCES) $(D4DimensionsTest_SOURCES) \
-	$(D4EnumDefsTest_SOURCES) $(D4EnumTest_SOURCES) \
-	$(D4GroupTest_SOURCES) $(D4MarshallerTest_SOURCES) \
-	$(D4ParserSax2Test_SOURCES) $(D4UnMarshallerTest_SOURCES) \
-	$(DASTest_SOURCES) $(DDSTest_SOURCES) $(DDXParserTest_SOURCES) \
-	$(DMRTest_SOURCES) $(HTTPCacheTest_SOURCES) \
-	$(HTTPConnectTest_SOURCES) $(MIMEUtilTest_SOURCES) \
-	$(MarshallerTest_SOURCES) $(RCReaderTest_SOURCES) \
-	$(RegexTest_SOURCES) $(SequenceTest_SOURCES) \
-	$(ServerFunctionsListUnitTest_SOURCES) \
-	$(SignalHandlerTest_SOURCES) $(ancT_SOURCES) $(arrayT_SOURCES) \
-	$(attrTableT_SOURCES) $(chunked_iostream_test_SOURCES) \
-	$(dasT_SOURCES) $(ddsT_SOURCES) $(generalUtilTest_SOURCES) \
-	$(marshT_SOURCES) $(parserUtilTest_SOURCES) \
-	$(sequenceT_SOURCES) $(structT_SOURCES)
-DIST_SOURCES = $(ArrayTest_SOURCES) $(AttrTableTest_SOURCES) \
-	$(ByteTest_SOURCES) $(am__D4AsyncDocTest_SOURCES_DIST) \
-	$(am__D4AttributesTest_SOURCES_DIST) \
-	$(am__D4DimensionsTest_SOURCES_DIST) \
-	$(am__D4EnumDefsTest_SOURCES_DIST) \
-	$(am__D4EnumTest_SOURCES_DIST) $(am__D4GroupTest_SOURCES_DIST) \
-	$(am__D4MarshallerTest_SOURCES_DIST) \
-	$(am__D4ParserSax2Test_SOURCES_DIST) \
-	$(am__D4UnMarshallerTest_SOURCES_DIST) $(DASTest_SOURCES) \
-	$(DDSTest_SOURCES) $(DDXParserTest_SOURCES) \
-	$(am__DMRTest_SOURCES_DIST) $(HTTPCacheTest_SOURCES) \
-	$(HTTPConnectTest_SOURCES) $(MIMEUtilTest_SOURCES) \
-	$(MarshallerTest_SOURCES) $(RCReaderTest_SOURCES) \
-	$(RegexTest_SOURCES) $(SequenceTest_SOURCES) \
-	$(ServerFunctionsListUnitTest_SOURCES) \
-	$(SignalHandlerTest_SOURCES) $(ancT_SOURCES) $(arrayT_SOURCES) \
-	$(attrTableT_SOURCES) \
-	$(am__chunked_iostream_test_SOURCES_DIST) $(dasT_SOURCES) \
-	$(ddsT_SOURCES) $(generalUtilTest_SOURCES) $(marshT_SOURCES) \
-	$(parserUtilTest_SOURCES) $(sequenceT_SOURCES) \
-	$(structT_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-HEADERS = $(noinst_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	check recheck distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_DRIVER = $(SHELL) $(top_srcdir)/conf/test-driver
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/conf/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-SUBDIRS = cache-testsuite
-
-# Tests
-AUTOMAKE_OPTIONS = foreign
-
-# Headers in 'tests' are used by the arrayT unit tests.
-AM_CPPFLAGS = -I$(top_srcdir)/GNU -I$(top_srcdir) \
-	-I$(top_srcdir)/tests $(CURL_CFLAGS) $(XML2_CFLAGS) \
-	$(am__append_2)
-AM_LDADD = $(am__append_3)
-AM_CXXFLAGS = $(am__append_1) $(am__append_4)
-CXXFLAGS_DEBUG = -g3 -O0 -Wall -Wcast-align
- at USE_VALGRIND_TRUE@TESTS_ENVIRONMENT = valgrind --quiet --trace-children=yes --error-exitcode=1 \
- at USE_VALGRIND_TRUE@--leak-check=yes --dsymutil=yes --suppressions=valgrind_suppressions.txt
-
-noinst_HEADERS = test_config.h
-DIRS_EXTRA = das-testsuite dds-testsuite ddx-testsuite		\
-	rcreader-testsuite server-testsuite cgi-util-tests D4-xml \
-	chunked-io D4-marshaller
-
-EXTRA_DIST = $(DIRS_EXTRA) testFile.cc testFile.h test_config.h.in \
-	valgrind_suppressions.txt
-
-CLEANFILES = testout .dodsrc  *.gcda *.gcno D4-xml.tar.gz
-DISTCLEANFILES = test_config.h *.strm *.file tmp.txt
- at CPPUNIT_FALSE@UNIT_TESTS = 
-
-############################################################################
-# Unit Tests
-#
- at CPPUNIT_TRUE@UNIT_TESTS = marshT arrayT attrTableT structT sequenceT \
- at CPPUNIT_TRUE@	ddsT dasT RegexTest ArrayTest AttrTableTest \
- at CPPUNIT_TRUE@	ByteTest MIMEUtilTest ancT DASTest DDSTest \
- at CPPUNIT_TRUE@	DDXParserTest generalUtilTest HTTPConnectTest \
- at CPPUNIT_TRUE@	parserUtilTest RCReaderTest SequenceTest \
- at CPPUNIT_TRUE@	SignalHandlerTest MarshallerTest HTTPCacheTest \
- at CPPUNIT_TRUE@	ServerFunctionsListUnitTest $(am__append_5)
-TEST_SRC = testFile.cc testFile.h
-RegexTest_SOURCES = RegexTest.cc
-RegexTest_LDADD = ../libdap.la $(AM_LDADD)
-ArrayTest_SOURCES = ArrayTest.cc
-ArrayTest_LDADD = ../libdap.la $(AM_LDADD)
-AttrTableTest_SOURCES = AttrTableTest.cc $(TEST_SRC)
-AttrTableTest_LDADD = ../libdap.la $(AM_LDADD)
-ByteTest_SOURCES = ByteTest.cc $(TEST_SRC)
-ByteTest_LDADD = ../libdap.la $(AM_LDADD)
-MIMEUtilTest_SOURCES = MIMEUtilTest.cc
-MIMEUtilTest_LDADD = ../libdap.la $(AM_LDADD)
-ancT_SOURCES = ancT.cc
-ancT_LDADD = ../libdapserver.la ../libdap.la $(AM_LDADD)
-DASTest_SOURCES = DASTest.cc
-DASTest_LDADD = ../libdap.la $(AM_LDADD)
-DDSTest_SOURCES = DDSTest.cc $(TEST_SRC)
-DDSTest_LDADD = ../libdap.la $(AM_LDADD)
-DDXParserTest_SOURCES = DDXParserTest.cc
-DDXParserTest_CPPFLAGS = $(AM_CPPFLAGS) $(XML2_CFLAGS)
-DDXParserTest_LDADD = ../libdap.la $(AM_LDADD)
-
-# DODSFilterTest_SOURCES = DODSFilterTest.cc $(TEST_SRC)
-# DODSFilterTest_LDADD = ../libdapserver.la ../libdap.la \
-#	../tests/libtest-types.a $(AM_LDADD)
-
-# ResponseBuilderTest_SOURCES = ResponseBuilderTest.cc $(TEST_SRC)
-# ResponseBuilderTest_LDADD = ../libdapserver.la ../libdap.la \
-#	../tests/libtest-types.a $(AM_LDADD)
-
-# Keywords2Test_SOURCES = Keywords2Test.cc
-# Keywords2Test_LDADD = ../libdap.la $(AM_LDADD)
-generalUtilTest_SOURCES = generalUtilTest.cc
-generalUtilTest_LDADD = ../libdap.la $(AM_LDADD)
-HTTPCacheTest_SOURCES = HTTPCacheTest.cc
-HTTPCacheTest_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CFLAGS)
-HTTPCacheTest_LDADD = ../libdapclient.la ../libdap.la $(AM_LDADD)
-HTTPConnectTest_SOURCES = HTTPConnectTest.cc
-HTTPConnectTest_CPPFLAGS = $(AM_CPPFLAGS) $(CURL_CFLAGS)
-HTTPConnectTest_LDADD = ../libdapclient.la ../libdap.la $(AM_LDADD)
-parserUtilTest_SOURCES = parserUtilTest.cc
-parserUtilTest_LDADD = ../libdap.la $(AM_LDADD)
-RCReaderTest_SOURCES = RCReaderTest.cc
-RCReaderTest_LDADD = ../libdapclient.la ../libdap.la $(AM_LDADD)
-SequenceTest_SOURCES = SequenceTest.cc
-SequenceTest_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-SignalHandlerTest_SOURCES = SignalHandlerTest.cc
-SignalHandlerTest_LDADD = ../libdap.la $(AM_LDADD)
-arrayT_SOURCES = arrayT.cc
-arrayT_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-MarshallerTest_SOURCES = MarshallerTest.cc
-MarshallerTest_LDADD = ../tests/libtest-types.a ../libdapclient.la ../libdap.la $(AM_LDADD)
-marshT_SOURCES = marshT.cc
-marshT_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-attrTableT_SOURCES = attrTableT.cc
-attrTableT_LDADD = ../tests/libtest-types.a  ../libdap.la $(AM_LDADD)
-structT_SOURCES = structT.cc
-structT_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-sequenceT_SOURCES = sequenceT.cc
-sequenceT_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-ddsT_SOURCES = ddsT.cc $(TEST_SRC)
-ddsT_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-dasT_SOURCES = dasT.cc $(TEST_SRC)
-dasT_LDADD = ../tests/libtest-types.a ../libdap.la $(AM_LDADD)
-ServerFunctionsListUnitTest_SOURCES = ServerFunctionsListUnitTest.cc
-ServerFunctionsListUnitTest_LDADD = ../libdap.la $(AM_LDADD)
-
-# ResponseCacheTest_SOURCES = ResponseCacheTest.cc
-# ResponseCacheTest_LDADD = ../tests/libtest-types.a ../libdapserver.la ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4MarshallerTest_SOURCES = D4MarshallerTest.cc
- at DAP4_DEFINED_TRUE@D4MarshallerTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4UnMarshallerTest_SOURCES = D4UnMarshallerTest.cc
- at DAP4_DEFINED_TRUE@D4UnMarshallerTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4DimensionsTest_SOURCES = D4DimensionsTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4DimensionsTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4EnumDefsTest_SOURCES = D4EnumDefsTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4EnumDefsTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4GroupTest_SOURCES = D4GroupTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4GroupTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4ParserSax2Test_SOURCES = D4ParserSax2Test.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4ParserSax2Test_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4AttributesTest_SOURCES = D4AttributesTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4AttributesTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4EnumTest_SOURCES = D4EnumTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4EnumTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@chunked_iostream_test_SOURCES = chunked_iostream_test.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@chunked_iostream_test_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@D4AsyncDocTest_SOURCES = D4AsyncDocTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@D4AsyncDocTest_LDADD = ../libdap.la $(AM_LDADD)
- at DAP4_DEFINED_TRUE@DMRTest_SOURCES = DMRTest.cc $(TEST_SRC)
- at DAP4_DEFINED_TRUE@DMRTest_LDADD = ../libdap.la $(AM_LDADD)
-all: all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign unit-tests/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign unit-tests/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-checkPROGRAMS:
-	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-ArrayTest$(EXEEXT): $(ArrayTest_OBJECTS) $(ArrayTest_DEPENDENCIES) $(EXTRA_ArrayTest_DEPENDENCIES) 
-	@rm -f ArrayTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(ArrayTest_OBJECTS) $(ArrayTest_LDADD) $(LIBS)
-
-AttrTableTest$(EXEEXT): $(AttrTableTest_OBJECTS) $(AttrTableTest_DEPENDENCIES) $(EXTRA_AttrTableTest_DEPENDENCIES) 
-	@rm -f AttrTableTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(AttrTableTest_OBJECTS) $(AttrTableTest_LDADD) $(LIBS)
-
-ByteTest$(EXEEXT): $(ByteTest_OBJECTS) $(ByteTest_DEPENDENCIES) $(EXTRA_ByteTest_DEPENDENCIES) 
-	@rm -f ByteTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(ByteTest_OBJECTS) $(ByteTest_LDADD) $(LIBS)
-
-D4AsyncDocTest$(EXEEXT): $(D4AsyncDocTest_OBJECTS) $(D4AsyncDocTest_DEPENDENCIES) $(EXTRA_D4AsyncDocTest_DEPENDENCIES) 
-	@rm -f D4AsyncDocTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4AsyncDocTest_OBJECTS) $(D4AsyncDocTest_LDADD) $(LIBS)
-
-D4AttributesTest$(EXEEXT): $(D4AttributesTest_OBJECTS) $(D4AttributesTest_DEPENDENCIES) $(EXTRA_D4AttributesTest_DEPENDENCIES) 
-	@rm -f D4AttributesTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4AttributesTest_OBJECTS) $(D4AttributesTest_LDADD) $(LIBS)
-
-D4DimensionsTest$(EXEEXT): $(D4DimensionsTest_OBJECTS) $(D4DimensionsTest_DEPENDENCIES) $(EXTRA_D4DimensionsTest_DEPENDENCIES) 
-	@rm -f D4DimensionsTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4DimensionsTest_OBJECTS) $(D4DimensionsTest_LDADD) $(LIBS)
-
-D4EnumDefsTest$(EXEEXT): $(D4EnumDefsTest_OBJECTS) $(D4EnumDefsTest_DEPENDENCIES) $(EXTRA_D4EnumDefsTest_DEPENDENCIES) 
-	@rm -f D4EnumDefsTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4EnumDefsTest_OBJECTS) $(D4EnumDefsTest_LDADD) $(LIBS)
-
-D4EnumTest$(EXEEXT): $(D4EnumTest_OBJECTS) $(D4EnumTest_DEPENDENCIES) $(EXTRA_D4EnumTest_DEPENDENCIES) 
-	@rm -f D4EnumTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4EnumTest_OBJECTS) $(D4EnumTest_LDADD) $(LIBS)
-
-D4GroupTest$(EXEEXT): $(D4GroupTest_OBJECTS) $(D4GroupTest_DEPENDENCIES) $(EXTRA_D4GroupTest_DEPENDENCIES) 
-	@rm -f D4GroupTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4GroupTest_OBJECTS) $(D4GroupTest_LDADD) $(LIBS)
-
-D4MarshallerTest$(EXEEXT): $(D4MarshallerTest_OBJECTS) $(D4MarshallerTest_DEPENDENCIES) $(EXTRA_D4MarshallerTest_DEPENDENCIES) 
-	@rm -f D4MarshallerTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4MarshallerTest_OBJECTS) $(D4MarshallerTest_LDADD) $(LIBS)
-
-D4ParserSax2Test$(EXEEXT): $(D4ParserSax2Test_OBJECTS) $(D4ParserSax2Test_DEPENDENCIES) $(EXTRA_D4ParserSax2Test_DEPENDENCIES) 
-	@rm -f D4ParserSax2Test$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4ParserSax2Test_OBJECTS) $(D4ParserSax2Test_LDADD) $(LIBS)
-
-D4UnMarshallerTest$(EXEEXT): $(D4UnMarshallerTest_OBJECTS) $(D4UnMarshallerTest_DEPENDENCIES) $(EXTRA_D4UnMarshallerTest_DEPENDENCIES) 
-	@rm -f D4UnMarshallerTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(D4UnMarshallerTest_OBJECTS) $(D4UnMarshallerTest_LDADD) $(LIBS)
-
-DASTest$(EXEEXT): $(DASTest_OBJECTS) $(DASTest_DEPENDENCIES) $(EXTRA_DASTest_DEPENDENCIES) 
-	@rm -f DASTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(DASTest_OBJECTS) $(DASTest_LDADD) $(LIBS)
-
-DDSTest$(EXEEXT): $(DDSTest_OBJECTS) $(DDSTest_DEPENDENCIES) $(EXTRA_DDSTest_DEPENDENCIES) 
-	@rm -f DDSTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(DDSTest_OBJECTS) $(DDSTest_LDADD) $(LIBS)
-
-DDXParserTest$(EXEEXT): $(DDXParserTest_OBJECTS) $(DDXParserTest_DEPENDENCIES) $(EXTRA_DDXParserTest_DEPENDENCIES) 
-	@rm -f DDXParserTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(DDXParserTest_OBJECTS) $(DDXParserTest_LDADD) $(LIBS)
-
-DMRTest$(EXEEXT): $(DMRTest_OBJECTS) $(DMRTest_DEPENDENCIES) $(EXTRA_DMRTest_DEPENDENCIES) 
-	@rm -f DMRTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(DMRTest_OBJECTS) $(DMRTest_LDADD) $(LIBS)
-
-HTTPCacheTest$(EXEEXT): $(HTTPCacheTest_OBJECTS) $(HTTPCacheTest_DEPENDENCIES) $(EXTRA_HTTPCacheTest_DEPENDENCIES) 
-	@rm -f HTTPCacheTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(HTTPCacheTest_OBJECTS) $(HTTPCacheTest_LDADD) $(LIBS)
-
-HTTPConnectTest$(EXEEXT): $(HTTPConnectTest_OBJECTS) $(HTTPConnectTest_DEPENDENCIES) $(EXTRA_HTTPConnectTest_DEPENDENCIES) 
-	@rm -f HTTPConnectTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(HTTPConnectTest_OBJECTS) $(HTTPConnectTest_LDADD) $(LIBS)
-
-MIMEUtilTest$(EXEEXT): $(MIMEUtilTest_OBJECTS) $(MIMEUtilTest_DEPENDENCIES) $(EXTRA_MIMEUtilTest_DEPENDENCIES) 
-	@rm -f MIMEUtilTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(MIMEUtilTest_OBJECTS) $(MIMEUtilTest_LDADD) $(LIBS)
-
-MarshallerTest$(EXEEXT): $(MarshallerTest_OBJECTS) $(MarshallerTest_DEPENDENCIES) $(EXTRA_MarshallerTest_DEPENDENCIES) 
-	@rm -f MarshallerTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(MarshallerTest_OBJECTS) $(MarshallerTest_LDADD) $(LIBS)
-
-RCReaderTest$(EXEEXT): $(RCReaderTest_OBJECTS) $(RCReaderTest_DEPENDENCIES) $(EXTRA_RCReaderTest_DEPENDENCIES) 
-	@rm -f RCReaderTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(RCReaderTest_OBJECTS) $(RCReaderTest_LDADD) $(LIBS)
-
-RegexTest$(EXEEXT): $(RegexTest_OBJECTS) $(RegexTest_DEPENDENCIES) $(EXTRA_RegexTest_DEPENDENCIES) 
-	@rm -f RegexTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(RegexTest_OBJECTS) $(RegexTest_LDADD) $(LIBS)
-
-SequenceTest$(EXEEXT): $(SequenceTest_OBJECTS) $(SequenceTest_DEPENDENCIES) $(EXTRA_SequenceTest_DEPENDENCIES) 
-	@rm -f SequenceTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(SequenceTest_OBJECTS) $(SequenceTest_LDADD) $(LIBS)
-
-ServerFunctionsListUnitTest$(EXEEXT): $(ServerFunctionsListUnitTest_OBJECTS) $(ServerFunctionsListUnitTest_DEPENDENCIES) $(EXTRA_ServerFunctionsListUnitTest_DEPENDENCIES) 
-	@rm -f ServerFunctionsListUnitTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(ServerFunctionsListUnitTest_OBJECTS) $(ServerFunctionsListUnitTest_LDADD) $(LIBS)
-
-SignalHandlerTest$(EXEEXT): $(SignalHandlerTest_OBJECTS) $(SignalHandlerTest_DEPENDENCIES) $(EXTRA_SignalHandlerTest_DEPENDENCIES) 
-	@rm -f SignalHandlerTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(SignalHandlerTest_OBJECTS) $(SignalHandlerTest_LDADD) $(LIBS)
-
-ancT$(EXEEXT): $(ancT_OBJECTS) $(ancT_DEPENDENCIES) $(EXTRA_ancT_DEPENDENCIES) 
-	@rm -f ancT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(ancT_OBJECTS) $(ancT_LDADD) $(LIBS)
-
-arrayT$(EXEEXT): $(arrayT_OBJECTS) $(arrayT_DEPENDENCIES) $(EXTRA_arrayT_DEPENDENCIES) 
-	@rm -f arrayT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(arrayT_OBJECTS) $(arrayT_LDADD) $(LIBS)
-
-attrTableT$(EXEEXT): $(attrTableT_OBJECTS) $(attrTableT_DEPENDENCIES) $(EXTRA_attrTableT_DEPENDENCIES) 
-	@rm -f attrTableT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(attrTableT_OBJECTS) $(attrTableT_LDADD) $(LIBS)
-
-chunked_iostream_test$(EXEEXT): $(chunked_iostream_test_OBJECTS) $(chunked_iostream_test_DEPENDENCIES) $(EXTRA_chunked_iostream_test_DEPENDENCIES) 
-	@rm -f chunked_iostream_test$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(chunked_iostream_test_OBJECTS) $(chunked_iostream_test_LDADD) $(LIBS)
-
-dasT$(EXEEXT): $(dasT_OBJECTS) $(dasT_DEPENDENCIES) $(EXTRA_dasT_DEPENDENCIES) 
-	@rm -f dasT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(dasT_OBJECTS) $(dasT_LDADD) $(LIBS)
-
-ddsT$(EXEEXT): $(ddsT_OBJECTS) $(ddsT_DEPENDENCIES) $(EXTRA_ddsT_DEPENDENCIES) 
-	@rm -f ddsT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(ddsT_OBJECTS) $(ddsT_LDADD) $(LIBS)
-
-generalUtilTest$(EXEEXT): $(generalUtilTest_OBJECTS) $(generalUtilTest_DEPENDENCIES) $(EXTRA_generalUtilTest_DEPENDENCIES) 
-	@rm -f generalUtilTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(generalUtilTest_OBJECTS) $(generalUtilTest_LDADD) $(LIBS)
-
-marshT$(EXEEXT): $(marshT_OBJECTS) $(marshT_DEPENDENCIES) $(EXTRA_marshT_DEPENDENCIES) 
-	@rm -f marshT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(marshT_OBJECTS) $(marshT_LDADD) $(LIBS)
-
-parserUtilTest$(EXEEXT): $(parserUtilTest_OBJECTS) $(parserUtilTest_DEPENDENCIES) $(EXTRA_parserUtilTest_DEPENDENCIES) 
-	@rm -f parserUtilTest$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(parserUtilTest_OBJECTS) $(parserUtilTest_LDADD) $(LIBS)
-
-sequenceT$(EXEEXT): $(sequenceT_OBJECTS) $(sequenceT_DEPENDENCIES) $(EXTRA_sequenceT_DEPENDENCIES) 
-	@rm -f sequenceT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(sequenceT_OBJECTS) $(sequenceT_LDADD) $(LIBS)
-
-structT$(EXEEXT): $(structT_OBJECTS) $(structT_DEPENDENCIES) $(EXTRA_structT_DEPENDENCIES) 
-	@rm -f structT$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(structT_OBJECTS) $(structT_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ArrayTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/AttrTableTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ByteTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4AsyncDocTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4AttributesTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4DimensionsTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4EnumDefsTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4EnumTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4GroupTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4MarshallerTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4ParserSax2Test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/D4UnMarshallerTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/DASTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/DDSTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/DDXParserTest-DDXParserTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/DMRTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MIMEUtilTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MarshallerTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/RCReaderTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/RegexTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SequenceTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ServerFunctionsListUnitTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SignalHandlerTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ancT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/arrayT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/attrTableT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chunked_iostream_test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dasT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ddsT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/generalUtilTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/marshT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/parserUtilTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sequenceT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/structT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testFile.Po at am__quote@
-
-.cc.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-DDXParserTest-DDXParserTest.o: DDXParserTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(DDXParserTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DDXParserTest-DDXParserTest.o -MD -MP -MF $(DEPDIR)/DDXParserTest-DDXParserTest.Tpo -c -o DDXParserTest-DDXParserTest.o `test -f 'DDXParserTest.cc' || echo '$(srcdir)/'`DDXParserTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/DDXParserTest-DDXParserTest.Tpo $(DEPDIR)/DDXParserTest-DDXParserTest.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DDXParserTest.cc' object='DDXParserTest-DDXParserTest.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(DDXParserTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DDXParserTest-DDXParserTest.o `test -f 'DDXParserTest.cc' || echo '$(srcdir)/'`DDXParserTest.cc
-
-DDXParserTest-DDXParserTest.obj: DDXParserTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(DDXParserTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DDXParserTest-DDXParserTest.obj -MD -MP -MF $(DEPDIR)/DDXParserTest-DDXParserTest.Tpo -c -o DDXParserTest-DDXParserTest.obj `if test -f 'DDXParserTest.cc'; then $(CYGPATH_W) 'DDXParserTest.cc'; else $(CYGPATH_W) '$(srcdir)/DDXParserTest.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/DDXParserTest-DDXParserTest.Tpo $(DEPDIR)/DDXParserTest-DDXParserTest.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='DDXParserTest.cc' object='DDXParserTest-DDXParserTest.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(DDXParserTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DDXParserTest-DDXParserTest.obj `if test -f 'DDXParserTest.cc'; then $(CYGPATH_W) 'DDXParserTest.cc'; else $(CYGPATH_W) '$(srcdir)/DDXParserTest.cc'; fi`
-
-HTTPCacheTest-HTTPCacheTest.o: HTTPCacheTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPCacheTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HTTPCacheTest-HTTPCacheTest.o -MD -MP -MF $(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Tpo -c -o HTTPCacheTest-HTTPCacheTest.o `test -f 'HTTPCacheTest.cc' || echo '$(srcdir)/'`HTTPCacheTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Tpo $(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPCacheTest.cc' object='HTTPCacheTest-HTTPCacheTest.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPCacheTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HTTPCacheTest-HTTPCacheTest.o `test -f 'HTTPCacheTest.cc' || echo '$(srcdir)/'`HTTPCacheTest.cc
-
-HTTPCacheTest-HTTPCacheTest.obj: HTTPCacheTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPCacheTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HTTPCacheTest-HTTPCacheTest.obj -MD -MP -MF $(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Tpo -c -o HTTPCacheTest-HTTPCacheTest.obj `if test -f 'HTTPCacheTest.cc'; then $(CYGPATH_W) 'HTTPCacheTest.cc'; else $(CYGPATH_W) '$(srcdir)/HTTPCacheTest.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Tpo $(DEPDIR)/HTTPCacheTest-HTTPCacheTest.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPCacheTest.cc' object='HTTPCacheTest-HTTPCacheTest.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPCacheTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HTTPCacheTest-HTTPCacheTest.obj `if test -f 'HTTPCacheTest.cc'; then $(CYGPATH_W) 'HTTPCacheTest.cc'; else $(CYGPATH_W) '$(srcdir)/HTTPCacheTest.cc'; fi`
-
-HTTPConnectTest-HTTPConnectTest.o: HTTPConnectTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPConnectTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HTTPConnectTest-HTTPConnectTest.o -MD -MP -MF $(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Tpo -c -o HTTPConnectTest-HTTPConnectTest.o `test -f 'HTTPConnectTest.cc' || echo '$(srcdir)/'`HTTPConnectTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Tpo $(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPConnectTest.cc' object='HTTPConnectTest-HTTPConnectTest.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPConnectTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HTTPConnectTest-HTTPConnectTest.o `test -f 'HTTPConnectTest.cc' || echo '$(srcdir)/'`HTTPConnectTest.cc
-
-HTTPConnectTest-HTTPConnectTest.obj: HTTPConnectTest.cc
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPConnectTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HTTPConnectTest-HTTPConnectTest.obj -MD -MP -MF $(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Tpo -c -o HTTPConnectTest-HTTPConnectTest.obj `if test -f 'HTTPConnectTest.cc'; then $(CYGPATH_W) 'HTTPConnectTest.cc'; else $(CYGPATH_W) '$(srcdir)/HTTPConnectTest.cc'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Tpo $(DEPDIR)/HTTPConnectTest-HTTPConnectTest.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='HTTPConnectTest.cc' object='HTTPConnectTest-HTTPConnectTest.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(HTTPConnectTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HTTPConnectTest-HTTPConnectTest.obj `if test -f 'HTTPConnectTest.cc'; then $(CYGPATH_W) 'HTTPConnectTest.cc'; else $(CYGPATH_W) '$(srcdir)/HTTPConnectTest.cc'; fi`
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all $(check_PROGRAMS)
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-marshT.log: marshT$(EXEEXT)
-	@p='marshT$(EXEEXT)'; \
-	b='marshT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-arrayT.log: arrayT$(EXEEXT)
-	@p='arrayT$(EXEEXT)'; \
-	b='arrayT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-attrTableT.log: attrTableT$(EXEEXT)
-	@p='attrTableT$(EXEEXT)'; \
-	b='attrTableT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-structT.log: structT$(EXEEXT)
-	@p='structT$(EXEEXT)'; \
-	b='structT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-sequenceT.log: sequenceT$(EXEEXT)
-	@p='sequenceT$(EXEEXT)'; \
-	b='sequenceT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ddsT.log: ddsT$(EXEEXT)
-	@p='ddsT$(EXEEXT)'; \
-	b='ddsT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-dasT.log: dasT$(EXEEXT)
-	@p='dasT$(EXEEXT)'; \
-	b='dasT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-RegexTest.log: RegexTest$(EXEEXT)
-	@p='RegexTest$(EXEEXT)'; \
-	b='RegexTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ArrayTest.log: ArrayTest$(EXEEXT)
-	@p='ArrayTest$(EXEEXT)'; \
-	b='ArrayTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-AttrTableTest.log: AttrTableTest$(EXEEXT)
-	@p='AttrTableTest$(EXEEXT)'; \
-	b='AttrTableTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ByteTest.log: ByteTest$(EXEEXT)
-	@p='ByteTest$(EXEEXT)'; \
-	b='ByteTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MIMEUtilTest.log: MIMEUtilTest$(EXEEXT)
-	@p='MIMEUtilTest$(EXEEXT)'; \
-	b='MIMEUtilTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ancT.log: ancT$(EXEEXT)
-	@p='ancT$(EXEEXT)'; \
-	b='ancT'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DASTest.log: DASTest$(EXEEXT)
-	@p='DASTest$(EXEEXT)'; \
-	b='DASTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDSTest.log: DDSTest$(EXEEXT)
-	@p='DDSTest$(EXEEXT)'; \
-	b='DDSTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDXParserTest.log: DDXParserTest$(EXEEXT)
-	@p='DDXParserTest$(EXEEXT)'; \
-	b='DDXParserTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-generalUtilTest.log: generalUtilTest$(EXEEXT)
-	@p='generalUtilTest$(EXEEXT)'; \
-	b='generalUtilTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-HTTPConnectTest.log: HTTPConnectTest$(EXEEXT)
-	@p='HTTPConnectTest$(EXEEXT)'; \
-	b='HTTPConnectTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-parserUtilTest.log: parserUtilTest$(EXEEXT)
-	@p='parserUtilTest$(EXEEXT)'; \
-	b='parserUtilTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-RCReaderTest.log: RCReaderTest$(EXEEXT)
-	@p='RCReaderTest$(EXEEXT)'; \
-	b='RCReaderTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-SequenceTest.log: SequenceTest$(EXEEXT)
-	@p='SequenceTest$(EXEEXT)'; \
-	b='SequenceTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-SignalHandlerTest.log: SignalHandlerTest$(EXEEXT)
-	@p='SignalHandlerTest$(EXEEXT)'; \
-	b='SignalHandlerTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MarshallerTest.log: MarshallerTest$(EXEEXT)
-	@p='MarshallerTest$(EXEEXT)'; \
-	b='MarshallerTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-HTTPCacheTest.log: HTTPCacheTest$(EXEEXT)
-	@p='HTTPCacheTest$(EXEEXT)'; \
-	b='HTTPCacheTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ServerFunctionsListUnitTest.log: ServerFunctionsListUnitTest$(EXEEXT)
-	@p='ServerFunctionsListUnitTest$(EXEEXT)'; \
-	b='ServerFunctionsListUnitTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4MarshallerTest.log: D4MarshallerTest$(EXEEXT)
-	@p='D4MarshallerTest$(EXEEXT)'; \
-	b='D4MarshallerTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4UnMarshallerTest.log: D4UnMarshallerTest$(EXEEXT)
-	@p='D4UnMarshallerTest$(EXEEXT)'; \
-	b='D4UnMarshallerTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4DimensionsTest.log: D4DimensionsTest$(EXEEXT)
-	@p='D4DimensionsTest$(EXEEXT)'; \
-	b='D4DimensionsTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4EnumDefsTest.log: D4EnumDefsTest$(EXEEXT)
-	@p='D4EnumDefsTest$(EXEEXT)'; \
-	b='D4EnumDefsTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4GroupTest.log: D4GroupTest$(EXEEXT)
-	@p='D4GroupTest$(EXEEXT)'; \
-	b='D4GroupTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4ParserSax2Test.log: D4ParserSax2Test$(EXEEXT)
-	@p='D4ParserSax2Test$(EXEEXT)'; \
-	b='D4ParserSax2Test'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4AttributesTest.log: D4AttributesTest$(EXEEXT)
-	@p='D4AttributesTest$(EXEEXT)'; \
-	b='D4AttributesTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4EnumTest.log: D4EnumTest$(EXEEXT)
-	@p='D4EnumTest$(EXEEXT)'; \
-	b='D4EnumTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-chunked_iostream_test.log: chunked_iostream_test$(EXEEXT)
-	@p='chunked_iostream_test$(EXEEXT)'; \
-	b='chunked_iostream_test'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D4AsyncDocTest.log: D4AsyncDocTest$(EXEEXT)
-	@p='D4AsyncDocTest$(EXEEXT)'; \
-	b='D4AsyncDocTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DMRTest.log: DMRTest$(EXEEXT)
-	@p='DMRTest$(EXEEXT)'; \
-	b='DMRTest'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
- at CPPUNIT_TRUE@check-local:
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
-check: check-recursive
-all-am: Makefile $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
-	mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) check-am install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-	check-TESTS check-am check-local clean clean-checkPROGRAMS \
-	clean-generic clean-libtool cscopelist-am ctags ctags-am \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	recheck tags tags-am uninstall uninstall-am
-
-
-test_config.h: test_config.h.in Makefile
-	sed -e "s%[@]abs_srcdir[@]%${abs_srcdir}%" $< > test_config.h
-
-D4-xml.tar.gz: D4-xml/DMR_*[0-9].xml
-	tar -czf $@ $^
-
- at CPPUNIT_FALSE@check-local:
- at CPPUNIT_FALSE@	@echo ""
- at CPPUNIT_FALSE@	@echo "**********************************************************"
- at CPPUNIT_FALSE@	@echo "You must have cppunit 1.12.x or greater installed to run *"
- at CPPUNIT_FALSE@	@echo "check target in unit-tests directory                     *"
- at CPPUNIT_FALSE@	@echo "**********************************************************"
- at CPPUNIT_FALSE@	@echo ""
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/unit-tests/ResponseBuilderTest.cc b/unit-tests/ResponseBuilderTest.cc
new file mode 100644
index 0000000..20e62a2
--- /dev/null
+++ b/unit-tests/ResponseBuilderTest.cc
@@ -0,0 +1,435 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <sys/types.h>
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <unistd.h>  // for stat
+#include <sstream>
+
+//#define DODS_DEBUG
+
+#include "ObjectType.h"
+#include "EncodingType.h"
+#include "ResponseBuilder.h"
+#include "ServerFunction.h"
+#include "ServerFunctionsList.h"
+#include "DAS.h"
+#include "DDS.h"
+#include "Str.h"
+#include "GetOpt.h"
+
+#include "GNURegex.h"
+#include "util.h"
+#include "mime_util.h"
+#include "debug.h"
+
+#include "../tests/TestTypeFactory.h"
+#include "../tests/TestByte.h"
+
+#include "testFile.h"
+#include "test_config.h"
+
+using namespace CppUnit;
+using namespace std;
+using namespace libdap;
+
+int test_variable_sleep_interval = 0;
+
+static bool debug = false;
+
+#undef DBG
+#define DBG(x) do { if (debug) (x); } while(false);
+
+static void
+rb_simple_function(int, BaseType *[], DDS &, BaseType **btpp)
+{
+    Str *response = new Str("result");
+
+    response->set_value("qwerty");
+    *btpp = response;
+    return;
+}
+
+static void
+parse_datadds_response(istream &in, string &prolog, vector<char> &blob)
+{
+	// Split the stuff in the input stream into two parts:
+	// The text prolog and the binary blob
+	const int line_length = 1024;
+    // Read up to 'Data:'
+	char line[line_length];
+	while (!in.eof()) {
+		in.getline(line, line_length);
+		DBG(cerr << "prolog line: " << line << endl);
+		if (strncmp(line, "Data:", 5) == 0)
+			break;
+		prolog += string(line);
+		prolog += "\n";
+	}
+
+	// Read the blob
+	streampos pos = in.tellg();
+	in.seekg(0, in.end);
+	unsigned int length = in.tellg() - pos;
+	DBG(cerr << "blob length: " << length << endl);
+
+	// return to byte just after 'Data:'
+	in.seekg(pos, in.beg);
+
+	blob.reserve(length);
+	in.read(&blob[0], length);
+}
+
+namespace libdap {
+
+class ResponseBuilderTest: public TestFixture {
+private:
+    ResponseBuilder *df, *df3, *df5, *df6;
+
+    AttrTable *cont_a;
+    DAS *das;
+    DDS *dds;
+    ostringstream oss;
+    time_t now;
+    char now_array[256];
+    libdap::ServerFunction *rbSSF;
+
+    void loadServerSideFunction() {
+        rbSSF = new libdap::ServerFunction(
+
+            // The name of the function as it will appear in a constraint expression
+            "rbSimpleFunc",
+
+            // The version of the function
+            "1.0",
+
+            // A brief description of the function
+            "Returns a string",
+
+            // A usage/syntax statement
+            "rbSimpleFunc()",
+
+            // A URL that points two a web page describing the function
+            "http://docs.opendap.org/index.php/Hyrax:_Server_Side_Functions",
+
+            // A URI that defines the role of the function
+            "http://services.opendap.org/dap4/unit-tests/ResponseBuilderTest",
+
+            // A pointer to the helloWorld() function
+            rb_simple_function
+        );
+
+        libdap::ServerFunctionsList::TheList()->add_function(rbSSF);
+    }
+
+public:
+    ResponseBuilderTest(): df(0), df3(0), df5(0), df6(0), cont_a(0), das(0), dds(0) {
+        now = time(0);
+        ostringstream time_string;
+        time_string << (int) now;
+        strncpy(now_array, time_string.str().c_str(), 255);
+        now_array[255] = '\0';
+
+        loadServerSideFunction();
+    }
+
+    ~ResponseBuilderTest() {
+    	// delete rbSSF; NB: ServerFunctionsList is a singleton that deletes its entries at exit.
+    }
+
+    void setUp() {
+        // Test pathname
+        df = new ResponseBuilder();
+
+        // This file has an ancillary DAS in the server-testsuite dir.
+        // df3 is also used to test escaping stuff in URLs. 5/4/2001 jhrg
+        df3 = new ResponseBuilder();
+        df3->set_dataset_name((string) TEST_SRC_DIR + "/server-testsuite/coads.data");
+        df3->set_ce("u,x,z[0]&grid(u,\"lat<10.0\")");
+        df3->set_timeout(1);
+
+        // Test escaping stuff. 5/4/2001 jhrg
+        df5 = new ResponseBuilder();
+        df5->set_dataset_name("nowhere%5Bmydisk%5Dmyfile");
+        df5->set_ce("u%5B0%5D");
+
+        // Try a server side function call.
+        // loadServerSideFunction(); NB: This is called by the test's ctor
+        df6 = new ResponseBuilder();
+        df6->set_dataset_name((string) TEST_SRC_DIR + "/server-testsuite/bears.data");
+        //df6->set_ce("rbFuncTest()");
+        df6->set_timeout(1);
+
+        cont_a = new AttrTable;
+        cont_a->append_attr("size", "Int32", "7");
+        cont_a->append_attr("type", "String", "cars");
+        das = new DAS;
+        das->add_table("a", cont_a);
+
+        // This AttrTable looks like:
+        //      Attributes {
+        //          a {
+        //              Int32 size 7;
+        //              String type cars;
+        //          }
+        //      }
+
+        TestTypeFactory ttf;
+        dds = new DDS(&ttf, "test");
+        TestByte a("a");
+        dds->add_var(&a);
+
+        dds->transfer_attributes(das);
+        dds->set_dap_major(3);
+        dds->set_dap_minor(2);
+    }
+
+    void tearDown() {
+        delete df; df = 0;
+        delete df3; df3 = 0;
+        delete df5; df5 = 0;
+        delete df6; df6 = 0;
+
+        delete das; das = 0;
+        delete dds; dds = 0;
+    }
+
+    bool re_match(Regex &r, const string &s) {
+        DBG(cerr << "s.length(): " << s.length() << endl);
+        int pos = r.match(s.c_str(), s.length());
+        DBG(cerr << "r.match(s): " << pos << endl);
+        return pos > 0 && static_cast<unsigned> (pos) == s.length();
+    }
+
+    bool re_match_binary(Regex &r, const string &s) {
+        DBG(cerr << "s.length(): " << s.length() << endl);
+        int pos = r.match(s.c_str(), s.length());
+        DBG(cerr << "r.match(s): " << pos << endl);
+        return pos > 0;
+    }
+
+	void send_das_test() {
+		try {
+		string baseline = readTestBaseline((string) TEST_SRC_DIR + "/server-testsuite/send_das_baseline.txt");
+		DBG( cerr << "---- start baseline ----" << endl << baseline << "---- end baseline ----" << endl);
+		Regex r1(baseline.c_str());
+
+		df->send_das(oss, *das);
+
+		DBG(cerr << "DAS: " << oss.str() << endl);
+
+		CPPUNIT_ASSERT(re_match(r1, oss.str()));
+		oss.str("");
+		}
+		catch (Error &e) {
+			CPPUNIT_FAIL(e.get_error_message());
+		}
+	}
+
+    void send_dds_test() {
+    	try {
+    	string baseline = readTestBaseline((string) TEST_SRC_DIR + "/server-testsuite/send_dds_baseline.txt");
+		DBG( cerr << "---- start baseline ----" << endl << baseline << "---- end baseline ----" << endl);
+		Regex r1(baseline.c_str());
+
+        ConstraintEvaluator ce;
+
+        df->send_dds(oss, *dds, ce);
+
+        DBG(cerr << "DDS: " << oss.str() << endl);
+
+        CPPUNIT_ASSERT(re_match(r1, oss.str()));
+        oss.str("");
+		}
+		catch (Error &e) {
+			CPPUNIT_FAIL(e.get_error_message());
+		}
+    }
+
+    void send_ddx_test() {
+        string baseline = readTestBaseline((string) TEST_SRC_DIR + "/ddx-testsuite/response_builder_send_ddx_test.xml");
+        Regex r1(baseline.c_str());
+        ConstraintEvaluator ce;
+
+        try {
+            df->send_ddx(oss, *dds, ce);
+
+            DBG(cerr << "DDX: " << oss.str() << endl);
+
+            CPPUNIT_ASSERT(re_match(r1, baseline));
+            //CPPUNIT_ASSERT(re_match(r1, oss.str()));
+            //oss.str("");
+        } catch (Error &e) {
+            CPPUNIT_FAIL("Error: " + e.get_error_message());
+        }
+    }
+
+
+    void escape_code_test() {
+        // These should NOT be escaped.
+        DBG(cerr << df3->get_dataset_name() << endl); DBG(cerr << df3->get_ce() << endl);
+
+        CPPUNIT_ASSERT(df3->get_dataset_name() == (string)TEST_SRC_DIR + "/server-testsuite/coads.data");
+        CPPUNIT_ASSERT(df3->get_ce() == "u,x,z[0]&grid(u,\"lat<10.0\")");
+
+        // The ResponseBuilder instance is feed escaped values; they should be
+        // unescaped by the ctor and the mutators. 5/4/2001 jhrg
+
+        DBG(cerr << df5->get_dataset_name() << endl); DBG(cerr << df5->get_ce() << endl);
+
+        CPPUNIT_ASSERT(df5->get_dataset_name() == "nowhere[mydisk]myfile");
+        CPPUNIT_ASSERT(df5->get_ce() == "u[0]");
+
+        df5->set_ce("u%5B0%5D");
+        CPPUNIT_ASSERT(df5->get_ce() == "u[0]");
+
+        df5->set_ce("Grid%20u%5B0%5D");
+        CPPUNIT_ASSERT(df5->get_ce() == "Grid%20u[0]");
+    }
+
+    // This tests reading the timeout value from argv[].
+    void timeout_test() {
+        CPPUNIT_ASSERT(df3->get_timeout() == 1);
+        CPPUNIT_ASSERT(df5->get_timeout() == 0);
+    }
+
+    void invoke_server_side_function_test() {
+        DBG( cerr << endl);
+        DBG( cerr << "invoke_server_side_function_test():" << endl);
+
+        try {
+            string baseline = readTestBaseline((string) TEST_SRC_DIR + "/server-testsuite/simple_function_baseline.txt");
+            Regex r1(baseline.c_str());
+
+            DBG( cerr << "---- start baseline ----" << endl << baseline << "---- end baseline ----" << endl);
+#if 1
+            df6->set_ce("rbSimpleFunc()");
+#else
+            df6->set_ce("");
+#endif
+            ConstraintEvaluator ce;
+            df6->send_data(oss, *dds, ce);
+
+            DBG( cerr << "---- start result ----" << endl << oss.str() << "---- end result ----" << endl);
+
+			string prolog;
+			vector<char> blob;
+			istringstream iss(oss.str());
+			parse_datadds_response(iss, prolog, blob);
+
+            CPPUNIT_ASSERT(re_match(r1, prolog));
+
+            // This block of code was going to test if the binary data
+            // in the response document matches some sequence of bytes
+            // in a baseline file. it's not working and likely not that
+            // important - the function under test returns a string and
+            // it's clearly present in the output when instrumentation is
+            // on. Return to this when there's time. 5/20/13 jhrg
+#if 0
+            ifstream blob_baseline_in(((string)TEST_SRC_DIR + "/server-testsuite/blob_baseline.bin").c_str());
+
+            blob_baseline_in.seekg(0, blob_baseline_in.end);
+        	unsigned int blob_baseline_length = blob_baseline_in.tellg();
+
+        	DBG(cerr << "blob_baseline length: " << blob_baseline_length << endl);
+        	DBG(cerr << "blob size: " << blob.size() << endl);
+
+        	CPPUNIT_ASSERT(blob_baseline_length == blob.size());
+
+        	blob_baseline_in.seekg(0, blob_baseline_in.beg);
+
+            char blob_baseline[blob_baseline_length];
+            blob_baseline_in.read(blob_baseline, blob_baseline_length);
+            blob_baseline_in.close();
+            for (int i = 0; i < blob_baseline_length; ++i) {
+            	DBG(cerr << "bb[" << i << "]: " << blob_baseline[i] << endl);
+            	DBG(cerr << "blob[" << i << "]: " << blob_baseline[i] << endl);
+            }
+#endif
+        } catch (Error &e) {
+            CPPUNIT_FAIL("Caught libdap::Error!! Message:" + e.get_error_message());
+        }
+    }
+
+
+    CPPUNIT_TEST_SUITE( ResponseBuilderTest );
+
+        CPPUNIT_TEST(send_das_test);
+        CPPUNIT_TEST(send_dds_test);
+        CPPUNIT_TEST(send_ddx_test);
+
+        CPPUNIT_TEST(escape_code_test);
+        CPPUNIT_TEST(invoke_server_side_function_test);
+
+    CPPUNIT_TEST_SUITE_END();
+};
+CPPUNIT_TEST_SUITE_REGISTRATION(ResponseBuilderTest);
+}
+
+int main(int argc, char*argv[]) {
+    CppUnit::TextTestRunner runner;
+    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+
+    GetOpt getopt(argc, argv, "d");
+    char option_char;
+    while ((option_char = getopt()) != EOF)
+        switch (option_char) {
+        case 'd':
+            debug = 1;  // debug is a static global
+            break;
+        default:
+            break;
+        }
+
+    bool wasSuccessful = true;
+    string test = "";
+    int i = getopt.optind;
+    if (i == argc) {
+        // run them all
+        wasSuccessful = runner.run("");
+    }
+    else {
+        while (i < argc) {
+            test = string("libdap::ResponseBuilderTest::") + argv[i++];
+
+            wasSuccessful = wasSuccessful && runner.run(test);
+        }
+    }
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/ResponseCacheTest.cc b/unit-tests/ResponseCacheTest.cc
new file mode 100644
index 0000000..af4ccee
--- /dev/null
+++ b/unit-tests/ResponseCacheTest.cc
@@ -0,0 +1,367 @@
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include "config.h"
+
+#include <dirent.h>
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+#include "ConstraintEvaluator.h"
+#include "ResponseBuilder.h"
+#include "DDS.h"
+#include "DDXParserSAX2.h"
+#include "ResponseCache.h"
+
+#include "GetOpt.h"
+#include "GNURegex.h"
+#include "util.h"
+#include "debug.h"
+
+#include "../tests/TestTypeFactory.h"
+
+#include "testFile.h"
+#include "test_config.h"
+
+using namespace CppUnit;
+using namespace std;
+using namespace libdap;
+
+int test_variable_sleep_interval = 0;
+
+static bool debug = false;
+
+#undef DBG
+#define DBG(x) do { if (debug) (x); } while(false);
+
+namespace libdap {
+
+class ResponseCacheTest: public TestFixture {
+private:
+	TestTypeFactory ttf;
+	DDS *test_05_dds;
+	//DDS test_06_dds;
+	DDXParser dp;
+	ConstraintEvaluator eval;
+	ResponseBuilder rb;
+
+    string d_response_cache;
+    ResponseCache *cache;
+
+public:
+    ResponseCacheTest() : test_05_dds(0), /*test_06_dds(&ttf), */dp(&ttf),
+		d_response_cache(string(TEST_SRC_DIR) + "/response_cache") {
+    }
+
+    ~ResponseCacheTest() {
+    }
+
+    void clean_cache(const string &directory, const string &prefix) {
+        DIR *dip = opendir(directory.c_str());
+        if (!dip)
+            throw InternalErr(__FILE__, __LINE__, "Unable to open cache directory " + directory);
+
+        struct dirent *dit;
+        // go through the cache directory and collect all of the files that
+        // start with the matching prefix
+        while ((dit = readdir(dip)) != NULL) {
+            string dirEntry = dit->d_name;
+            if (dirEntry.compare(0, prefix.length(), prefix) == 0) {
+            	unlink(string(directory + "/" + dit->d_name).c_str());
+            }
+        }
+
+        closedir(dip);
+    }
+
+    void setUp() {
+    	string cid;
+    	test_05_dds = new DDS(&ttf);
+    	dp.intern((string) TEST_SRC_DIR + "/ddx-testsuite/test.05.ddx", test_05_dds, cid);
+    	// cid == http://dods.coas.oregonstate.edu:8080/dods/dts/test.01.blob
+    	DBG(cerr << "DDS Name: " << test_05_dds->get_dataset_name() << endl);
+    	DBG(cerr << "Intern CID: " << cid << endl);
+    }
+
+    void tearDown() {
+		clean_cache(d_response_cache, "rc");
+		delete test_05_dds;
+    }
+
+    bool re_match(Regex &r, const string &s) {
+        DBG(cerr << "s.length(): " << s.length() << endl);
+        int pos = r.match(s.c_str(), s.length());
+        DBG(cerr << "r.match(s): " << pos << endl);
+        return pos > 0 && static_cast<unsigned> (pos) == s.length();
+    }
+
+    bool re_match_binary(Regex &r, const string &s) {
+        DBG(cerr << "s.length(): " << s.length() << endl);
+        int pos = r.match(s.c_str(), s.length());
+        DBG(cerr << "r.match(s): " << pos << endl);
+        return pos > 0;
+    }
+
+    // The directory 'never' does not exist; the cache won't be initialized,
+    // so is_available() should be false
+    void ctor_test_1() {
+
+    	cache = new ResponseCache(string(TEST_SRC_DIR) + "/never", "rc", 1000);
+    	CPPUNIT_ASSERT(!cache->is_available());
+    }
+
+    // The directory 'response_cache' should exist so is_available() should be
+    // true.
+    void ctor_test_2() {
+    	//cache = new ResponseCache(TEST_SRC_DIR + "response_cache", "rc", 1000);
+    	cache = new ResponseCache(d_response_cache, "rc", 1000);
+    	CPPUNIT_ASSERT(cache->is_available());
+    }
+
+    // Because setup() and teardown() clean out the cache directory, there should
+    // never be a cached item; calling read_cached_dataset() should return a
+    // valid DDS with data and store a copy in the cache.
+	void cache_a_response()
+	{
+		//cache = new ResponseCache(TEST_SRC_DIR + "response_cache", "rc", 1000);
+		cache = new ResponseCache(d_response_cache, "rc", 1000);
+		string token;
+		try {
+			// TODO Could stat the cache file to make sure it's not already there.
+			DDS *cache_dds = cache->read_cached_dataset(*test_05_dds, "", &rb, &eval, token);
+			cache->unlock_and_close(token);
+
+			DBG(cerr << "Cached response token: " << token << endl);
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#");
+			// TODO Stat the cache file to check it's size
+			delete cache_dds;
+		}
+		catch (Error &e) {
+			CPPUNIT_FAIL(e.get_error_message());
+		}
+    }
+
+	// The first call reads values into the DDS, stores a copy in the cache and
+	// returns the DDS. The second call reads the value from the cache.
+	void cache_and_read_a_response()
+	{
+		//cache = new ResponseCache(TEST_SRC_DIR + "response_cache", "rc", 1000);
+		cache = new ResponseCache(d_response_cache, "rc", 1000);
+		string token;
+		try {
+			DDS *cache_dds = cache->read_cached_dataset(*test_05_dds, "", &rb, &eval, token);
+			cache->unlock_and_close(token);
+
+			DBG(cerr << "Cached response token: " << token << endl);
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#");
+			delete cache_dds; cache_dds = 0;
+
+			// DDS *get_cached_dap2_data_ddx(const string &cache_file_name, BaseTypeFactory *factory, const string &dataset)
+			// Force read from the cache file
+			cache_dds = cache->get_cached_dap2_data_ddx(token, &ttf, "test.05");
+			// The code cannot unlock the file because get_cached_dap2_data_ddx()
+			// does not lock the cached item.
+			//cache->unlock_and_close(token);
+
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#");
+			// There are nine variables in test.05.ddx
+			CPPUNIT_ASSERT(cache_dds->var_end() - cache_dds->var_begin() == 9);
+
+			ostringstream oss;
+			DDS::Vars_iter i = cache_dds->var_begin();
+			while (i != cache_dds->var_end()) {
+				DBG(cerr << "Variable " << (*i)->name() << endl);
+				// this will incrementally add thr string rep of values to 'oss'
+				(*i)->print_val(oss, "", false /*print declaration */);
+				DBG(cerr << "Value " << oss.str() << endl);
+				++i;
+			}
+
+			// In this regex the value of <number> in the DAP2 Str variable (Silly test string: <number>)
+			// is a any single digit. The *Test classes implement a counter and return strings where
+			// <number> is 1, 2, ..., and running several of the tests here in a row will get a range of
+			// values for <number>.
+			Regex regex("2551234567894026531840320006400099.99999.999\"Silly test string: [0-9]\"\"http://dcz.gso.uri.edu/avhrr-archive/archive.html\"");
+			CPPUNIT_ASSERT(re_match(regex, oss.str()));
+			delete cache_dds; cache_dds = 0;
+		}
+		catch (Error &e) {
+			CPPUNIT_FAIL(e.get_error_message());
+		}
+    }
+
+	// The first call reads values into the DDS, stores a copy in the cache and
+	// returns the DDS. The second call reads the value from the cache.
+	void cache_and_read_a_response2()
+	{
+		//cache = new ResponseCache(TEST_SRC_DIR + "response_cache", "rc", 1000);
+		cache = new ResponseCache(d_response_cache, "rc", 1000);
+		string token;
+		try {
+			// This loads a DDS in the cache and returns it.
+			DDS *cache_dds = cache->read_cached_dataset(*test_05_dds, "", &rb, &eval, token);
+			cache->unlock_and_close(token);
+
+			DBG(cerr << "Cached response token: " << token << endl);
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#");
+			delete cache_dds; cache_dds = 0;
+
+			// This reads the dataset from the cache, but unlike the previous test,
+			// does so using the public interface.
+			cache_dds = cache->read_cached_dataset(*test_05_dds, "", &rb, &eval, token);
+			cache->unlock_and_close(token);
+
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#");
+			// There are nine variables in test.05.ddx
+			CPPUNIT_ASSERT(cache_dds->var_end() - cache_dds->var_begin() == 9);
+
+			ostringstream oss;
+			DDS::Vars_iter i = cache_dds->var_begin();
+			while (i != cache_dds->var_end()) {
+				DBG(cerr << "Variable " << (*i)->name() << endl);
+				// this will incrementally add the string rep of values to 'oss'
+				(*i)->print_val(oss, "", false /*print declaration */);
+				DBG(cerr << "Value " << oss.str() << endl);
+				++i;
+			}
+
+			Regex regex("2551234567894026531840320006400099.99999.999\"Silly test string: [0-9]\"\"http://dcz.gso.uri.edu/avhrr-archive/archive.html\"");
+			CPPUNIT_ASSERT(re_match(regex, oss.str()));
+			delete cache_dds; cache_dds = 0;
+		}
+		catch (Error &e) {
+			CPPUNIT_FAIL(e.get_error_message());
+		}
+    }
+
+	// Test caching a response where a CE is applied to the DDS. The CE here is 'b,u'
+	void cache_and_read_a_response3()
+	{
+		//cache = new ResponseCache(TEST_SRC_DIR + "response_cache", "rc", 1000);
+		cache = new ResponseCache(d_response_cache, "rc", 1000);
+		string token;
+		try {
+			// This loads a DDS in the cache and returns it.
+			DDS *cache_dds = cache->read_cached_dataset(*test_05_dds, "b,u", &rb, &eval, token);
+			cache->unlock_and_close(token);
+
+			DBG(cerr << "Cached response token: " << token << endl);
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#b#u");
+			ostringstream oss;
+			DDS::Vars_iter i = cache_dds->var_begin();
+			while (i != cache_dds->var_end()) {
+				DBG(cerr << "Variable " << (*i)->name() << endl);
+				if ((*i)->send_p()) {
+					(*i)->print_val(oss, "", false /*print declaration */);
+					DBG(cerr << "Value " << oss.str() << endl);
+				}
+				++i;
+			}
+
+			CPPUNIT_ASSERT(oss.str() == "255\"http://dcz.gso.uri.edu/avhrr-archive/archive.html\"");
+			delete cache_dds; cache_dds = 0;
+			oss.str("");
+
+			cache_dds = cache->read_cached_dataset(*test_05_dds, "b,u", &rb, &eval, token);
+			cache->unlock_and_close(token);
+
+			CPPUNIT_ASSERT(cache_dds);
+			CPPUNIT_ASSERT(token == d_response_cache + "/rc#SimpleTypes#b#u");
+			// There are nine variables in test.05.ddx but two in the CE used here and
+			// the response cached was constrained.
+			CPPUNIT_ASSERT(cache_dds->var_end() - cache_dds->var_begin() == 2);
+
+			i = cache_dds->var_begin();
+			while (i != cache_dds->var_end()) {
+				DBG(cerr << "Variable " << (*i)->name() << endl);
+				if ((*i)->send_p()) {
+					(*i)->print_val(oss, "", false /*print declaration */);
+					DBG(cerr << "Value " << oss.str() << endl);
+				}
+				++i;
+			}
+
+			CPPUNIT_ASSERT(oss.str() == "255\"http://dcz.gso.uri.edu/avhrr-archive/archive.html\"");
+			delete cache_dds; cache_dds = 0;
+		}
+		catch (Error &e) {
+			CPPUNIT_FAIL(e.get_error_message());
+		}
+
+    }
+    CPPUNIT_TEST_SUITE( ResponseCacheTest );
+
+    CPPUNIT_TEST(ctor_test_1);
+    CPPUNIT_TEST(ctor_test_2);
+    CPPUNIT_TEST(cache_a_response);
+    CPPUNIT_TEST(cache_and_read_a_response);
+    CPPUNIT_TEST(cache_and_read_a_response2);
+    CPPUNIT_TEST(cache_and_read_a_response3);
+
+    CPPUNIT_TEST_SUITE_END();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ResponseCacheTest);
+}
+
+int main(int argc, char*argv[]) {
+    CppUnit::TextTestRunner runner;
+    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+
+    GetOpt getopt(argc, argv, "d");
+    char option_char;
+    while ((option_char = getopt()) != EOF)
+        switch (option_char) {
+        case 'd':
+            debug = 1;  // debug is a static global
+            break;
+        default:
+            break;
+        }
+
+    bool wasSuccessful = true;
+    string test = "";
+    int i = getopt.optind;
+    if (i == argc) {
+        // run them all
+        wasSuccessful = runner.run("");
+    }
+    else {
+        while (i < argc) {
+            test = string("libdap::ResponseCacheTest::") + argv[i++];
+
+            wasSuccessful = wasSuccessful && runner.run(test);
+        }
+    }
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/ThreadTest.cc b/unit-tests/ThreadTest.cc
new file mode 100644
index 0000000..0de791f
--- /dev/null
+++ b/unit-tests/ThreadTest.cc
@@ -0,0 +1,115 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2002,2003 OPeNDAP, Inc.
+// Author: Rob Morris <Robert.O.Morris at jpl.nasa.gov>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+ 
+#include <pthread.h>
+#include <cstdio>
+#ifdef WIN32
+#include <io.h>
+#endif
+#include <fcntl.h>
+#include <string>
+
+#define NUM2SPAWN 10
+
+#include "Connect.h"
+
+void *threads_work(void *);
+bool read_data(FILE *);
+
+//  Summarily test Threading functionality as deployed by Dods.  This
+//  would be better turned into a unit test perhaps.
+int main(int argc, char **argv)
+{
+	int k;
+	//  Each thread
+	pthread_t threads[NUM2SPAWN];
+	//  Individually valued args to each thread
+	int i[NUM2SPAWN];
+
+	//  Initialize args to each thread
+	for(k=0;k < NUM2SPAWN;k++)
+		i[k] = k;
+
+	//  Run each thread
+	for(k=0;k < NUM2SPAWN;k++)
+		{
+			pthread_create(&threads[k],0,threads_work,&i[k]);
+		}
+
+	//  Give a little time for all to finish up
+	sleep(5);
+
+	//  Have the main thread wait for the last to finish.
+	//  If they finish out of order, all won't finish.
+	pthread_join(threads[k-1],NULL);
+
+	return (0);
+}
+
+bool read_data(FILE *fp)
+{
+    char c;
+    while (fp && !feof(fp) && fread(&c, 1, 1, fp))
+		;
+
+    return true;
+}
+
+void *threads_work(void *a)
+{
+	printf("Thread # %d (thread ID = %ld) starting\n", *((int *) a), pthread_self());
+
+	HTTPConnect http(RCReader::instance());
+	string url_string = "http://dods.gso.uri.edu/cgi-bin/nph-nc/data/fnoc1.nc.das";
+
+	try
+	{
+		Response *r = http.fetch_url(url_string);		
+		if(read_data(r->get_stream()))
+			printf("thread %ld pulled data from the url\n",pthread_self());
+		else
+			printf("thread %ld did NOT pull data from the url\n",pthread_self());
+		delete r;  r = 0;
+	}
+	catch (Error &e)
+	{
+		printf("Thread # %d (thread ID = %ld) received a DODS-relevant critical error\n",
+			*((int *) a), pthread_self());
+		//e.display_message();
+		printf("Thread # %d (thread ID %ld) terminating unsuccessfully\n",*((int *) a),pthread_self());
+		pthread_exit(NULL);
+	}
+
+	printf("Thread # %d (thread ID %ld) terminating successfully\n",*((int *) a),pthread_self());
+
+	pthread_exit(NULL);
+
+	return((void *)NULL);
+
+}
+
+
+
+
diff --git a/unit-tests/ais_testsuite/123.das b/unit-tests/ais_testsuite/123.das
new file mode 100644
index 0000000..b7670fb
--- /dev/null
+++ b/unit-tests/ais_testsuite/123.das
@@ -0,0 +1,5 @@
+Attribtues {
+    NC_GLOBAL {
+        String ais_test_2 "Multiple AIS resources; one explicit, one Regexp.";
+    }
+}
\ No newline at end of file
diff --git a/unit-tests/ais_testsuite/ais_database.xml.in b/unit-tests/ais_testsuite/ais_database.xml.in
new file mode 100644
index 0000000..98539c1
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_database.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais SYSTEM "http://www.opendap.org/ais/ais_database.dtd">
+
+<ais xmlns="http://xml.opendap.org/ais">
+<entry>
+<primary url="http://test.opendap.org/opendap/data/nc/fnoc1.nc"/>
+<ancillary url="http://test.opendap.org/ais/fnoc1.nc.das"/>
+</entry>
+
+<entry>
+<primary url="http://test.opendap.org/opendap/data/nc/fnoc2.nc"/>
+<ancillary rule="replace" url="@abs_srcdir@/ais_testsuite/fnoc2_replace.das"/>
+</entry>
+
+<entry>
+<primary url="http://test.opendap.org/opendap/data/nc/fnoc3.nc"/>
+<!-- <ancillary url="http://test.opendap.org/ais/fnoc1.nc.das"/> -->
+<ancillary rule="fallback" url="http://test.opendap.org/ais/fnoc3_fallback.das"/>
+</entry>
+
+<!-- The file:// URL works only with absolute paths. Maybe a bug? jhrg -->
+<!-- 7/14/05 -->
+<entry>
+<primary url="http://test.opendap.org/opendap/data/nc/bears.nc"/>
+<ancillary url="file:///home/jimg/libdap/tests/ais_testsuite/bears_1.nc.das"/>
+</entry>
+
+<entry>
+<primary url="http://test.opendap.org/opendap/data/nc/coads_climatology.nc"/>
+<ancillary url="@abs_srcdir@/ais_testsuite/coads.das"/>
+</entry>
+
+<entry>
+<primary url="http://test.opendap.org/opendap/data/nc/123.nc"/>
+<ancillary url="@abs_srcdir@/ais_testsuite/123.das"/>
+</entry>
+
+<entry>
+<primary regexp="http://test.opendap.org/opendap/data/nc/[0-9]+.*\.nc"/>
+<ancillary url="@abs_srcdir@/ais_testsuite/starts_with_number.das"/>
+</entry>
+</ais>
diff --git a/unit-tests/ais_testsuite/ais_error_1.xml b/unit-tests/ais_testsuite/ais_error_1.xml
new file mode 100644
index 0000000..195401c
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_error_1.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais_database SYSTEM "ais_database.dtd">
+
+<ais>
+<entry>
+</ais>
diff --git a/unit-tests/ais_testsuite/ais_error_2.xml b/unit-tests/ais_testsuite/ais_error_2.xml
new file mode 100644
index 0000000..43c7284
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_error_2.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais_database SYSTEM "ais_database.dtd">
+
+<ais>
+<entry>
+<primary/>
+<ancillary url="http://dodsdev.gso.uri.edu/ais/fnoc1.nc.das"/>
+</entry>
+
+</ais>
diff --git a/unit-tests/ais_testsuite/ais_error_3.xml b/unit-tests/ais_testsuite/ais_error_3.xml
new file mode 100644
index 0000000..3b0ec95
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_error_3.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais_database SYSTEM "ais_database.dtd">
+
+<ais>
+<entry>
+<primary url="http://dodsdev.gso.uri.edu/dods-3.2/nph-dods/data/nc/fnoc1.nc"/>
+<ancillary rule="trash" url="http://dodsdev.gso.uri.edu/ais/fnoc1.nc.das"/>
+</entry>
+
+</ais>
diff --git a/unit-tests/ais_testsuite/ais_error_4.xml b/unit-tests/ais_testsuite/ais_error_4.xml
new file mode 100644
index 0000000..48b93d3
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_error_4.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais_database SYSTEM "ais_database.dtd">
+
+<ais>
+<entry>
+<primary url="http://dodsdev.gso.uri.edu/dods-3.2/nph-dods/data/nc/fnoc3.nc"/>
+<ancillary url="http://dodsdev.gso.uri.edu/ais/fnoc1.nc.das"/>
+<ancillary rule="fallback"/>
+</entry>
+</ais>
diff --git a/unit-tests/ais_testsuite/ais_error_5.xml b/unit-tests/ais_testsuite/ais_error_5.xml
new file mode 100644
index 0000000..765a084
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_error_5.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais_database SYSTEM "ais_database.dtd">
+
+<ais>
+<entry>
+<primary url="http://dodsdev.gso.uri.edu/dods-3.2/nph-dods/data/nc/fnoc3.nc"/>
+<ancillary url="http://dodsdev.gso.uri.edu/ais/fnoc1.nc.das"/>
+<ancillary/>
+</entry>
+</ais>
diff --git a/unit-tests/ais_testsuite/ais_error_6.xml b/unit-tests/ais_testsuite/ais_error_6.xml
new file mode 100644
index 0000000..a57edde
--- /dev/null
+++ b/unit-tests/ais_testsuite/ais_error_6.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
+<!DOCTYPE ais_database SYSTEM "ais_database.dtd">
+
+<ais>
+<entry>
+<primary/>
+<ancillary url="http://dodsdev.gso.uri.edu/ais/fnoc1.nc.das"/>
+<ancillary/>
+</entry>
+</ais>
diff --git a/unit-tests/ais_testsuite/bears_1.nc.das b/unit-tests/ais_testsuite/bears_1.nc.das
new file mode 100644
index 0000000..f36d7a9
--- /dev/null
+++ b/unit-tests/ais_testsuite/bears_1.nc.das
@@ -0,0 +1,5 @@
+Attributes {
+    bears {
+	String longname "Test data";
+    }
+}
diff --git a/unit-tests/ais_testsuite/coads.das b/unit-tests/ais_testsuite/coads.das
new file mode 100644
index 0000000..431026e
--- /dev/null
+++ b/unit-tests/ais_testsuite/coads.das
@@ -0,0 +1,5 @@
+Attributes {
+    COADSX {
+        String long_name "Longitude";
+    }
+}
diff --git a/unit-tests/ais_testsuite/fnoc1.nc.das b/unit-tests/ais_testsuite/fnoc1.nc.das
new file mode 100644
index 0000000..3fb9a38
--- /dev/null
+++ b/unit-tests/ais_testsuite/fnoc1.nc.das
@@ -0,0 +1,8 @@
+Attributes {
+    u {
+	String DODS_Name "UWind";
+    }
+    v {
+	String DODS_Name "VWind";
+    }
+}
diff --git a/unit-tests/ais_testsuite/fnoc2_replace.das b/unit-tests/ais_testsuite/fnoc2_replace.das
new file mode 100644
index 0000000..16682e3
--- /dev/null
+++ b/unit-tests/ais_testsuite/fnoc2_replace.das
@@ -0,0 +1,24 @@
+Attributes {
+    u {
+        String units "meter per second";
+        String long_name "UWind";
+    }
+    v {
+        String units "meter per second";
+        String long_name "VWind";
+    }
+    lat {
+        String units "degree North";
+	String long_name "Latitude";
+    }
+    lon {
+        String units "degree East";
+	String long_name "Longitude";
+    }
+    time {
+    }
+    NC_GLOBAL {
+    }
+    DODS_EXTRA {
+    }
+}
diff --git a/unit-tests/ais_testsuite/fnoc3_fallback.das b/unit-tests/ais_testsuite/fnoc3_fallback.das
new file mode 100644
index 0000000..ed51cc4
--- /dev/null
+++ b/unit-tests/ais_testsuite/fnoc3_fallback.das
@@ -0,0 +1,14 @@
+Attributes {
+    u {
+        String long_name "UWind";
+    }
+    v {
+        String long_name "VWind";
+    }
+    lat {
+	String long_name "Latitude";
+    }
+    lon {
+	String long_name "Longitude";
+    }
+}
diff --git a/unit-tests/ais_testsuite/starts_with_number.das b/unit-tests/ais_testsuite/starts_with_number.das
new file mode 100644
index 0000000..4c56151
--- /dev/null
+++ b/unit-tests/ais_testsuite/starts_with_number.das
@@ -0,0 +1,9 @@
+
+# Used to test matching data sources to AIS resources using regular
+# expresssions. 
+
+Attributes {
+    NC_GLOBAL {
+        String AIS_Test_info "This dataset's name starts with a digit.";
+    }
+}
\ No newline at end of file
diff --git a/unit-tests/cache-testsuite/Makefile.in b/unit-tests/cache-testsuite/Makefile.in
deleted file mode 100644
index ac47212..0000000
--- a/unit-tests/cache-testsuite/Makefile.in
+++ /dev/null
@@ -1,922 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = unit-tests/cache-testsuite
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/gl/m4/00gnulib.m4 \
-	$(top_srcdir)/gl/m4/absolute-header.m4 \
-	$(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/btowc.m4 \
-	$(top_srcdir)/gl/m4/byteswap.m4 $(top_srcdir)/gl/m4/codeset.m4 \
-	$(top_srcdir)/gl/m4/configmake.m4 \
-	$(top_srcdir)/gl/m4/eealloc.m4 \
-	$(top_srcdir)/gl/m4/extensions.m4 \
-	$(top_srcdir)/gl/m4/extern-inline.m4 \
-	$(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/glibc21.m4 \
-	$(top_srcdir)/gl/m4/gnulib-common.m4 \
-	$(top_srcdir)/gl/m4/gnulib-comp.m4 \
-	$(top_srcdir)/gl/m4/gnulib-tool.m4 \
-	$(top_srcdir)/gl/m4/include_next.m4 \
-	$(top_srcdir)/gl/m4/langinfo_h.m4 \
-	$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
-	$(top_srcdir)/gl/m4/lib-prefix.m4 \
-	$(top_srcdir)/gl/m4/localcharset.m4 \
-	$(top_srcdir)/gl/m4/locale-fr.m4 \
-	$(top_srcdir)/gl/m4/locale-ja.m4 \
-	$(top_srcdir)/gl/m4/locale-zh.m4 \
-	$(top_srcdir)/gl/m4/locale_h.m4 \
-	$(top_srcdir)/gl/m4/localeconv.m4 $(top_srcdir)/gl/m4/lock.m4 \
-	$(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/mbrtowc.m4 \
-	$(top_srcdir)/gl/m4/mbsinit.m4 \
-	$(top_srcdir)/gl/m4/mbstate_t.m4 $(top_srcdir)/gl/m4/mbtowc.m4 \
-	$(top_srcdir)/gl/m4/multiarch.m4 \
-	$(top_srcdir)/gl/m4/nl_langinfo.m4 \
-	$(top_srcdir)/gl/m4/off_t.m4 $(top_srcdir)/gl/m4/regex.m4 \
-	$(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stdbool.m4 \
-	$(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \
-	$(top_srcdir)/gl/m4/stdlib_h.m4 \
-	$(top_srcdir)/gl/m4/sys_types_h.m4 \
-	$(top_srcdir)/gl/m4/threadlib.m4 \
-	$(top_srcdir)/gl/m4/unistd_h.m4 \
-	$(top_srcdir)/gl/m4/warn-on-use.m4 \
-	$(top_srcdir)/gl/m4/wchar_h.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \
-	$(top_srcdir)/gl/m4/wcrtomb.m4 $(top_srcdir)/gl/m4/wctype_h.m4 \
-	$(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/conf/acinclude.m4 \
-	$(top_srcdir)/conf/cppunit.m4 \
-	$(top_srcdir)/conf/gcov_valgrind.m4 \
-	$(top_srcdir)/conf/libtool.m4 $(top_srcdir)/conf/ltoptions.m4 \
-	$(top_srcdir)/conf/ltsugar.m4 $(top_srcdir)/conf/ltversion.m4 \
-	$(top_srcdir)/conf/lt~obsolete.m4 $(top_srcdir)/conf/pkg.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h \
-	$(top_builddir)/dods-datatypes-config.h \
-	$(top_builddir)/xdr-datatypes-config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SCRIPTS = $(noinst_SCRIPTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-ALLOCA_H = @ALLOCA_H@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
-BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
-BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
-BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
-BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
-BYTESWAP_H = @BYTESWAP_H@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLIENTLIB_AGE = @CLIENTLIB_AGE@
-CLIENTLIB_CURRENT = @CLIENTLIB_CURRENT@
-CLIENTLIB_REVISION = @CLIENTLIB_REVISION@
-CLIENTLIB_VERSION = @CLIENTLIB_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPPUNIT_CFLAGS = @CPPUNIT_CFLAGS@
-CPPUNIT_CONFIG = @CPPUNIT_CONFIG@
-CPPUNIT_LIBS = @CPPUNIT_LIBS@
-CURL_CFLAGS = @CURL_CFLAGS@
-CURL_LIBS = @CURL_LIBS@
-CURL_STATIC_LIBS = @CURL_STATIC_LIBS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DAPLIB_AGE = @DAPLIB_AGE@
-DAPLIB_CURRENT = @DAPLIB_CURRENT@
-DAPLIB_REVISION = @DAPLIB_REVISION@
-DAP_PROTOCOL_VERSION = @DAP_PROTOCOL_VERSION@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVR = @DVR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GLIBC21 = @GLIBC21@
-GNULIB_ATOLL = @GNULIB_ATOLL@
-GNULIB_BTOWC = @GNULIB_BTOWC@
-GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
-GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
-GNULIB_CHDIR = @GNULIB_CHDIR@
-GNULIB_CHOWN = @GNULIB_CHOWN@
-GNULIB_CLOSE = @GNULIB_CLOSE@
-GNULIB_DUP = @GNULIB_DUP@
-GNULIB_DUP2 = @GNULIB_DUP2@
-GNULIB_DUP3 = @GNULIB_DUP3@
-GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
-GNULIB_ENVIRON = @GNULIB_ENVIRON@
-GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
-GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
-GNULIB_FCHDIR = @GNULIB_FCHDIR@
-GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
-GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
-GNULIB_FSYNC = @GNULIB_FSYNC@
-GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
-GNULIB_GETCWD = @GNULIB_GETCWD@
-GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
-GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
-GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
-GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
-GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
-GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
-GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
-GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
-GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
-GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
-GNULIB_GRANTPT = @GNULIB_GRANTPT@
-GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
-GNULIB_ISATTY = @GNULIB_ISATTY@
-GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
-GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
-GNULIB_LCHOWN = @GNULIB_LCHOWN@
-GNULIB_LINK = @GNULIB_LINK@
-GNULIB_LINKAT = @GNULIB_LINKAT@
-GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
-GNULIB_LSEEK = @GNULIB_LSEEK@
-GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
-GNULIB_MBRLEN = @GNULIB_MBRLEN@
-GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
-GNULIB_MBSINIT = @GNULIB_MBSINIT@
-GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
-GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
-GNULIB_MBTOWC = @GNULIB_MBTOWC@
-GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
-GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
-GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
-GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
-GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
-GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
-GNULIB_PIPE = @GNULIB_PIPE@
-GNULIB_PIPE2 = @GNULIB_PIPE2@
-GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
-GNULIB_PREAD = @GNULIB_PREAD@
-GNULIB_PTSNAME = @GNULIB_PTSNAME@
-GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
-GNULIB_PUTENV = @GNULIB_PUTENV@
-GNULIB_PWRITE = @GNULIB_PWRITE@
-GNULIB_QSORT_R = @GNULIB_QSORT_R@
-GNULIB_RANDOM = @GNULIB_RANDOM@
-GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
-GNULIB_READ = @GNULIB_READ@
-GNULIB_READLINK = @GNULIB_READLINK@
-GNULIB_READLINKAT = @GNULIB_READLINKAT@
-GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
-GNULIB_REALPATH = @GNULIB_REALPATH@
-GNULIB_RMDIR = @GNULIB_RMDIR@
-GNULIB_RPMATCH = @GNULIB_RPMATCH@
-GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
-GNULIB_SETENV = @GNULIB_SETENV@
-GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
-GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
-GNULIB_SLEEP = @GNULIB_SLEEP@
-GNULIB_STRTOD = @GNULIB_STRTOD@
-GNULIB_STRTOLL = @GNULIB_STRTOLL@
-GNULIB_STRTOULL = @GNULIB_STRTOULL@
-GNULIB_SYMLINK = @GNULIB_SYMLINK@
-GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
-GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
-GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
-GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
-GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
-GNULIB_UNLINK = @GNULIB_UNLINK@
-GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
-GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
-GNULIB_UNSETENV = @GNULIB_UNSETENV@
-GNULIB_USLEEP = @GNULIB_USLEEP@
-GNULIB_WCPCPY = @GNULIB_WCPCPY@
-GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
-GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
-GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
-GNULIB_WCSCAT = @GNULIB_WCSCAT@
-GNULIB_WCSCHR = @GNULIB_WCSCHR@
-GNULIB_WCSCMP = @GNULIB_WCSCMP@
-GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
-GNULIB_WCSCPY = @GNULIB_WCSCPY@
-GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
-GNULIB_WCSDUP = @GNULIB_WCSDUP@
-GNULIB_WCSLEN = @GNULIB_WCSLEN@
-GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
-GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
-GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
-GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
-GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
-GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
-GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
-GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
-GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
-GNULIB_WCSSPN = @GNULIB_WCSSPN@
-GNULIB_WCSSTR = @GNULIB_WCSSTR@
-GNULIB_WCSTOK = @GNULIB_WCSTOK@
-GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
-GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
-GNULIB_WCTOB = @GNULIB_WCTOB@
-GNULIB_WCTOMB = @GNULIB_WCTOMB@
-GNULIB_WCTRANS = @GNULIB_WCTRANS@
-GNULIB_WCTYPE = @GNULIB_WCTYPE@
-GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
-GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
-GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
-GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
-GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
-GNULIB_WMEMSET = @GNULIB_WMEMSET@
-GNULIB_WRITE = @GNULIB_WRITE@
-GNULIB__EXIT = @GNULIB__EXIT@
-GREP = @GREP@
-HAVE_ATOLL = @HAVE_ATOLL@
-HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
-HAVE_CHOWN = @HAVE_CHOWN@
-HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
-HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
-HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
-HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
-HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
-HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
-HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
-HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
-HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
-HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
-HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
-HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
-HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
-HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
-HAVE_DUP2 = @HAVE_DUP2@
-HAVE_DUP3 = @HAVE_DUP3@
-HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
-HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
-HAVE_FACCESSAT = @HAVE_FACCESSAT@
-HAVE_FCHDIR = @HAVE_FCHDIR@
-HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
-HAVE_FDATASYNC = @HAVE_FDATASYNC@
-HAVE_FEATURES_H = @HAVE_FEATURES_H@
-HAVE_FSYNC = @HAVE_FSYNC@
-HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
-HAVE_GETGROUPS = @HAVE_GETGROUPS@
-HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
-HAVE_GETLOGIN = @HAVE_GETLOGIN@
-HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
-HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GRANTPT = @HAVE_GRANTPT@
-HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
-HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
-HAVE_ISWBLANK = @HAVE_ISWBLANK@
-HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
-HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
-HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
-HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
-HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
-HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
-HAVE_LCHOWN = @HAVE_LCHOWN@
-HAVE_LINK = @HAVE_LINK@
-HAVE_LINKAT = @HAVE_LINKAT@
-HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
-HAVE_MBRLEN = @HAVE_MBRLEN@
-HAVE_MBRTOWC = @HAVE_MBRTOWC@
-HAVE_MBSINIT = @HAVE_MBSINIT@
-HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
-HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
-HAVE_MKDTEMP = @HAVE_MKDTEMP@
-HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
-HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
-HAVE_MKSTEMP = @HAVE_MKSTEMP@
-HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
-HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
-HAVE_OS_H = @HAVE_OS_H@
-HAVE_PIPE = @HAVE_PIPE@
-HAVE_PIPE2 = @HAVE_PIPE2@
-HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
-HAVE_PREAD = @HAVE_PREAD@
-HAVE_PTSNAME = @HAVE_PTSNAME@
-HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
-HAVE_PWRITE = @HAVE_PWRITE@
-HAVE_RANDOM = @HAVE_RANDOM@
-HAVE_RANDOM_H = @HAVE_RANDOM_H@
-HAVE_RANDOM_R = @HAVE_RANDOM_R@
-HAVE_READLINK = @HAVE_READLINK@
-HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALPATH = @HAVE_REALPATH@
-HAVE_RPMATCH = @HAVE_RPMATCH@
-HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
-HAVE_SETENV = @HAVE_SETENV@
-HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
-HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
-HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
-HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
-HAVE_SLEEP = @HAVE_SLEEP@
-HAVE_STDINT_H = @HAVE_STDINT_H@
-HAVE_STRTOD = @HAVE_STRTOD@
-HAVE_STRTOLL = @HAVE_STRTOLL@
-HAVE_STRTOULL = @HAVE_STRTOULL@
-HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
-HAVE_SYMLINK = @HAVE_SYMLINK@
-HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
-HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
-HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
-HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
-HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
-HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
-HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNLINKAT = @HAVE_UNLINKAT@
-HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
-HAVE_USLEEP = @HAVE_USLEEP@
-HAVE_VALGRIND = @HAVE_VALGRIND@
-HAVE_WCHAR_H = @HAVE_WCHAR_H@
-HAVE_WCHAR_T = @HAVE_WCHAR_T@
-HAVE_WCPCPY = @HAVE_WCPCPY@
-HAVE_WCPNCPY = @HAVE_WCPNCPY@
-HAVE_WCRTOMB = @HAVE_WCRTOMB@
-HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
-HAVE_WCSCAT = @HAVE_WCSCAT@
-HAVE_WCSCHR = @HAVE_WCSCHR@
-HAVE_WCSCMP = @HAVE_WCSCMP@
-HAVE_WCSCOLL = @HAVE_WCSCOLL@
-HAVE_WCSCPY = @HAVE_WCSCPY@
-HAVE_WCSCSPN = @HAVE_WCSCSPN@
-HAVE_WCSDUP = @HAVE_WCSDUP@
-HAVE_WCSLEN = @HAVE_WCSLEN@
-HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
-HAVE_WCSNCAT = @HAVE_WCSNCAT@
-HAVE_WCSNCMP = @HAVE_WCSNCMP@
-HAVE_WCSNCPY = @HAVE_WCSNCPY@
-HAVE_WCSNLEN = @HAVE_WCSNLEN@
-HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
-HAVE_WCSPBRK = @HAVE_WCSPBRK@
-HAVE_WCSRCHR = @HAVE_WCSRCHR@
-HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
-HAVE_WCSSPN = @HAVE_WCSSPN@
-HAVE_WCSSTR = @HAVE_WCSSTR@
-HAVE_WCSTOK = @HAVE_WCSTOK@
-HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
-HAVE_WCSXFRM = @HAVE_WCSXFRM@
-HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
-HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
-HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
-HAVE_WINT_T = @HAVE_WINT_T@
-HAVE_WMEMCHR = @HAVE_WMEMCHR@
-HAVE_WMEMCMP = @HAVE_WMEMCMP@
-HAVE_WMEMCPY = @HAVE_WMEMCPY@
-HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
-HAVE_WMEMSET = @HAVE_WMEMSET@
-HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
-HAVE__BOOL = @HAVE__BOOL@
-HAVE__EXIT = @HAVE__EXIT@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBDAP_VERSION = @LIBDAP_VERSION@
-LIBINTL = @LIBINTL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
-LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
-LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
-LOCALE_FR = @LOCALE_FR@
-LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
-LOCALE_JA = @LOCALE_JA@
-LOCALE_ZH_CN = @LOCALE_ZH_CN@
-LTLIBINTL = @LTLIBINTL@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
-LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
-NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
-NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
-NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
-NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
-NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
-NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
-NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
-NEXT_LOCALE_H = @NEXT_LOCALE_H@
-NEXT_STDDEF_H = @NEXT_STDDEF_H@
-NEXT_STDINT_H = @NEXT_STDINT_H@
-NEXT_STDLIB_H = @NEXT_STDLIB_H@
-NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
-NEXT_UNISTD_H = @NEXT_UNISTD_H@
-NEXT_WCHAR_H = @NEXT_WCHAR_H@
-NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_MAJOR_VERSION = @PACKAGE_MAJOR_VERSION@
-PACKAGE_MINOR_VERSION = @PACKAGE_MINOR_VERSION@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_SUBMINOR_VERSION = @PACKAGE_SUBMINOR_VERSION@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
-RANLIB = @RANLIB@
-REPLACE_BTOWC = @REPLACE_BTOWC@
-REPLACE_CALLOC = @REPLACE_CALLOC@
-REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
-REPLACE_CHOWN = @REPLACE_CHOWN@
-REPLACE_CLOSE = @REPLACE_CLOSE@
-REPLACE_DUP = @REPLACE_DUP@
-REPLACE_DUP2 = @REPLACE_DUP2@
-REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
-REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
-REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
-REPLACE_GETCWD = @REPLACE_GETCWD@
-REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
-REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
-REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
-REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
-REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
-REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
-REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
-REPLACE_LCHOWN = @REPLACE_LCHOWN@
-REPLACE_LINK = @REPLACE_LINK@
-REPLACE_LINKAT = @REPLACE_LINKAT@
-REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
-REPLACE_LSEEK = @REPLACE_LSEEK@
-REPLACE_MALLOC = @REPLACE_MALLOC@
-REPLACE_MBRLEN = @REPLACE_MBRLEN@
-REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
-REPLACE_MBSINIT = @REPLACE_MBSINIT@
-REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
-REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
-REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
-REPLACE_MBTOWC = @REPLACE_MBTOWC@
-REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
-REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
-REPLACE_NULL = @REPLACE_NULL@
-REPLACE_PREAD = @REPLACE_PREAD@
-REPLACE_PTSNAME = @REPLACE_PTSNAME@
-REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
-REPLACE_PUTENV = @REPLACE_PUTENV@
-REPLACE_PWRITE = @REPLACE_PWRITE@
-REPLACE_QSORT_R = @REPLACE_QSORT_R@
-REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
-REPLACE_READ = @REPLACE_READ@
-REPLACE_READLINK = @REPLACE_READLINK@
-REPLACE_READLINKAT = @REPLACE_READLINKAT@
-REPLACE_REALLOC = @REPLACE_REALLOC@
-REPLACE_REALPATH = @REPLACE_REALPATH@
-REPLACE_RMDIR = @REPLACE_RMDIR@
-REPLACE_SETENV = @REPLACE_SETENV@
-REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
-REPLACE_SLEEP = @REPLACE_SLEEP@
-REPLACE_STRTOD = @REPLACE_STRTOD@
-REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
-REPLACE_SYMLINK = @REPLACE_SYMLINK@
-REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
-REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
-REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
-REPLACE_UNLINK = @REPLACE_UNLINK@
-REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
-REPLACE_UNSETENV = @REPLACE_UNSETENV@
-REPLACE_USLEEP = @REPLACE_USLEEP@
-REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
-REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
-REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
-REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
-REPLACE_WCTOB = @REPLACE_WCTOB@
-REPLACE_WCTOMB = @REPLACE_WCTOMB@
-REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
-REPLACE_WRITE = @REPLACE_WRITE@
-SED = @SED@
-SERVERLIB_AGE = @SERVERLIB_AGE@
-SERVERLIB_CURRENT = @SERVERLIB_CURRENT@
-SERVERLIB_REVISION = @SERVERLIB_REVISION@
-SERVERLIB_VERSION = @SERVERLIB_VERSION@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
-SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
-STDBOOL_H = @STDBOOL_H@
-STDDEF_H = @STDDEF_H@
-STDINT_H = @STDINT_H@
-STRIP = @STRIP@
-UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
-UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
-UUID_LIBS = @UUID_LIBS@
-VERSION = @VERSION@
-WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
-WINT_T_SUFFIX = @WINT_T_SUFFIX@
-XML2_CFLAGS = @XML2_CFLAGS@
-XML2_LIBS = @XML2_LIBS@
-YACC = @YACC@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-curlprivatelibs = @curlprivatelibs@
-curlprivatereq = @curlprivatereq@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-lispdir = @lispdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-xmlprivatelibs = @xmlprivatelibs@
-xmlprivatereq = @xmlprivatereq@
-noinst_SCRIPTS = cleanup.sh
-EXTRA_DIST = cleanup.sh.in dodsrc dot.index dods_cache_init
-DISTCLEANFILES = cleanup.sh
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign unit-tests/cache-testsuite/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign unit-tests/cache-testsuite/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(SCRIPTS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	clean-local cscopelist-am ctags-am distclean distclean-generic \
-	distclean-libtool distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags-am uninstall uninstall-am
-
-
-cleanup.sh: cleanup.sh.in ../../config.status
-	sed -e "s%[@]srcdir[@]%${srcdir}%" $< > cleanup.sh
-	chmod +x cleanup.sh
-
-clean-local: cleanup.sh
-	sh ./cleanup.sh
-	rm -rf dods_cache
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/unit-tests/cache-testsuite/singleton_cache_init/.index b/unit-tests/cache-testsuite/singleton_cache_init/.index
new file mode 100644
index 0000000..e69de29
diff --git a/unit-tests/cache-testsuite/valgrind_suppressions.txt b/unit-tests/cache-testsuite/valgrind_suppressions.txt
new file mode 100644
index 0000000..c857e06
--- /dev/null
+++ b/unit-tests/cache-testsuite/valgrind_suppressions.txt
@@ -0,0 +1,12 @@
+
+# The contents of this file may be moot, but without it, valgrind returns 
+# an error and the cleanup.sh script here is not run, leading to failed tests.
+
+{
+   find
+   Memcheck:Leak
+   fun:malloc
+   obj:/usr/bin/find
+   ...
+}
+
diff --git a/unit-tests/chunked-io/test_big_binary_file.bin.chunked b/unit-tests/chunked-io/test_big_binary_file.bin.chunked
deleted file mode 100644
index c88ce78..0000000
Binary files a/unit-tests/chunked-io/test_big_binary_file.bin.chunked and /dev/null differ
diff --git a/unit-tests/chunked-io/test_big_binary_file.bin.plain b/unit-tests/chunked-io/test_big_binary_file.bin.plain
deleted file mode 100644
index 49c7ebb..0000000
Binary files a/unit-tests/chunked-io/test_big_binary_file.bin.plain and /dev/null differ
diff --git a/unit-tests/chunked-io/test_big_binary_file_2.bin.chunked b/unit-tests/chunked-io/test_big_binary_file_2.bin.chunked
deleted file mode 100644
index 918b688..0000000
Binary files a/unit-tests/chunked-io/test_big_binary_file_2.bin.chunked and /dev/null differ
diff --git a/unit-tests/chunked-io/test_big_binary_file_2.bin.plain b/unit-tests/chunked-io/test_big_binary_file_2.bin.plain
deleted file mode 100644
index b69a86d..0000000
Binary files a/unit-tests/chunked-io/test_big_binary_file_2.bin.plain and /dev/null differ
diff --git a/unit-tests/chunked-io/test_small_text_file.txt.chunked b/unit-tests/chunked-io/test_small_text_file.txt.chunked
deleted file mode 100644
index 98f9637..0000000
Binary files a/unit-tests/chunked-io/test_small_text_file.txt.chunked and /dev/null differ
diff --git a/unit-tests/chunked-io/test_small_text_file.txt.plain b/unit-tests/chunked-io/test_small_text_file.txt.plain
deleted file mode 100644
index 07efa5a..0000000
--- a/unit-tests/chunked-io/test_small_text_file.txt.plain
+++ /dev/null
@@ -1 +0,0 @@
-This is a small file
diff --git a/unit-tests/chunked-io/test_text_file.txt.chunked b/unit-tests/chunked-io/test_text_file.txt.chunked
deleted file mode 100644
index 8807482..0000000
Binary files a/unit-tests/chunked-io/test_text_file.txt.chunked and /dev/null differ
diff --git a/unit-tests/dds-testsuite/config/unix.exp b/unit-tests/dds-testsuite/config/unix.exp
deleted file mode 100644
index 1c5c786..0000000
--- a/unit-tests/dds-testsuite/config/unix.exp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-# Tcl/Expect code for the DDS test.
-
-# Make sure the global var DDSTEST is set correctly.
-
-global DDSTEST
-if ![info exists DDSTEST] then {
-    set DDSTEST [transform ./dds-test]
-}
-
-# The four required proc for dds-test.
-
-proc dds-test_start { options {ifile ""} {ofile ""}} {
-    global verbose
-    global DDSTEST
-    global comp_output
-    # spawn_id *MUST* be decalred as global for spawn to work in a proc!!
-    global spawn_id
-
-    if {$verbose >= 1} {
-	verbose "Starting ./$DDSTEST $options $ifile $ofile ...\n"
-	exp_internal 1
-    }
-
-    if {$ifile != ""} {
-	set ifile "< $ifile"
-    }
-
-    if {$ofile != ""} {
-	set ofile "> $ofile"
-    }
-
-    switch $options {
-	p {catch "exec $DDSTEST -p $ifile $ofile" comp_output}
-	s {spawn $DDSTEST -s}
-    }
-
-    if {$verbose >= 1} {
-	switch $options {
-	    p {send_user "Comp output:\n$comp_output\n"}
-	    s {send_user "Program running: spawn_id=$spawn_id\n"}
-	}
-    }
-}
-
-proc dds-test_load {} {
-}
-
-proc dds-test_exit {} {
-    send -raw ""
-}
-
-proc dds-test_version {} {
-    send_user "DDS testsuite version 1.2\n"
-}
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.1.exp b/unit-tests/dds-testsuite/dds-test.0/test.1.exp
deleted file mode 100644
index 47c2f86..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.1.exp
+++ /dev/null
@@ -1,51 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.1.exp,v $
-# Revision 1.4  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.3  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.2.38.1  2000/06/15 02:24:57  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.2  1996/05/14 15:41:32  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:25  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.1
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Byte b;
-    Int32 i;
-    Int32 j;
-} data1;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.10.exp b/unit-tests/dds-testsuite/dds-test.0/test.10.exp
deleted file mode 100644
index c428944..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.10.exp
+++ /dev/null
@@ -1,113 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.10.exp,v $
-# Revision 1.9  2003/05/16 00:15:57  jimg
-# Test changes because List has been removed from the DAP.
-#
-# Revision 1.8  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.7  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.6.6.1  2000/06/15 02:24:57  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.6  1999/04/29 02:29:39  jimg
-# Merge of no-gnu branch
-#
-# Revision 1.5  1997/03/27 18:20:07  jimg
-# Update for version 2.13
-#
-# Revision 1.4  1996/05/14 15:41:33  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.3  1995/12/06  21:58:47  jimg
-# Removed `List List' variables.
-#
-# Revision 1.2  1995/01/19  22:05:20  jimg
-# Fixed for new class hierarchy.
-#
-# Revision 1.1  1994/12/21  17:01:26  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.10
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Structure {
-        Int32 i;
-        Int32 j;
-    } test;
-    Sequence {
-        Int32 i;
-        Int32 j\[10\];
-    } test2;
-    Grid {
-     ARRAY:
-        Float64 f\[10\]\[10\];
-     MAPS:
-        Int32 g\[10\];
-        Int32 h\[10\];
-    } test4;
-    Sequence {
-        String name;
-        Int32 age;
-    } person;
-    Structure {
-        Int32 j;
-        Int32 i;
-        Structure {
-            Int32 i;
-            Float64 f\[10\];
-        } data;
-    } exp;
-    Grid {
-     ARRAY:
-        Float64 g\[10\]\[10\]\[10\];
-     MAPS:
-        Float64 lat\[10\];
-        Float64 lon\[10\];
-        Float64 weirdness\[10\];
-    } strange;
-} data6;"
-
-dds-test_start p $srcdir/$test_name
-
-#send_user "comp_output: $comp_output\n"
-#send_user "test_out: $test_out\n"
-#send_user "Result of compare: [string compare $test_out $comp_output]\n"
-#send_user "Length of test_out: [string length $test_out]\n"
-#send_user "Length of comp_output: [string length $comp_output]\n"
-#
-#set test_out [string trim $test_out]
-#set comp_output [string trim $comp_output]
-#
-#send_user "Result of compare: [string compare $test_out $comp_output]\n"
-#send_user "Length of test_out: [string length $test_out]\n"
-#send_user "Length of comp_output: [string length $comp_output]\n"
-#send_user "Result of first: [string first $test_out $comp_output]\n"
-#send_user "Result of last: [string last $test_out $comp_output]\n"
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.11.exp b/unit-tests/dds-testsuite/dds-test.0/test.11.exp
deleted file mode 100644
index a873cec..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.11.exp
+++ /dev/null
@@ -1,74 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.11.exp,v $
-# Revision 1.4  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.3  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.2.38.1  2000/06/15 02:24:57  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.2  1996/05/14 15:41:34  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:27  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.11
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Structure {
-        Int32 long_one;
-        Int32 long_two;
-        Int32 long_three;
-        Int32 long_four;
-        Int32 long_five;
-        Int32 long_six;
-        Float64 long_one_float;
-        Float64 long_two_float;
-        Float64 long_three_float;
-    } long_names_one;
-    Structure {
-        Int32 long_one_float1;
-        Int32 long_two_float1;
-        Int32 long_three_float3;
-        Int32 long_four;
-        Int32 long_five;
-        Int32 long_six;
-        Float64 long_one_float;
-        Float64 long_two_float;
-        Float64 long_three_float;
-    } long_names_one_and_a_half;
-    Structure {
-        Int32 a_very_long_name_given_what_it_accomplishes;
-        Int32 another_name_nearly_as_pointless;
-    } long_names_two;
-} long_identifier_test_data_set;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.12.exp b/unit-tests/dds-testsuite/dds-test.0/test.12.exp
deleted file mode 100644
index a30496d..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.12.exp
+++ /dev/null
@@ -1,53 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.12.exp,v $
-# Revision 1.5  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.4  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.3.38.1  2000/06/15 02:24:57  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.3  1996/05/14 15:41:35  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.2  1995/03/16  17:44:44  jimg
-# Fixed spaces in variable name printout.
-#
-# Revision 1.1  1994/12/21  17:01:28  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.12
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 i;
-    Float64 f\[latitude = 20\]\[longitude = 10\];
-} data5;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.13.exp b/unit-tests/dds-testsuite/dds-test.0/test.13.exp
deleted file mode 100644
index 87bd7c9..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.13.exp
+++ /dev/null
@@ -1,66 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.13.exp,v $
-# Revision 1.9  2002/05/23 01:29:05  jimg
-# Updated using code from C++.
-#
-# Revision 1.8  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.7  2000/09/22 02:52:59  jimg
-# Fixes to the tests to recognize some of the new error messages. Also,
-# the test drivers were modified to catch the exceptions now thrown by
-# some of the parsers.
-#
-# Revision 1.6  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.5.22.1  2000/06/15 02:24:57  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.5  1998/08/13 22:09:36  jimg
-# Fixed test after fixing misspelled error message.
-#
-# Revision 1.4  1997/03/27 18:20:08  jimg
-# Update for version 2.13
-#
-# Revision 1.3  1996/08/13 16:38:16  jimg
-# Fixed tests so that they match the output of the parser.
-#
-# Revision 1.2  1996/05/14 15:41:37  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:29  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.13
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "Error parsing the text on line 5 at or near: 10
-In the dataset descriptor object:
-Expected an array subscript.
-
-"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    xfail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.14.exp b/unit-tests/dds-testsuite/dds-test.0/test.14.exp
deleted file mode 100644
index 85304cf..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.14.exp
+++ /dev/null
@@ -1,48 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.14.exp,v $
-# Revision 1.4  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.3  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.2.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.2  1996/05/14 15:41:38  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:31  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.14
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-} data5;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.15.exp b/unit-tests/dds-testsuite/dds-test.0/test.15.exp
deleted file mode 100644
index ad6813f..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.15.exp
+++ /dev/null
@@ -1,54 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.15.exp,v $
-# Revision 1.3  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.2  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.1.10.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.1  1999/03/24 23:42:23  jimg
-# Added or updated for the new simple types (Int16, UInt16 and Float32)
-#
-# Revision 1.2  1996/05/14 15:41:38  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:31  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.15
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int16 x;
-    UInt16 y;
-    Float32 f;
-} data5;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.16.exp b/unit-tests/dds-testsuite/dds-test.0/test.16.exp
deleted file mode 100644
index 8d0c71b..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.16.exp
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Id$
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.16
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 i.x\[10\];
-    Int32 j.x\[20\];
-    Byte b.x;
-    String name.x;
-    Structure {
-        Float64 f;
-        Float64 g;
-        Float64 h.x;
-    } x;
-    Grid {
-     ARRAY:
-        Byte temp\[100\]\[7\];
-     MAPS:
-        Float64 steps\[100\];
-        String colors\[7\];
-    } oddTemp.y;
-} data2;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-# $Log: test.16.exp,v $
-# Revision 1.2  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.1  2000/08/16 18:30:22  jimg
-# Added tests for dots in variable names and fancier error messages
-#
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.17.exp b/unit-tests/dds-testsuite/dds-test.0/test.17.exp
deleted file mode 100644
index b36354a..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.17.exp
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Id$
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.17
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "Error parsing the text on line 8 at or near: Map
-In the dataset descriptor object: Expected a variable declaration
-(e.g., Int32 i;).
-"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    xfail "$test_name"
-}
-
-# $Log: test.17.exp,v $
-# Revision 1.5  2002/05/23 01:29:05  jimg
-# Updated using code from C++.
-#
-# Revision 1.3.4.2  2001/11/01 00:43:52  jimg
-# Fixes to the scanners and parsers so that dataset variable names may
-# start with digits. I've expanded the set of characters that may appear
-# in a variable name and made it so that all except `#' may appear at
-# the start. Some characters are not allowed in variables that appear in
-# a DDS or CE while they are allowed in the DAS. This makes it possible
-# to define containers with names like `COARDS:long_name.' Putting a colon
-# in a variable name makes the CE parser much more complex. Since the set
-# of characters that people want seems pretty limited (compared to the
-# complete ASCII set) I think this is an OK approach. If we have to open
-# up the expr.lex scanner completely, then we can but not without adding
-# lots of action clauses to teh parser. Note that colon is just an example,
-# there's a host of characters that are used in CEs that are not allowed
-# in IDs.
-#
-# Revision 1.4  2001/08/24 17:46:24  jimg
-# Resolved conflicts from the merge of release 3.2.6
-#
-# Revision 1.3.4.1  2001/06/23 00:52:32  jimg
-# Added tests for `#' in IDs.
-#
-# Revision 1.3  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.2  2000/09/22 02:52:59  jimg
-# Fixes to the tests to recognize some of the new error messages. Also,
-# the test drivers were modified to catch the exceptions now thrown by
-# some of the parsers.
-#
-# Revision 1.1  2000/08/16 18:30:22  jimg
-# Added tests for dots in variable names and fancier error messages
-#
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.18.exp b/unit-tests/dds-testsuite/dds-test.0/test.18.exp
deleted file mode 100644
index 4e74c07..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.18.exp
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Id$
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.18
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Grid {
-     ARRAY:
-        Byte temp\[100\]\[7\];
-     MAPS:
-        Float64 steps\[100\];
-        String colors\[7\];
-    } oddTemp;
-} 123;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-# $Log: test.18.exp,v $
-# Revision 1.2  2001/06/15 23:49:06  jimg
-# Merged with release-3-2-4.
-#
-# Revision 1.1.2.1  2001/05/08 19:11:50  jimg
-# Added test for integer dataset names.
-#
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.19.exp b/unit-tests/dds-testsuite/dds-test.0/test.19.exp
deleted file mode 100644
index 87ac9f7..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.19.exp
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Id$
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.19
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 a;
-    Int32 b%23c\[10\];
-    Float64 c%23d;
-    Grid {
-     ARRAY:
-        Byte Image%23data\[512\];
-     MAPS:
-        String colors\[512\];
-    } huh;
-} test.19;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-# $Log: test.19.exp,v $
-# Revision 1.2  2001/08/24 17:46:24  jimg
-# Resolved conflicts from the merge of release 3.2.6
-#
-# Revision 1.1.2.2  2001/07/28 01:12:28  jimg
-# Updated to work with the new escaping code. Some of our tests assumed
-# that dashes (-) were not OK in symbol names. However, changes in the
-# DAP parsers along with changes in the escaping functions now make this
-# possible.
-#
-# Revision 1.1.2.1  2001/06/23 00:52:32  jimg
-# Added tests for `#' in IDs.
-#
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.2.exp b/unit-tests/dds-testsuite/dds-test.0/test.2.exp
deleted file mode 100644
index b29032f..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.2.exp
+++ /dev/null
@@ -1,50 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.2.exp,v $
-# Revision 1.4  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.3  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.2.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.2  1996/05/14 15:41:39  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:32  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.2
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 i\[10\];
-    Int32 j\[20\];
-} data2;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.20.exp b/unit-tests/dds-testsuite/dds-test.0/test.20.exp
deleted file mode 100644
index 9aca215..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.20.exp
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Id$
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.20
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 a;
-    Grid {
-     ARRAY:
-        Byte Image%23data\[size*10 = 512\];
-     MAPS:
-        String colors\[size*10 = 512\];
-    } huh;
-} test.20;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-# $Log: test.20.exp,v $
-# Revision 1.2  2003/01/10 19:46:43  jimg
-# Merged with code tagged release-3-2-10 on the release-3-2 branch. In many
-# cases files were added on that branch (so they appear on the trunk for
-# the first time).
-#
-# Revision 1.1.2.2  2002/06/11 00:39:01  jimg
-# Fixed...
-#
-# Revision 1.1.2.1  2002/06/11 00:38:06  jimg
-# Added
-#
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.3.exp b/unit-tests/dds-testsuite/dds-test.0/test.3.exp
deleted file mode 100644
index b69f043..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.3.exp
+++ /dev/null
@@ -1,50 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.3.exp,v $
-# Revision 1.4  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.3  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.2.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.2  1996/05/14 15:41:42  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.1  1994/12/21  17:01:33  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.3
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 i\[10\];
-    Float64 f\[20\];
-} data3;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.4.exp b/unit-tests/dds-testsuite/dds-test.0/test.4.exp
deleted file mode 100644
index d13738d..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.4.exp
+++ /dev/null
@@ -1,58 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.4.exp,v $
-# Revision 1.6  2003/05/16 00:15:57  jimg
-# Test changes because List has been removed from the DAP.
-#
-# Revision 1.5  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.4  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.3.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.3  1996/05/14 15:41:43  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.2  1995/01/19  22:05:21  jimg
-# Fixed for new class hierarchy.
-#
-# Revision 1.1  1994/12/21  17:01:34  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.4
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Int32 i;
-    Byte b;
-    String s;
-    Url u;
-} data4;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.6.exp b/unit-tests/dds-testsuite/dds-test.0/test.6.exp
deleted file mode 100644
index c40782e..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.6.exp
+++ /dev/null
@@ -1,58 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.6.exp,v $
-# Revision 1.6  2003/05/16 00:15:57  jimg
-# Test changes because List has been removed from the DAP.
-#
-# Revision 1.5  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.4  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.3.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.3  1996/05/14 15:41:46  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.2  1995/12/06  21:58:50  jimg
-# Removed `List List' variables.
-#
-# Revision 1.1  1994/12/21  17:01:37  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.6
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Structure {
-        Int32 j;
-        Int32 i;
-    } exp;
-} data6;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.7.exp b/unit-tests/dds-testsuite/dds-test.0/test.7.exp
deleted file mode 100644
index e9197eb..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.7.exp
+++ /dev/null
@@ -1,65 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.7.exp,v $
-# Revision 1.7  2003/05/16 00:15:57  jimg
-# Test changes because List has been removed from the DAP.
-#
-# Revision 1.6  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.5  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.4.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.4  1996/05/14 15:41:47  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.3  1995/12/06  21:58:51  jimg
-# Removed `List List' variables.
-#
-# Revision 1.2  1995/01/19  22:05:23  jimg
-# Fixed for new class hierarchy.
-#
-# Revision 1.1  1994/12/21  17:01:39  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.7
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Structure {
-        Int32 j;
-        Int32 i;
-        Structure {
-            Int32 i;
-            Float64 f\[10\];
-        } data;
-    } exp;
-} data6;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.8.exp b/unit-tests/dds-testsuite/dds-test.0/test.8.exp
deleted file mode 100644
index 87af129..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.8.exp
+++ /dev/null
@@ -1,69 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.8.exp,v $
-# Revision 1.7  2003/05/16 00:15:57  jimg
-# Test changes because List has been removed from the DAP.
-#
-# Revision 1.6  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.5  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.4.38.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.4  1996/05/14 15:41:49  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.3  1995/12/06  21:58:54  jimg
-# Removed `List List' variables.
-#
-# Revision 1.2  1995/01/19  22:05:24  jimg
-# Fixed for new class hierarchy.
-#
-# Revision 1.1  1994/12/21  17:01:40  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.8
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Sequence {
-        String name;
-        Int32 age;
-    } person;
-    Structure {
-        Int32 j;
-        Int32 i;
-        Structure {
-            Int32 i;
-            Float64 f\[10\];
-        } data;
-    } exp;
-} data6;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/dds-test.0/test.9.exp b/unit-tests/dds-testsuite/dds-test.0/test.9.exp
deleted file mode 100644
index 0e6d098..0000000
--- a/unit-tests/dds-testsuite/dds-test.0/test.9.exp
+++ /dev/null
@@ -1,80 +0,0 @@
-# expect/tcl code to test the dds parser and scanner
-# jhrg
-#
-# $Log: test.9.exp,v $
-# Revision 1.8  2003/05/16 00:15:57  jimg
-# Test changes because List has been removed from the DAP.
-#
-# Revision 1.7  2000/10/03 22:18:04  jimg
-# Fixes to the tests to accomodate debugging fixes in DDS.cc
-#
-# Revision 1.6  2000/06/16 18:15:01  jimg
-# Merged with 3.1.7
-#
-# Revision 1.5.2.1  2000/06/15 02:24:58  jimg
-# Fixed the tests: problems with PATH, etc. broke the tests on my new machine
-#
-# Revision 1.5  1999/07/22 17:08:17  jimg
-# *** empty log message ***
-#
-# Revision 1.4  1996/05/14 15:41:50  jimg
-# These changes have already been checked in once before. However, I
-# corrupted the source repository and restored it from a 5/9/96 backup
-# tape. The previous version's log entry should cover the changes.
-#
-# Revision 1.3  1995/12/06  21:58:55  jimg
-# Removed `List List' variables.
-#
-# Revision 1.2  1995/01/19  22:05:25  jimg
-# Fixed for new class hierarchy.
-#
-# Revision 1.1  1994/12/21  17:01:41  jimg
-# Added these to the testsuite.
-#
-
-global comp_output		# contains output from dds-test_start
-global verbose			# this and srcdir are set by runtest.exp
-global srcdir
-
-# The variable `test_name' is the name of the das input file for this test.
-
-set test_name test.9
-
-# The variable `test_out' is a string that contains the text that should be
-# stored in comp_output by das-test_start. The two strings should match
-# exactly.
-
-set test_out "DDS past semantic check
-DDS past full semantic check
-Dataset {
-    Sequence {
-        String name;
-        Int32 age;
-    } person;
-    Structure {
-        Int32 j;
-        Int32 i;
-        Structure {
-            Int32 i;
-            Float64 f\[10\];
-        } data;
-    } exp;
-    Grid {
-     ARRAY:
-        Float64 g\[10\]\[10\]\[10\];
-     MAPS:
-        Float64 lat\[10\];
-        Float64 lon\[10\];
-        Float64 weirdness\[10\];
-    } strange;
-} data6;"
-
-dds-test_start p $srcdir/$test_name
-
-if ![string compare $test_out $comp_output] { # check comp_output
-    pass "$test_name"
-} else {
-    fail "$test_name"
-}
-
-
diff --git a/unit-tests/dds-testsuite/sequence.1.dds b/unit-tests/dds-testsuite/sequence.1.dds
new file mode 100644
index 0000000..0d81651
--- /dev/null
+++ b/unit-tests/dds-testsuite/sequence.1.dds
@@ -0,0 +1,6 @@
+dataset {
+    Sequence {
+	    String name;
+	    Int32 age;
+    } person;
+} data6;
diff --git a/unit-tests/dds-testsuite/test.1.attr.dmr b/unit-tests/dds-testsuite/test.1.attr.dmr
index d0dc48e..770502c 100644
--- a/unit-tests/dds-testsuite/test.1.attr.dmr
+++ b/unit-tests/dds-testsuite/test.1.attr.dmr
@@ -9,7 +9,7 @@
         <Attribute name="long_name" type="String">
             <Value>int32_i</Value>
         </Attribute>
-        <Attribute name="scale_factor" type="Byte">
+        <Attribute name="scale_factor" type="Float32">
             <Value>1.2</Value>
         </Attribute>
         <Attribute name="coefs" type="Int32">
diff --git a/unit-tests/fdiostream.txt b/unit-tests/fdiostream.txt
new file mode 100755
index 0000000..24b55e3
--- /dev/null
+++ b/unit-tests/fdiostream.txt
@@ -0,0 +1 @@
+Output from fdiostream
\ No newline at end of file
diff --git a/unit-tests/fdiostreamTest.cc b/unit-tests/fdiostreamTest.cc
new file mode 100644
index 0000000..ac49365
--- /dev/null
+++ b/unit-tests/fdiostreamTest.cc
@@ -0,0 +1,344 @@
+
+// -*- mode: c++; c-basic-offset:4 -*-
+
+// This file is part of libdap, A C++ implementation of the OPeNDAP Data
+// Access Protocol.
+
+// Copyright (c) 2009 OPeNDAP, Inc.
+// Author: James Gallagher <jgallagher at opendap.org>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
+
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+//#define DODS_DEBUG
+
+#include <fcntl.h>
+#include <stdio.h>
+
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#include "fdiostream.h"
+#include "test_config.h"
+#include "debug.h"
+
+using namespace std;
+using namespace CppUnit;
+using namespace libdap;
+
+
+class fdiostreamTest: public TestFixture {
+private:
+    string fdiostream_txt ;
+    string ff_test1_data ;
+public:
+    fdiostreamTest()
+    {
+	//data = "Output from fdiostream";
+    }
+    ~fdiostreamTest()
+    {
+    }
+
+    void setUp()
+    {
+	fdiostream_txt = (string)TEST_SRC_DIR + "/fdiostream.txt" ;
+	ff_test1_data = (string)TEST_SRC_DIR
+			+ "/server-testsuite/ff_test1_ce1.data" ;
+    }
+
+    void tearDown()
+    {
+    }
+
+    CPPUNIT_TEST_SUITE(fdiostreamTest);
+
+    CPPUNIT_TEST(write_file);
+    CPPUNIT_TEST(read_test);
+    CPPUNIT_TEST(readsome_test);
+    CPPUNIT_TEST(readsome_test2);
+    CPPUNIT_TEST(read_strings);
+#if 1
+    CPPUNIT_TEST(read_test_file_ptr);
+    CPPUNIT_TEST(read_test_file_ptr_2);
+    CPPUNIT_TEST(read_test_unget_file_descriptor);
+    CPPUNIT_TEST(read_test_unget_file_ptr);
+    CPPUNIT_TEST(large_read_test);
+    CPPUNIT_TEST(large_read_test_file_pointer);
+#endif
+    CPPUNIT_TEST_SUITE_END();
+
+    void write_file()
+    {
+	int fd = open("tmp.txt", O_WRONLY | O_CREAT | O_TRUNC, 0777);
+	CPPUNIT_ASSERT( "write_file open tmp.txt" && fd != -1 ) ;
+	fdostream out(fd);
+	out << "Output from fdiostream";
+	out.flush();
+	close(fd);
+
+	// now read and compare to the baseline
+
+	ifstream ifs("tmp.txt");
+
+	char buf[1024];
+	int num = ifs.readsome(buf, 1023);
+	buf[num] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == "Output from fdiostream");
+    }
+
+    void read_test()
+    {
+	int fd = open(fdiostream_txt.c_str(), O_RDONLY);
+	CPPUNIT_ASSERT( "read_test open fdiostream.txt" && fd != -1 ) ;
+	fdistream in(fd, true);
+
+	char buf[1024];
+	in.read(buf, 1023);
+	streamsize num = in.gcount();
+	DBG(cerr << "num: " << num << endl);
+	buf[num] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == "Output from fdiostream");
+    }
+
+    // readsome() is designed to work with terminals and the like. It returns
+    // only characters in the stream's buffer and does not initiate a read
+    // from the underlying input source. So, unless some other call is used
+    // to fill the buffer, readsome() returns zero. See the next test for
+    // more info.
+    void readsome_test()
+    {
+	int fd = open(fdiostream_txt.c_str(), O_RDONLY);
+	CPPUNIT_ASSERT( "readsome_test open fdiostream.txt" && fd != -1 ) ;
+	fdistream in(fd, true);
+
+	char buf[1024];
+	int num = in.readsome(buf, 1023);
+	DBG(cerr << "num: " << num << endl);
+	buf[num] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(num == 0);
+    }
+
+    // In this test, get() is used to get one character from the input source
+    // and readsome() is used to read teh remaining chars. This works inpart
+    // because the input buffer is bigger than the input, so the initial call
+    // to get() triggers a read in underflow that grabs all the characters.
+    // Given that the stream's input buffer has them all, readsome() returns
+    // them.
+    void readsome_test2()
+    {
+	int fd = open(fdiostream_txt.c_str(), O_RDONLY);
+	CPPUNIT_ASSERT( "readsome_test2 open fdiostream.txt" && fd != -1 ) ;
+	fdistream in(fd, true);
+
+	char buf[1024];
+	buf[0] = in.get();
+	int num = in.readsome(buf+1, 1023);
+	DBG(cerr << "num: " << num << endl);
+	buf[num+1] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == "Output from fdiostream");
+    }
+
+    void read_strings()
+    {
+	int fd = open(fdiostream_txt.c_str(), O_RDONLY);
+	CPPUNIT_ASSERT( "read_strings open fdiostream.txt" && fd != -1 ) ;
+	fdistream in(fd, true);
+
+	// Strings read as space-separated tokens
+	string test;
+	in >> test;
+	DBG(cerr << "test: " << test << endl);
+	CPPUNIT_ASSERT(test == "Output");
+
+	in >> test;
+	DBG(cerr << "test: " << test << endl);
+	CPPUNIT_ASSERT(test == "from");
+
+	in >> test;
+	DBG(cerr << "test: " << test << endl);
+	CPPUNIT_ASSERT(test == "fdiostream");
+    }
+
+    // first read from the FILE * and then read the remaining using fdistream
+    // This is sort of a degenerate case; it's much better to use fpistream
+    // than to hack fdistream, but I'm including this test just a reminder of
+    // how the file descriptor can be reset to counter the buffering done by
+    // FILE pointers.
+    void read_test_file_ptr()
+    {
+	FILE *fp = fopen(fdiostream_txt.c_str(), "r");
+	CPPUNIT_ASSERT( "read_test_file_ptr fopen fdiostream.txt" && fp != NULL ) ;
+	char word[7];
+	int num = fread(&word[0], 1, 6, fp);
+	word[6] = '\0';
+	DBG(cerr << "first word (" << num << "): " << word << endl);
+	CPPUNIT_ASSERT(string(word) == "Output");
+
+	int pos = ftell(fp);
+	int fd = fileno(fp);
+	if (lseek(fd, pos, SEEK_SET) < 0)
+	    DBG(cerr << "lseek error: Could not seek to " << pos << endl);
+
+	fdistream in(fd, true);
+	char buf[1024];
+	in.read(buf, 1023);
+	streamsize size = in.gcount();
+	DBG(cerr << "size: " << size << endl);
+	buf[size] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == " from fdiostream");
+    }
+
+    // now test FILE*s using fpistream (not fd...)
+    void read_test_file_ptr_2()
+    {
+	FILE *fp = fopen(fdiostream_txt.c_str(), "r");
+	CPPUNIT_ASSERT( "read_test_file_ptr_2 fopen fdiostream.txt" && fp != NULL ) ;
+	char word[7];
+	int num = fread(&word[0], 1, 6, fp);
+	word[6] = '\0';
+	DBG(cerr << "first word (" << num << "): " << word << endl);
+	CPPUNIT_ASSERT(string(word) == "Output");
+
+	fpistream in(fp, true);
+
+	char buf[1024];
+	in.read(buf, 1023);
+	streamsize size = in.gcount();
+	DBG(cerr << "size: " << size << endl);
+	buf[size] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == " from fdiostream");
+    }
+
+    void read_test_unget_file_descriptor()
+    {
+	int fd = open(fdiostream_txt.c_str(), O_RDONLY);
+	CPPUNIT_ASSERT( "read_test_unget_file_descriptor open fdiostream.txt" && fd != -1 ) ;
+	fdistream in(fd, true);
+
+	string test;
+	in >> test;
+	CPPUNIT_ASSERT(test == "Output");
+
+	for (int i = 0; i < 6; ++i)
+	    in.unget();
+
+	char buf[1024];
+	in.read(buf, 1023);
+	streamsize num = in.gcount();
+	DBG(cerr << "num: " << num << endl);
+	buf[num] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == "Output from fdiostream");
+    }
+
+    void read_test_unget_file_ptr()
+    {
+	FILE *fp = fopen(fdiostream_txt.c_str(), "r");
+	CPPUNIT_ASSERT( "read_test_unget_file_ptr open fdiostream.txt" && fp != NULL ) ;
+	fpistream in(fp, true);
+
+	string test;
+	in >> test;
+	CPPUNIT_ASSERT(test == "Output");
+
+	for (int i = 0; i < 6; ++i)
+	    in.unget();
+
+	char buf[1024];
+	in.read(buf, 1023);
+	streamsize size = in.gcount();
+	DBG(cerr << "size: " << size << endl);
+	buf[size] = '\0';
+	DBG(cerr << "buf: " << buf << endl);
+
+	CPPUNIT_ASSERT(string(buf) == "Output from fdiostream");
+    }
+
+    void large_read_test()
+    {
+	int fd = open(ff_test1_data.c_str(), O_RDONLY);
+	CPPUNIT_ASSERT( "large_read_test open server-testsuite/ff_test1_ce1.data" && fd != -1 ) ;
+	fdistream in(fd, true);
+
+	char buf[55000]; // actual size 54,351 characters/bytes
+	in.read(buf, 55000);
+	streamsize num = in.gcount();
+	DBG(cerr << "num: " << num << endl);
+	CPPUNIT_ASSERT(num == 54351);
+	DBG(cerr << "buf: " << buf << endl);
+
+	buf[9] = '\0';
+	CPPUNIT_ASSERT(string(buf) == "The data:");
+
+	buf[num-2] = '\0'; // ends with CR NL
+	DBG(cerr << "End of buf: '" << string(buf + num - 13) << "'" << endl);
+	CPPUNIT_ASSERT(string(buf + num - 13) == "{ 1995 } };");
+    }
+
+    void large_read_test_file_pointer()
+    {
+	FILE *fp = fopen(ff_test1_data.c_str(), "r");
+	CPPUNIT_ASSERT( "large_read_test_file_pointer open server-testsuite/ff_test1_ce1.data" && fp != NULL ) ;
+	fpistream in(fp, true);
+
+	char buf[55000]; // actual size 54,351 characters/bytes
+	in.read(buf, 55000);
+	streamsize num = in.gcount();
+	DBG(cerr << "num: " << num << endl);
+	CPPUNIT_ASSERT(num == 54351);
+	DBG(cerr << "buf: " << buf << endl);
+
+	buf[9] = '\0';
+	CPPUNIT_ASSERT(string(buf) == "The data:");
+
+	buf[num-2] = '\0'; // ends with CR NL
+	DBG(cerr << "End of buf: '" << string(buf + num - 13) << "'" << endl);
+	CPPUNIT_ASSERT(string(buf + num - 13) == "{ 1995 } };");
+    }
+
+
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION(fdiostreamTest);
+
+int main(int, char*[])
+{
+    CppUnit::TextTestRunner runner;
+    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+
+    bool wasSuccessful = runner.run("", false);
+
+    return wasSuccessful ? 0 : 1;
+}
diff --git a/unit-tests/generalUtilTest.cc b/unit-tests/generalUtilTest.cc
index 256136c..a1c3a2d 100644
--- a/unit-tests/generalUtilTest.cc
+++ b/unit-tests/generalUtilTest.cc
@@ -265,7 +265,7 @@ CPPUNIT_TEST_SUITE(generalUtilTest);
         DBG(cerr << "XXX" << unescattr("\\\"attr") << "XXX" << endl);
         CPPUNIT_ASSERT(unescattr("\\\"attr") == "\"attr");
 
-        char A_200_177[4] = { 128, 127, 'A', '\0' };
+        char A_200_177[4] = { (char)128, 127, 'A', '\0' };
         DBG(cerr << "XXX" << unescattr("\\200\\177A") << "XXX" << endl);
         CPPUNIT_ASSERT(unescattr("\\200\\177A") == string(A_200_177));
 
diff --git a/unit-tests/osx_10.9_leaks.txt b/unit-tests/osx_10.9_leaks.txt
new file mode 100644
index 0000000..6d4d982
--- /dev/null
+++ b/unit-tests/osx_10.9_leaks.txt
@@ -0,0 +1,131 @@
+{
+   AllocateObject2
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:calloc
+   fun:class_createInstance
+   fun:__CFAllocateObject2
+}
+{
+   class_createInstance
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:calloc
+   fun:class_createInstance
+}
+{
+   NXHashInsert
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:malloc_zone_calloc
+   fun:NXHashInsert
+}
+{
+   read_images
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:malloc_zone_realloc
+   fun:_ZL29addUnattachedCategoryForClassP10category_tP10objc_classP12_header_info
+   fun:_read_images
+}
+{
+   NSAllocateObject
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:calloc
+   fun:class_createInstance
+   fun:NSAllocateObject
+}
+{
+   CFBasicHashCreate
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc_zone_malloc
+   fun:_CFRuntimeCreateInstance
+   fun:CFBasicHashCreate
+}
+{
+   xmlNewRMutex
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc
+   fun:xmlNewRMutex
+}
+{
+   _CFRuntimeCreateInstance
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc_zone_malloc
+   fun:_CFRuntimeCreateInstance
+}
+{
+   _read_images
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:malloc_zone_realloc
+   fun:_ZL29addUnattachedCategoryForClassP10category_tP10objc_classP12_header_info
+   fun:_read_images
+}
+{
+   load_images
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc
+   fun:__NSSetCStringCharToUnichar
+   fun:_NSInitializePlatform
+   fun:call_load_methods
+   fun:load_images
+}
+{
+   xmlInitCharEncodingHandlers
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc
+   fun:xmlInitCharEncodingHandlers
+}
+{
+   NXCreateMapTableFromZone
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:malloc_zone_malloc
+   fun:NXCreateMapTableFromZone
+}
+{
+   fwrite
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc
+   fun:__smakebuf
+   fun:__swsetup
+   fun:__sfvwrite
+   fun:fwrite
+}
+{
+   atexit_register
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc
+   fun:atexit_register
+}
+{
+   NXMapInsert
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:malloc_zone_malloc
+   fun:_ZL12_NXMapRehashP11_NXMapTable
+   fun:NXMapInsert
+}
+{
+   DenseMapInfo
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc_zone_malloc
+   fun:_ZN4objc8DenseMapIP11objc_objectmLb1ENS_12DenseMapInfoIS2_EEE4growEj
+}
+{
+   xmlNewMutex
+   Memcheck:Leak
+   match-leak-kinds: definite
+   fun:malloc
+   fun:xmlNewMutex
+}
diff --git a/unit-tests/test_config.h b/unit-tests/test_config.h
deleted file mode 100644
index 196e91c..0000000
--- a/unit-tests/test_config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef E_test_config_h
-#define E_test_config_h
-
-#define TEST_SRC_DIR "/Users/jimg/src/opendap/hyrax_git/libdap4/unit-tests"
-
-#endif
-
diff --git a/util.cc b/util.cc
index d56813b..b7c4a4a 100644
--- a/util.cc
+++ b/util.cc
@@ -100,7 +100,7 @@ bool is_host_big_endian()
 
 #else
 
-#ifdef WORDS_BIGENDIAN
+#if WORDS_BIGENDIAN
     return true;
 #else
     return false;
@@ -331,6 +331,9 @@ template<class T> static void extract_double_array_helper(Array * a, vector<doub
  * array using 'new double[n]' so delete[] MUST be used when you are done
  * the data.
  *
+ * @note Before you call this function, you must call read on the array,
+ * or load the array with values and set the read_p property.
+ *
  * @note Support added for DAP4.
  * @param a Extract value from this Array.
  * @param dest Put the values in this vector. A value-result parameter.
@@ -346,7 +349,7 @@ void extract_double_array(Array *a, vector<double> &dest)
         throw Error(malformed_expr, "The function requires a DAP numeric-type array argument.");
 
     if (!a->read_p())
-        throw InternalErr(__FILE__, __LINE__, string("The Array '") + a->name() + "'does not contain values.");
+        throw InternalErr(__FILE__, __LINE__, string("The Array '") + a->name() + "' does not contain values.");
 
     dest.resize(a->length());
 
@@ -1220,14 +1223,14 @@ string open_temp_fstream(ofstream &f, const string &name_template, const string
     // Use mkstemp to make and open the temp file atomically
     int tmpfile = mkstemps(&name[0], suffix.length());
     if (tmpfile == -1)
-        throw Error("Could not make a temporary file.");
+        throw Error(internal_error, "Could not make a temporary file.");
     // Open the file using C++ ofstream; get a C++ fstream object
     f.open(&name[0]);
     // Close the file descriptor; the file stays open because of the fstream object
     close(tmpfile);
     // Now test that the fstream object is valid
     if (f.fail())
-        throw Error("Could not make a temporary file.");
+        throw Error(internal_error, "Could not make a temporary file.");
 
     return string(&name[0]);
 }
diff --git a/win32/gl/Makefile.am b/win32/gl/Makefile.am
new file mode 100644
index 0000000..7b2eb6b
--- /dev/null
+++ b/win32/gl/Makefile.am
@@ -0,0 +1,417 @@
+## DO NOT EDIT! GENERATED AUTOMATICALLY!
+## Process this file with automake to produce Makefile.in.
+# Copyright (C) 2004-2007 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=gl/doc --aux-dir=conf --lgpl --libtool --macro-prefix=gl regex
+
+AUTOMAKE_OPTIONS = 1.5 gnits
+
+noinst_HEADERS =
+noinst_LIBRARIES =
+noinst_LTLIBRARIES =
+EXTRA_DIST =
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+AM_CPPFLAGS =
+
+noinst_LTLIBRARIES += libgnu.la
+
+libgnu_la_SOURCES =
+libgnu_la_LIBADD = $(gl_LTLIBOBJS)
+libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS)
+EXTRA_libgnu_la_SOURCES =
+libgnu_la_LDFLAGS = $(AM_LDFLAGS)
+
+## begin gnulib module absolute-header
+
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
+
+## end   gnulib module absolute-header
+
+## begin gnulib module alloca
+
+
+EXTRA_DIST += alloca.c
+
+EXTRA_libgnu_la_SOURCES += alloca.c
+
+libgnu_la_LIBADD += @LTALLOCA@
+libgnu_la_DEPENDENCIES += @LTALLOCA@
+## end   gnulib module alloca
+
+## begin gnulib module alloca-opt
+
+BUILT_SOURCES += $(ALLOCA_H)
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+alloca.h: alloca_.h
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  cat $(srcdir)/alloca_.h; \
+	} > $@-t
+	mv -f $@-t $@
+MOSTLYCLEANFILES += alloca.h alloca.h-t
+
+EXTRA_DIST += alloca_.h
+
+## end   gnulib module alloca-opt
+
+## begin gnulib module configmake
+
+# Retrieve values of the variables through 'configure' followed by
+# 'make', not directly through 'configure', so that a user who
+# sets some of these variables consistently on the 'make' command
+# line gets correct results.
+#
+# One advantage of this approach, compared to the classical
+# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+# is that it protects against the use of undefined variables.
+# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+# defined by this module, and code using LIBDIR gives a
+# compilation error.
+#
+# Another advantage is that 'make' output is shorter.
+#
+# Listed in the same order as the GNU makefile conventions.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  echo '#define PREFIX "$(prefix)"'; \
+	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+	  echo '#define BINDIR "$(bindir)"'; \
+	  echo '#define SBINDIR "$(sbindir)"'; \
+	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+	  echo '#define DATADIR "$(datadir)"'; \
+	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+	  echo '#define INCLUDEDIR "$(includedir)"'; \
+	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+	  echo '#define DOCDIR "$(docdir)"'; \
+	  echo '#define INFODIR "$(infodir)"'; \
+	  echo '#define HTMLDIR "$(htmldir)"'; \
+	  echo '#define DVIDIR "$(dvidir)"'; \
+	  echo '#define PDFDIR "$(pdfdir)"'; \
+	  echo '#define PSDIR "$(psdir)"'; \
+	  echo '#define LIBDIR "$(libdir)"'; \
+	  echo '#define LISPDIR "$(lispdir)"'; \
+	  echo '#define LOCALEDIR "$(localedir)"'; \
+	  echo '#define MANDIR "$(mandir)"'; \
+	  echo '#define MANEXT "$(manext)"'; \
+	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+	} | sed '/""/d' > $@-t
+	mv $@-t $@
+BUILT_SOURCES += configmake.h
+CLEANFILES += configmake.h configmake.h-t
+
+## end   gnulib module configmake
+
+## begin gnulib module gettext-h
+
+libgnu_la_SOURCES += gettext.h
+
+## end   gnulib module gettext-h
+
+## begin gnulib module link-warning
+
+LINK_WARNING_H=$(top_srcdir)/conf/link-warning.h
+
+EXTRA_DIST += $(top_srcdir)/conf/link-warning.h
+
+## end   gnulib module link-warning
+
+## begin gnulib module localcharset
+
+libgnu_la_SOURCES += localcharset.h localcharset.c
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+install-exec-local: all-local
+	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+	if test -f $(charset_alias); then \
+	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	  rm -f $(charset_tmp) ; \
+	else \
+	  if test $(GLIBC21) = no; then \
+	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+	    rm -f $(charset_tmp) ; \
+	  fi ; \
+	fi
+
+uninstall-local: all-local
+	if test -f $(charset_alias); then \
+	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+	      > /dev/null; then \
+	    rm -f $(charset_alias); \
+	  else \
+	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+	  fi; \
+	  rm -f $(charset_tmp); \
+	fi
+
+charset.alias: config.charset
+	rm -f t-$@ $@
+	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+	mv t-$@ $@
+
+SUFFIXES += .sed .sin
+.sin.sed:
+	rm -f t-$@ $@
+	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+	mv t-$@ $@
+
+CLEANFILES += charset.alias ref-add.sed ref-del.sed
+
+EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+
+## end   gnulib module localcharset
+
+## begin gnulib module malloc
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_la_SOURCES += malloc.c
+
+## end   gnulib module malloc
+
+## begin gnulib module malloc-posix
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_la_SOURCES += malloc.c
+
+## end   gnulib module malloc-posix
+
+## begin gnulib module regex
+
+
+EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c
+
+EXTRA_libgnu_la_SOURCES += regcomp.c regex.c regex_internal.c regexec.c
+
+## end   gnulib module regex
+
+## begin gnulib module stdbool
+
+BUILT_SOURCES += $(STDBOOL_H)
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+stdbool.h: stdbool_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+
+EXTRA_DIST += stdbool_.h
+
+## end   gnulib module stdbool
+
+## begin gnulib module stdint
+
+BUILT_SOURCES += $(STDINT_H)
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+stdint.h: stdint_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+	      < $(srcdir)/stdint_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdint.h stdint.h-t
+
+EXTRA_DIST += stdint_.h
+
+## end   gnulib module stdint
+
+## begin gnulib module stdlib
+
+BUILT_SOURCES += stdlib.h
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+	      -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+	      -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+	      -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+	      -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	      < $(srcdir)/stdlib_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdlib.h stdlib.h-t
+
+EXTRA_DIST += stdlib_.h
+
+## end   gnulib module stdlib
+
+## begin gnulib module unistd
+
+BUILT_SOURCES += unistd.h
+
+# We need the following in order to create an empty placeholder for
+# <unistd.h> when the system doesn't have one.
+unistd.h: unistd_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+	      -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+	      < $(srcdir)/unistd_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += unistd.h unistd.h-t
+
+EXTRA_DIST += unistd_.h
+
+## end   gnulib module unistd
+
+## begin gnulib module wchar
+
+BUILT_SOURCES += $(WCHAR_H)
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+	      -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	    < $(srcdir)/wchar_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += wchar.h wchar.h-t
+
+EXTRA_DIST += wchar_.h
+
+## end   gnulib module wchar
+
+## begin gnulib module wctype
+
+BUILT_SOURCES += $(WCTYPE_H)
+
+# We need the following in order to create <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype_.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+	      < $(srcdir)/wctype_.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += wctype.h wctype.h-t
+
+EXTRA_DIST += wctype_.h
+
+## end   gnulib module wctype
+
+
+mostlyclean-local: mostlyclean-generic
+	@for dir in '' $(MOSTLYCLEANDIRS); do \
+	  if test -n "$$dir" && test -d $$dir; then \
+	    echo "rmdir $$dir"; rmdir $$dir; \
+	  fi; \
+	done; \
+	:
diff --git a/win32/gl/alloca.c b/win32/gl/alloca.c
new file mode 100644
index 0000000..f9e1ce7
--- /dev/null
+++ b/win32/gl/alloca.c
@@ -0,0 +1,489 @@
+/* alloca.c -- allocate automatically reclaimed memory
+   (Mostly) portable public-domain implementation -- D A Gwyn
+
+   This implementation of the PWB library alloca function,
+   which is used to allocate space off the run-time stack so
+   that it is automatically reclaimed upon procedure exit,
+   was inspired by discussions with J. Q. Johnson of Cornell.
+   J.Otto Tennant <jot at cray.com> contributed the Cray support.
+
+   There are some preprocessor constants that can
+   be defined when compiling for your specific system, for
+   improved efficiency; however, the defaults should be okay.
+
+   The general concept of this implementation is to keep
+   track of all alloca-allocated blocks, and reclaim any
+   that are found to be deeper in the stack than the current
+   invocation.  This heuristic does not reclaim storage as
+   soon as it becomes invalid, but it will do so eventually.
+
+   As a special case, alloca(0) reclaims storage without
+   allocating any.  It is a good idea to use alloca(0) in
+   your main control loop, etc. to force garbage collection.  */
+
+#include <config.h>
+
+#include <alloca.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef emacs
+# include "lisp.h"
+# include "blockinput.h"
+# ifdef EMACS_FREE
+#  undef free
+#  define free EMACS_FREE
+# endif
+#else
+# define memory_full() abort ()
+#endif
+
+/* If compiling with GCC 2, this file's not needed.  */
+#if !defined (__GNUC__) || __GNUC__ < 2
+
+/* If someone has defined alloca as a macro,
+   there must be some other way alloca is supposed to work.  */
+# ifndef alloca
+
+#  ifdef emacs
+#   ifdef static
+/* actually, only want this if static is defined as ""
+   -- this is for usg, in which emacs must undefine static
+   in order to make unexec workable
+   */
+#    ifndef STACK_DIRECTION
+you
+lose
+-- must know STACK_DIRECTION at compile-time
+/* Using #error here is not wise since this file should work for
+   old and obscure compilers.  */
+#    endif /* STACK_DIRECTION undefined */
+#   endif /* static */
+#  endif /* emacs */
+
+/* If your stack is a linked list of frames, you have to
+   provide an "address metric" ADDRESS_FUNCTION macro.  */
+
+#  if defined (CRAY) && defined (CRAY_STACKSEG_END)
+long i00afunc ();
+#   define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
+#  else
+#   define ADDRESS_FUNCTION(arg) &(arg)
+#  endif
+
+/* Define STACK_DIRECTION if you know the direction of stack
+   growth for your system; otherwise it will be automatically
+   deduced at run-time.
+
+   STACK_DIRECTION > 0 => grows toward higher addresses
+   STACK_DIRECTION < 0 => grows toward lower addresses
+   STACK_DIRECTION = 0 => direction of growth unknown  */
+
+#  ifndef STACK_DIRECTION
+#   define STACK_DIRECTION	0	/* Direction unknown.  */
+#  endif
+
+#  if STACK_DIRECTION != 0
+
+#   define STACK_DIR	STACK_DIRECTION	/* Known at compile-time.  */
+
+#  else /* STACK_DIRECTION == 0; need run-time code.  */
+
+static int stack_dir;		/* 1 or -1 once known.  */
+#   define STACK_DIR	stack_dir
+
+static void
+find_stack_direction (void)
+{
+  static char *addr = NULL;	/* Address of first `dummy', once known.  */
+  auto char dummy;		/* To get stack address.  */
+
+  if (addr == NULL)
+    {				/* Initial entry.  */
+      addr = ADDRESS_FUNCTION (dummy);
+
+      find_stack_direction ();	/* Recurse once.  */
+    }
+  else
+    {
+      /* Second entry.  */
+      if (ADDRESS_FUNCTION (dummy) > addr)
+	stack_dir = 1;		/* Stack grew upward.  */
+      else
+	stack_dir = -1;		/* Stack grew downward.  */
+    }
+}
+
+#  endif /* STACK_DIRECTION == 0 */
+
+/* An "alloca header" is used to:
+   (a) chain together all alloca'ed blocks;
+   (b) keep track of stack depth.
+
+   It is very important that sizeof(header) agree with malloc
+   alignment chunk size.  The following default should work okay.  */
+
+#  ifndef	ALIGN_SIZE
+#   define ALIGN_SIZE	sizeof(double)
+#  endif
+
+typedef union hdr
+{
+  char align[ALIGN_SIZE];	/* To force sizeof(header).  */
+  struct
+    {
+      union hdr *next;		/* For chaining headers.  */
+      char *deep;		/* For stack depth measure.  */
+    } h;
+} header;
+
+static header *last_alloca_header = NULL;	/* -> last alloca header.  */
+
+/* Return a pointer to at least SIZE bytes of storage,
+   which will be automatically reclaimed upon exit from
+   the procedure that called alloca.  Originally, this space
+   was supposed to be taken from the current stack frame of the
+   caller, but that method cannot be made to work for some
+   implementations of C, for example under Gould's UTX/32.  */
+
+void *
+alloca (size_t size)
+{
+  auto char probe;		/* Probes stack depth: */
+  register char *depth = ADDRESS_FUNCTION (probe);
+
+#  if STACK_DIRECTION == 0
+  if (STACK_DIR == 0)		/* Unknown growth direction.  */
+    find_stack_direction ();
+#  endif
+
+  /* Reclaim garbage, defined as all alloca'd storage that
+     was allocated from deeper in the stack than currently.  */
+
+  {
+    register header *hp;	/* Traverses linked list.  */
+
+#  ifdef emacs
+    BLOCK_INPUT;
+#  endif
+
+    for (hp = last_alloca_header; hp != NULL;)
+      if ((STACK_DIR > 0 && hp->h.deep > depth)
+	  || (STACK_DIR < 0 && hp->h.deep < depth))
+	{
+	  register header *np = hp->h.next;
+
+	  free (hp);		/* Collect garbage.  */
+
+	  hp = np;		/* -> next header.  */
+	}
+      else
+	break;			/* Rest are not deeper.  */
+
+    last_alloca_header = hp;	/* -> last valid storage.  */
+
+#  ifdef emacs
+    UNBLOCK_INPUT;
+#  endif
+  }
+
+  if (size == 0)
+    return NULL;		/* No allocation required.  */
+
+  /* Allocate combined header + user data storage.  */
+
+  {
+    /* Address of header.  */
+    register header *new;
+
+    size_t combined_size = sizeof (header) + size;
+    if (combined_size < sizeof (header))
+      memory_full ();
+
+    new = malloc (combined_size);
+
+    if (! new)
+      memory_full ();
+
+    new->h.next = last_alloca_header;
+    new->h.deep = depth;
+
+    last_alloca_header = new;
+
+    /* User storage begins just after header.  */
+
+    return (void *) (new + 1);
+  }
+}
+
+#  if defined (CRAY) && defined (CRAY_STACKSEG_END)
+
+#   ifdef DEBUG_I00AFUNC
+#    include <stdio.h>
+#   endif
+
+#   ifndef CRAY_STACK
+#    define CRAY_STACK
+#    ifndef CRAY2
+/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
+struct stack_control_header
+  {
+    long shgrow:32;		/* Number of times stack has grown.  */
+    long shaseg:32;		/* Size of increments to stack.  */
+    long shhwm:32;		/* High water mark of stack.  */
+    long shsize:32;		/* Current size of stack (all segments).  */
+  };
+
+/* The stack segment linkage control information occurs at
+   the high-address end of a stack segment.  (The stack
+   grows from low addresses to high addresses.)  The initial
+   part of the stack segment linkage control information is
+   0200 (octal) words.  This provides for register storage
+   for the routine which overflows the stack.  */
+
+struct stack_segment_linkage
+  {
+    long ss[0200];		/* 0200 overflow words.  */
+    long sssize:32;		/* Number of words in this segment.  */
+    long ssbase:32;		/* Offset to stack base.  */
+    long:32;
+    long sspseg:32;		/* Offset to linkage control of previous
+				   segment of stack.  */
+    long:32;
+    long sstcpt:32;		/* Pointer to task common address block.  */
+    long sscsnm;		/* Private control structure number for
+				   microtasking.  */
+    long ssusr1;		/* Reserved for user.  */
+    long ssusr2;		/* Reserved for user.  */
+    long sstpid;		/* Process ID for pid based multi-tasking.  */
+    long ssgvup;		/* Pointer to multitasking thread giveup.  */
+    long sscray[7];		/* Reserved for Cray Research.  */
+    long ssa0;
+    long ssa1;
+    long ssa2;
+    long ssa3;
+    long ssa4;
+    long ssa5;
+    long ssa6;
+    long ssa7;
+    long sss0;
+    long sss1;
+    long sss2;
+    long sss3;
+    long sss4;
+    long sss5;
+    long sss6;
+    long sss7;
+  };
+
+#    else /* CRAY2 */
+/* The following structure defines the vector of words
+   returned by the STKSTAT library routine.  */
+struct stk_stat
+  {
+    long now;			/* Current total stack size.  */
+    long maxc;			/* Amount of contiguous space which would
+				   be required to satisfy the maximum
+				   stack demand to date.  */
+    long high_water;		/* Stack high-water mark.  */
+    long overflows;		/* Number of stack overflow ($STKOFEN) calls.  */
+    long hits;			/* Number of internal buffer hits.  */
+    long extends;		/* Number of block extensions.  */
+    long stko_mallocs;		/* Block allocations by $STKOFEN.  */
+    long underflows;		/* Number of stack underflow calls ($STKRETN).  */
+    long stko_free;		/* Number of deallocations by $STKRETN.  */
+    long stkm_free;		/* Number of deallocations by $STKMRET.  */
+    long segments;		/* Current number of stack segments.  */
+    long maxs;			/* Maximum number of stack segments so far.  */
+    long pad_size;		/* Stack pad size.  */
+    long current_address;	/* Current stack segment address.  */
+    long current_size;		/* Current stack segment size.  This
+				   number is actually corrupted by STKSTAT to
+				   include the fifteen word trailer area.  */
+    long initial_address;	/* Address of initial segment.  */
+    long initial_size;		/* Size of initial segment.  */
+  };
+
+/* The following structure describes the data structure which trails
+   any stack segment.  I think that the description in 'asdef' is
+   out of date.  I only describe the parts that I am sure about.  */
+
+struct stk_trailer
+  {
+    long this_address;		/* Address of this block.  */
+    long this_size;		/* Size of this block (does not include
+				   this trailer).  */
+    long unknown2;
+    long unknown3;
+    long link;			/* Address of trailer block of previous
+				   segment.  */
+    long unknown5;
+    long unknown6;
+    long unknown7;
+    long unknown8;
+    long unknown9;
+    long unknown10;
+    long unknown11;
+    long unknown12;
+    long unknown13;
+    long unknown14;
+  };
+
+#    endif /* CRAY2 */
+#   endif /* not CRAY_STACK */
+
+#   ifdef CRAY2
+/* Determine a "stack measure" for an arbitrary ADDRESS.
+   I doubt that "lint" will like this much.  */
+
+static long
+i00afunc (long *address)
+{
+  struct stk_stat status;
+  struct stk_trailer *trailer;
+  long *block, size;
+  long result = 0;
+
+  /* We want to iterate through all of the segments.  The first
+     step is to get the stack status structure.  We could do this
+     more quickly and more directly, perhaps, by referencing the
+     $LM00 common block, but I know that this works.  */
+
+  STKSTAT (&status);
+
+  /* Set up the iteration.  */
+
+  trailer = (struct stk_trailer *) (status.current_address
+				    + status.current_size
+				    - 15);
+
+  /* There must be at least one stack segment.  Therefore it is
+     a fatal error if "trailer" is null.  */
+
+  if (trailer == 0)
+    abort ();
+
+  /* Discard segments that do not contain our argument address.  */
+
+  while (trailer != 0)
+    {
+      block = (long *) trailer->this_address;
+      size = trailer->this_size;
+      if (block == 0 || size == 0)
+	abort ();
+      trailer = (struct stk_trailer *) trailer->link;
+      if ((block <= address) && (address < (block + size)))
+	break;
+    }
+
+  /* Set the result to the offset in this segment and add the sizes
+     of all predecessor segments.  */
+
+  result = address - block;
+
+  if (trailer == 0)
+    {
+      return result;
+    }
+
+  do
+    {
+      if (trailer->this_size <= 0)
+	abort ();
+      result += trailer->this_size;
+      trailer = (struct stk_trailer *) trailer->link;
+    }
+  while (trailer != 0);
+
+  /* We are done.  Note that if you present a bogus address (one
+     not in any segment), you will get a different number back, formed
+     from subtracting the address of the first block.  This is probably
+     not what you want.  */
+
+  return (result);
+}
+
+#   else /* not CRAY2 */
+/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
+   Determine the number of the cell within the stack,
+   given the address of the cell.  The purpose of this
+   routine is to linearize, in some sense, stack addresses
+   for alloca.  */
+
+static long
+i00afunc (long address)
+{
+  long stkl = 0;
+
+  long size, pseg, this_segment, stack;
+  long result = 0;
+
+  struct stack_segment_linkage *ssptr;
+
+  /* Register B67 contains the address of the end of the
+     current stack segment.  If you (as a subprogram) store
+     your registers on the stack and find that you are past
+     the contents of B67, you have overflowed the segment.
+
+     B67 also points to the stack segment linkage control
+     area, which is what we are really interested in.  */
+
+  stkl = CRAY_STACKSEG_END ();
+  ssptr = (struct stack_segment_linkage *) stkl;
+
+  /* If one subtracts 'size' from the end of the segment,
+     one has the address of the first word of the segment.
+
+     If this is not the first segment, 'pseg' will be
+     nonzero.  */
+
+  pseg = ssptr->sspseg;
+  size = ssptr->sssize;
+
+  this_segment = stkl - size;
+
+  /* It is possible that calling this routine itself caused
+     a stack overflow.  Discard stack segments which do not
+     contain the target address.  */
+
+  while (!(this_segment <= address && address <= stkl))
+    {
+#    ifdef DEBUG_I00AFUNC
+      fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
+#    endif
+      if (pseg == 0)
+	break;
+      stkl = stkl - pseg;
+      ssptr = (struct stack_segment_linkage *) stkl;
+      size = ssptr->sssize;
+      pseg = ssptr->sspseg;
+      this_segment = stkl - size;
+    }
+
+  result = address - this_segment;
+
+  /* If you subtract pseg from the current end of the stack,
+     you get the address of the previous stack segment's end.
+     This seems a little convoluted to me, but I'll bet you save
+     a cycle somewhere.  */
+
+  while (pseg != 0)
+    {
+#    ifdef DEBUG_I00AFUNC
+      fprintf (stderr, "%011o %011o\n", pseg, size);
+#    endif
+      stkl = stkl - pseg;
+      ssptr = (struct stack_segment_linkage *) stkl;
+      size = ssptr->sssize;
+      pseg = ssptr->sspseg;
+      result += size;
+    }
+  return (result);
+}
+
+#   endif /* not CRAY2 */
+#  endif /* CRAY */
+
+# endif /* no alloca */
+#endif /* not GCC version 2.1 */
diff --git a/win32/gl/alloca.h b/win32/gl/alloca.h
new file mode 100644
index 0000000..1c1d9e6
--- /dev/null
+++ b/win32/gl/alloca.h
@@ -0,0 +1,54 @@
+/* Memory allocation on the stack.
+
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2007 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+   means there is a real alloca function.  */
+#ifndef _GL_ALLOCA_H
+#define _GL_ALLOCA_H
+
+/* alloca (N) returns a pointer to N bytes of memory
+   allocated on the stack, which will last until the function returns.
+   Use of alloca should be avoided:
+     - inside arguments of function calls - undefined behaviour,
+     - in inline functions - the allocation may actually last until the
+       calling function returns,
+     - for huge N (say, N >= 65536) - you never know how large (or small)
+       the stack is, and when the stack cannot fulfill the memory allocation
+       request, the program just crashes.
+ */
+
+#ifndef alloca
+# ifdef __GNUC__
+#  define alloca __builtin_alloca
+# elif defined _AIX
+#  define alloca __alloca
+# elif defined _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  include <stddef.h>
+#  ifdef  __cplusplus
+extern "C"
+#  endif
+void *alloca (size_t);
+# endif
+#endif
+
+#endif /* _GL_ALLOCA_H */
diff --git a/win32/gl/config.charset b/win32/gl/config.charset
new file mode 100644
index 0000000..1cf8bd4
--- /dev/null
+++ b/win32/gl/config.charset
@@ -0,0 +1,639 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+#   Copyright (C) 2000-2004, 2006 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU Lesser General Public License as published by
+#   the Free Software Foundation; either version 2.1, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU Lesser General Public License for more details.
+#
+#   You should have received a copy of the GNU Lesser General Public License along
+#   with this program; if not, write to the Free Software Foundation,
+#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The table consists of lines of the form
+#    ALIAS  CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+#       name              MIME?             used by which systems
+#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin
+#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   ISO-8859-3              Y   glibc solaris
+#   ISO-8859-4              Y   osf solaris freebsd netbsd darwin
+#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   ISO-8859-6              Y   glibc aix hpux solaris
+#   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd darwin
+#   ISO-8859-8              Y   glibc aix hpux osf solaris
+#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
+#   ISO-8859-13                 glibc netbsd darwin
+#   ISO-8859-14                 glibc
+#   ISO-8859-15                 glibc aix osf solaris freebsd darwin
+#   KOI8-R                  Y   glibc solaris freebsd netbsd darwin
+#   KOI8-U                  Y   glibc freebsd netbsd darwin
+#   KOI8-T                      glibc
+#   CP437                       dos
+#   CP775                       dos
+#   CP850                       aix osf dos
+#   CP852                       dos
+#   CP855                       dos
+#   CP856                       aix
+#   CP857                       dos
+#   CP861                       dos
+#   CP862                       dos
+#   CP864                       dos
+#   CP865                       dos
+#   CP866                       freebsd netbsd darwin dos
+#   CP869                       dos
+#   CP874                       woe32 dos
+#   CP922                       aix
+#   CP932                       aix woe32 dos
+#   CP943                       aix
+#   CP949                       osf woe32 dos
+#   CP950                       woe32 dos
+#   CP1046                      aix
+#   CP1124                      aix
+#   CP1125                      dos
+#   CP1129                      aix
+#   CP1250                      woe32
+#   CP1251                      glibc solaris netbsd darwin woe32
+#   CP1252                      aix woe32
+#   CP1253                      woe32
+#   CP1254                      woe32
+#   CP1255                      glibc woe32
+#   CP1256                      woe32
+#   CP1257                      woe32
+#   GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin
+#   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-TW                      glibc aix hpux irix osf solaris netbsd
+#   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin
+#   BIG5-HKSCS                  glibc solaris
+#   GBK                         glibc aix osf solaris woe32 dos
+#   GB18030                     glibc solaris netbsd
+#   SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
+#   JOHAB                       glibc solaris woe32
+#   TIS-620                     glibc aix hpux osf solaris
+#   VISCII                  Y   glibc
+#   TCVN5712-1                  glibc
+#   GEORGIAN-PS                 glibc
+#   HP-ROMAN8                   hpux
+#   HP-ARABIC8                  hpux
+#   HP-GREEK8                   hpux
+#   HP-HEBREW8                  hpux
+#   HP-TURKISH8                 hpux
+#   HP-KANA8                    hpux
+#   DEC-KANJI                   osf
+#   DEC-HANYU                   osf
+#   UTF-8                   Y   glibc aix hpux osf solaris netbsd darwin
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+    linux-gnulibc1*)
+	# Linux libc5 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "C ASCII"
+	echo "POSIX ASCII"
+	for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+	         en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+	         en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+	         es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+	         et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+	         fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+	         it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+	         sv_FI sv_SE; do
+	  echo "$l ISO-8859-1"
+	  echo "$l.iso-8859-1 ISO-8859-1"
+	  echo "$l.iso-8859-15 ISO-8859-15"
+	  echo "$l.iso-8859-15 at euro ISO-8859-15"
+	  echo "$l at euro ISO-8859-15"
+	  echo "$l.cp-437 CP437"
+	  echo "$l.cp-850 CP850"
+	  echo "$l.cp-1252 CP1252"
+	  echo "$l.cp-1252 at euro CP1252"
+	  #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+	  echo "$l.utf-8 UTF-8"
+	  echo "$l.utf-8 at euro UTF-8"
+	done
+	for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+	         sl_SI sr sr_CS sr_YU; do
+	  echo "$l ISO-8859-2"
+	  echo "$l.iso-8859-2 ISO-8859-2"
+	  echo "$l.cp-852 CP852"
+	  echo "$l.cp-1250 CP1250"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in mk mk_MK ru ru_RU; do
+	  echo "$l ISO-8859-5"
+	  echo "$l.iso-8859-5 ISO-8859-5"
+	  echo "$l.koi8-r KOI8-R"
+	  echo "$l.cp-866 CP866"
+	  echo "$l.cp-1251 CP1251"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in ar ar_SA; do
+	  echo "$l ISO-8859-6"
+	  echo "$l.iso-8859-6 ISO-8859-6"
+	  echo "$l.cp-864 CP864"
+	  #echo "$l.cp-868 CP868" # not a commonly used encoding
+	  echo "$l.cp-1256 CP1256"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in el el_GR gr gr_GR; do
+	  echo "$l ISO-8859-7"
+	  echo "$l.iso-8859-7 ISO-8859-7"
+	  echo "$l.cp-869 CP869"
+	  echo "$l.cp-1253 CP1253"
+	  echo "$l.cp-1253 at euro CP1253"
+	  echo "$l.utf-8 UTF-8"
+	  echo "$l.utf-8 at euro UTF-8"
+	done
+	for l in he he_IL iw iw_IL; do
+	  echo "$l ISO-8859-8"
+	  echo "$l.iso-8859-8 ISO-8859-8"
+	  echo "$l.cp-862 CP862"
+	  echo "$l.cp-1255 CP1255"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in tr tr_TR; do
+	  echo "$l ISO-8859-9"
+	  echo "$l.iso-8859-9 ISO-8859-9"
+	  echo "$l.cp-857 CP857"
+	  echo "$l.cp-1254 CP1254"
+	  echo "$l.utf-8 UTF-8"
+	done
+	for l in lt lt_LT lv lv_LV; do
+	  #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+	  echo "$l ISO-8859-13"
+	done
+	for l in ru_UA uk uk_UA; do
+	  echo "$l KOI8-U"
+	done
+	for l in zh zh_CN; do
+	  #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+	  echo "$l GB2312"
+	done
+	for l in ja ja_JP ja_JP.EUC; do
+	  echo "$l EUC-JP"
+	done
+	for l in ko ko_KR; do
+	  echo "$l EUC-KR"
+	done
+	for l in th th_TH; do
+	  echo "$l TIS-620"
+	done
+	for l in fa fa_IR; do
+	  #echo "$l ISIRI-3342" # a broken encoding
+	  echo "$l.utf-8 UTF-8"
+	done
+	;;
+    linux* | *-gnu*)
+	# With glibc-2.1 or newer, we don't need any canonicalization,
+	# because glibc has iconv and both glibc and libiconv support all
+	# GNU canonical names directly. Therefore, the Makefile does not
+	# need to install the alias file at all.
+	# The following applies only to glibc-2.0.x and older libcs.
+	echo "ISO_646.IRV:1983 ASCII"
+	;;
+    aix*)
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-6 ISO-8859-6"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-8 ISO-8859-8"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "IBM-850 CP850"
+	echo "IBM-856 CP856"
+	echo "IBM-921 ISO-8859-13"
+	echo "IBM-922 CP922"
+	echo "IBM-932 CP932"
+	echo "IBM-943 CP943"
+	echo "IBM-1046 CP1046"
+	echo "IBM-1124 CP1124"
+	echo "IBM-1129 CP1129"
+	echo "IBM-1252 CP1252"
+	echo "IBM-eucCN GB2312"
+	echo "IBM-eucJP EUC-JP"
+	echo "IBM-eucKR EUC-KR"
+	echo "IBM-eucTW EUC-TW"
+	echo "big5 BIG5"
+	echo "GBK GBK"
+	echo "TIS-620 TIS-620"
+	echo "UTF-8 UTF-8"
+	;;
+    hpux*)
+	echo "iso88591 ISO-8859-1"
+	echo "iso88592 ISO-8859-2"
+	echo "iso88595 ISO-8859-5"
+	echo "iso88596 ISO-8859-6"
+	echo "iso88597 ISO-8859-7"
+	echo "iso88598 ISO-8859-8"
+	echo "iso88599 ISO-8859-9"
+	echo "iso885915 ISO-8859-15"
+	echo "roman8 HP-ROMAN8"
+	echo "arabic8 HP-ARABIC8"
+	echo "greek8 HP-GREEK8"
+	echo "hebrew8 HP-HEBREW8"
+	echo "turkish8 HP-TURKISH8"
+	echo "kana8 HP-KANA8"
+	echo "tis620 TIS-620"
+	echo "big5 BIG5"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "hp15CN GB2312"
+	#echo "ccdc ?" # what is this?
+	echo "SJIS SHIFT_JIS"
+	echo "utf8 UTF-8"
+	;;
+    irix*)
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "eucCN GB2312"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	;;
+    osf*)
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-4 ISO-8859-4"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-8 ISO-8859-8"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "cp850 CP850"
+	echo "big5 BIG5"
+	echo "dechanyu DEC-HANYU"
+	echo "dechanzi GB2312"
+	echo "deckanji DEC-KANJI"
+	echo "deckorean EUC-KR"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "GBK GBK"
+	echo "KSC5601 CP949"
+	echo "sdeckanji EUC-JP"
+	echo "SJIS SHIFT_JIS"
+	echo "TACTIS TIS-620"
+	echo "UTF-8 UTF-8"
+	;;
+    solaris*)
+	echo "646 ASCII"
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-3 ISO-8859-3"
+	echo "ISO8859-4 ISO-8859-4"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-6 ISO-8859-6"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-8 ISO-8859-8"
+	echo "ISO8859-9 ISO-8859-9"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "koi8-r KOI8-R"
+	echo "ansi-1251 CP1251"
+	echo "BIG5 BIG5"
+	echo "Big5-HKSCS BIG5-HKSCS"
+	echo "gb2312 GB2312"
+	echo "GBK GBK"
+	echo "GB18030 GB18030"
+	echo "cns11643 EUC-TW"
+	echo "5601 EUC-KR"
+	echo "ko_KR.johap92 JOHAB"
+	echo "eucJP EUC-JP"
+	echo "PCK SHIFT_JIS"
+	echo "TIS620.2533 TIS-620"
+	#echo "sun_eu_greek ?" # what is this?
+	echo "UTF-8 UTF-8"
+	;;
+    freebsd* | os2*)
+	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+	# reuse FreeBSD's locale data for OS/2.
+	echo "C ASCII"
+	echo "US-ASCII ASCII"
+	for l in la_LN lt_LN; do
+	  echo "$l.ASCII ASCII"
+	done
+	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+	         lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+	  echo "$l.ISO_8859-1 ISO-8859-1"
+	  echo "$l.DIS_8859-15 ISO-8859-15"
+	done
+	for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+	  echo "$l.ISO_8859-2 ISO-8859-2"
+	done
+	for l in la_LN lt_LT; do
+	  echo "$l.ISO_8859-4 ISO-8859-4"
+	done
+	for l in ru_RU ru_SU; do
+	  echo "$l.KOI8-R KOI8-R"
+	  echo "$l.ISO_8859-5 ISO-8859-5"
+	  echo "$l.CP866 CP866"
+	done
+	echo "uk_UA.KOI8-U KOI8-U"
+	echo "zh_TW.BIG5 BIG5"
+	echo "zh_TW.Big5 BIG5"
+	echo "zh_CN.EUC GB2312"
+	echo "ja_JP.EUC EUC-JP"
+	echo "ja_JP.SJIS SHIFT_JIS"
+	echo "ja_JP.Shift_JIS SHIFT_JIS"
+	echo "ko_KR.EUC EUC-KR"
+	;;
+    netbsd*)
+	echo "646 ASCII"
+	echo "ISO8859-1 ISO-8859-1"
+	echo "ISO8859-2 ISO-8859-2"
+	echo "ISO8859-4 ISO-8859-4"
+	echo "ISO8859-5 ISO-8859-5"
+	echo "ISO8859-7 ISO-8859-7"
+	echo "ISO8859-13 ISO-8859-13"
+	echo "ISO8859-15 ISO-8859-15"
+	echo "eucCN GB2312"
+	echo "eucJP EUC-JP"
+	echo "eucKR EUC-KR"
+	echo "eucTW EUC-TW"
+	echo "BIG5 BIG5"
+	echo "SJIS SHIFT_JIS"
+	;;
+    darwin[56]*)
+	# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "C ASCII"
+	for l in en_AU en_CA en_GB en_US la_LN; do
+	  echo "$l.US-ASCII ASCII"
+	done
+	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+	         nl_NL no_NO pt_PT sv_SE; do
+	  echo "$l ISO-8859-1"
+	  echo "$l.ISO8859-1 ISO-8859-1"
+	  echo "$l.ISO8859-15 ISO-8859-15"
+	done
+	for l in la_LN; do
+	  echo "$l.ISO8859-1 ISO-8859-1"
+	  echo "$l.ISO8859-15 ISO-8859-15"
+	done
+	for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+	  echo "$l.ISO8859-2 ISO-8859-2"
+	done
+	for l in la_LN lt_LT; do
+	  echo "$l.ISO8859-4 ISO-8859-4"
+	done
+	for l in ru_RU; do
+	  echo "$l.KOI8-R KOI8-R"
+	  echo "$l.ISO8859-5 ISO-8859-5"
+	  echo "$l.CP866 CP866"
+	done
+	for l in bg_BG; do
+	  echo "$l.CP1251 CP1251"
+	done
+	echo "uk_UA.KOI8-U KOI8-U"
+	echo "zh_TW.BIG5 BIG5"
+	echo "zh_TW.Big5 BIG5"
+	echo "zh_CN.EUC GB2312"
+	echo "ja_JP.EUC EUC-JP"
+	echo "ja_JP.SJIS SHIFT_JIS"
+	echo "ko_KR.EUC EUC-KR"
+	;;
+    darwin*)
+	# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
+	# - It returns the empty string when LANG is set to a locale of the
+	#   form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+	#   LC_CTYPE file.
+	# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+	#   the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+	# - The documentation says:
+	#     "... all code that calls BSD system routines should ensure
+	#      that the const *char parameters of these routines are in UTF-8
+	#      encoding. All BSD system functions expect their string
+	#      parameters to be in UTF-8 encoding and nothing else."
+	#   It also says
+	#     "An additional caveat is that string parameters for files,
+	#      paths, and other file-system entities must be in canonical
+	#      UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+	#      characters are decomposed ..."
+	#   but this is not true: You can pass non-decomposed UTF-8 strings
+	#   to file system functions, and it is the OS which will convert
+	#   them to decomposed UTF-8 before accessing the file system.
+	# - The Apple Terminal application displays UTF-8 by default.
+	# - However, other applications are free to use different encodings:
+	#   - xterm uses ISO-8859-1 by default.
+	#   - TextEdit uses MacRoman by default.
+	# We prefer UTF-8 over decomposed UTF-8-MAC because one should
+	# minimize the use of decomposed Unicode. Unfortunately, through the
+	# Darwin file system, decomposed UTF-8 strings are leaked into user
+	# space nevertheless.
+	echo "* UTF-8"
+	;;
+    beos*)
+	# BeOS has a single locale, and it has UTF-8 encoding.
+	echo "* UTF-8"
+	;;
+    msdosdjgpp*)
+	# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+	# localcharset.c falls back to using the full locale name
+	# from the environment variables.
+	echo "#"
+	echo "# The encodings given here may not all be correct."
+	echo "# If you find that the encoding given for your language and"
+	echo "# country is not the one your DOS machine actually uses, just"
+	echo "# correct it in this file, and send a mail to"
+	echo "# Juan Manuel Guerrero <juan.guerrero at gmx.de>"
+	echo "# and Bruno Haible <bruno at clisp.org>."
+	echo "#"
+	echo "C ASCII"
+	# ISO-8859-1 languages
+	echo "ca CP850"
+	echo "ca_ES CP850"
+	echo "da CP865"    # not CP850 ??
+	echo "da_DK CP865" # not CP850 ??
+	echo "de CP850"
+	echo "de_AT CP850"
+	echo "de_CH CP850"
+	echo "de_DE CP850"
+	echo "en CP850"
+	echo "en_AU CP850" # not CP437 ??
+	echo "en_CA CP850"
+	echo "en_GB CP850"
+	echo "en_NZ CP437"
+	echo "en_US CP437"
+	echo "en_ZA CP850" # not CP437 ??
+	echo "es CP850"
+	echo "es_AR CP850"
+	echo "es_BO CP850"
+	echo "es_CL CP850"
+	echo "es_CO CP850"
+	echo "es_CR CP850"
+	echo "es_CU CP850"
+	echo "es_DO CP850"
+	echo "es_EC CP850"
+	echo "es_ES CP850"
+	echo "es_GT CP850"
+	echo "es_HN CP850"
+	echo "es_MX CP850"
+	echo "es_NI CP850"
+	echo "es_PA CP850"
+	echo "es_PY CP850"
+	echo "es_PE CP850"
+	echo "es_SV CP850"
+	echo "es_UY CP850"
+	echo "es_VE CP850"
+	echo "et CP850"
+	echo "et_EE CP850"
+	echo "eu CP850"
+	echo "eu_ES CP850"
+	echo "fi CP850"
+	echo "fi_FI CP850"
+	echo "fr CP850"
+	echo "fr_BE CP850"
+	echo "fr_CA CP850"
+	echo "fr_CH CP850"
+	echo "fr_FR CP850"
+	echo "ga CP850"
+	echo "ga_IE CP850"
+	echo "gd CP850"
+	echo "gd_GB CP850"
+	echo "gl CP850"
+	echo "gl_ES CP850"
+	echo "id CP850"    # not CP437 ??
+	echo "id_ID CP850" # not CP437 ??
+	echo "is CP861"    # not CP850 ??
+	echo "is_IS CP861" # not CP850 ??
+	echo "it CP850"
+	echo "it_CH CP850"
+	echo "it_IT CP850"
+	echo "lt CP775"
+	echo "lt_LT CP775"
+	echo "lv CP775"
+	echo "lv_LV CP775"
+	echo "nb CP865"    # not CP850 ??
+	echo "nb_NO CP865" # not CP850 ??
+	echo "nl CP850"
+	echo "nl_BE CP850"
+	echo "nl_NL CP850"
+	echo "nn CP865"    # not CP850 ??
+	echo "nn_NO CP865" # not CP850 ??
+	echo "no CP865"    # not CP850 ??
+	echo "no_NO CP865" # not CP850 ??
+	echo "pt CP850"
+	echo "pt_BR CP850"
+	echo "pt_PT CP850"
+	echo "sv CP850"
+	echo "sv_SE CP850"
+	# ISO-8859-2 languages
+	echo "cs CP852"
+	echo "cs_CZ CP852"
+	echo "hr CP852"
+	echo "hr_HR CP852"
+	echo "hu CP852"
+	echo "hu_HU CP852"
+	echo "pl CP852"
+	echo "pl_PL CP852"
+	echo "ro CP852"
+	echo "ro_RO CP852"
+	echo "sk CP852"
+	echo "sk_SK CP852"
+	echo "sl CP852"
+	echo "sl_SI CP852"
+	echo "sq CP852"
+	echo "sq_AL CP852"
+	echo "sr CP852"    # CP852 or CP866 or CP855 ??
+	echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
+	echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+	# ISO-8859-3 languages
+	echo "mt CP850"
+	echo "mt_MT CP850"
+	# ISO-8859-5 languages
+	echo "be CP866"
+	echo "be_BE CP866"
+	echo "bg CP866"    # not CP855 ??
+	echo "bg_BG CP866" # not CP855 ??
+	echo "mk CP866"    # not CP855 ??
+	echo "mk_MK CP866" # not CP855 ??
+	echo "ru CP866"
+	echo "ru_RU CP866"
+	echo "uk CP1125"
+	echo "uk_UA CP1125"
+	# ISO-8859-6 languages
+	echo "ar CP864"
+	echo "ar_AE CP864"
+	echo "ar_DZ CP864"
+	echo "ar_EG CP864"
+	echo "ar_IQ CP864"
+	echo "ar_IR CP864"
+	echo "ar_JO CP864"
+	echo "ar_KW CP864"
+	echo "ar_MA CP864"
+	echo "ar_OM CP864"
+	echo "ar_QA CP864"
+	echo "ar_SA CP864"
+	echo "ar_SY CP864"
+	# ISO-8859-7 languages
+	echo "el CP869"
+	echo "el_GR CP869"
+	# ISO-8859-8 languages
+	echo "he CP862"
+	echo "he_IL CP862"
+	# ISO-8859-9 languages
+	echo "tr CP857"
+	echo "tr_TR CP857"
+	# Japanese
+	echo "ja CP932"
+	echo "ja_JP CP932"
+	# Chinese
+	echo "zh_CN GBK"
+	echo "zh_TW CP950" # not CP938 ??
+	# Korean
+	echo "kr CP949"    # not CP934 ??
+	echo "kr_KR CP949" # not CP934 ??
+	# Thai
+	echo "th CP874"
+	echo "th_TH CP874"
+	# Other
+	echo "eo CP850"
+	echo "eo_EO CP850"
+	;;
+esac
diff --git a/win32/gl/configmake.h b/win32/gl/configmake.h
new file mode 100644
index 0000000..ee0315f
--- /dev/null
+++ b/win32/gl/configmake.h
@@ -0,0 +1,24 @@
+#define PREFIX "/usr/local"
+#define EXEC_PREFIX "/usr/local"
+#define BINDIR "/usr/local/bin"
+#define SBINDIR "/usr/local/sbin"
+#define LIBEXECDIR "/usr/local/libexec"
+#define DATAROOTDIR "/usr/local/share"
+#define DATADIR "/usr/local/share"
+#define SYSCONFDIR "/usr/local/etc"
+#define SHAREDSTATEDIR "/usr/local/com"
+#define LOCALSTATEDIR "/usr/local/var"
+#define INCLUDEDIR "/usr/local/include"
+#define OLDINCLUDEDIR "/usr/include"
+#define DOCDIR "/usr/local/share/doc/libdap"
+#define INFODIR "/usr/local/share/info"
+#define HTMLDIR "/usr/local/share/doc/libdap"
+#define DVIDIR "/usr/local/share/doc/libdap"
+#define PDFDIR "/usr/local/share/doc/libdap"
+#define PSDIR "/usr/local/share/doc/libdap"
+#define LIBDIR "/usr/local/lib"
+#define LOCALEDIR "/usr/local/share/locale"
+#define MANDIR "/usr/local/share/man"
+#define PKGDATADIR "/usr/local/share/libdap"
+#define PKGINCLUDEDIR "/usr/local/include/libdap"
+#define PKGLIBDIR "/usr/local/lib/libdap"
diff --git a/win32/gl/gettext.h b/win32/gl/gettext.h
new file mode 100644
index 0000000..bd214d5
--- /dev/null
+++ b/win32/gl/gettext.h
@@ -0,0 +1,270 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option.  */
+#if ENABLE_NLS
+
+/* Get declarations of GNU message catalog functions.  */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+   the gettext() and ngettext() macros.  This is an alternative to calling
+   textdomain(), and is useful for libraries.  */
+# ifdef DEFAULT_TEXT_DOMAIN
+#  undef gettext
+#  define gettext(Msgid) \
+     dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+#  undef ngettext
+#  define ngettext(Msgid1, Msgid2, N) \
+     dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+   chokes if dcgettext is defined as a macro.  So include it now, to make
+   later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
+   as well because people using "gettext.h" will not include <libintl.h>,
+   and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+   is OK.  */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+   <libintl.h>, which chokes if dcgettext is defined as a macro.  So include
+   it now, to make later inclusions of <libintl.h> a NOP.  */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+#  include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+   The casts to 'const char *' serve the purpose of producing warnings
+   for invalid uses of the value returned from these functions.
+   On pre-ANSI systems without 'const', the config.h file is supposed to
+   contain "#define const".  */
+# define gettext(Msgid) ((const char *) (Msgid))
+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+# define dcgettext(Domainname, Msgid, Category) \
+    ((void) (Category), dgettext (Domainname, Msgid))
+# define ngettext(Msgid1, Msgid2, N) \
+    ((N) == 1 \
+     ? ((void) (Msgid2), (const char *) (Msgid1)) \
+     : ((void) (Msgid1), (const char *) (Msgid2)))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+    ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+    ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
+# define textdomain(Domainname) ((const char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) \
+    ((void) (Domainname), (const char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) \
+    ((void) (Domainname), (const char *) (Codeset))
+
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+   extraction of messages, but does not call gettext().  The run-time
+   translation is done at a different place in the code.
+   The argument, String, should be a literal string.  Concatenated strings
+   and other string expressions won't work.
+   The macro's expansion is not parenthesized, so that it is suitable as
+   initializer for static 'char[]' or 'const char[]' variables.  */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file.  */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+   MSGID.  MSGCTXT and MSGID must be string literals.  MSGCTXT should be
+   short and rarely need to change.
+   The letter 'p' stands for 'particular' or 'special'.  */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+	      const char *msg_ctxt_id, const char *msgid,
+	      int category)
+{
+  const char *translation = dcgettext (domain, msg_ctxt_id, category);
+  if (translation == msg_ctxt_id)
+    return msgid;
+  else
+    return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+npgettext_aux (const char *domain,
+	       const char *msg_ctxt_id, const char *msgid,
+	       const char *msgid_plural, unsigned long int n,
+	       int category)
+{
+  const char *translation =
+    dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+  if (translation == msg_ctxt_id || translation == msgid_plural)
+    return (n == 1 ? msgid : msgid_plural);
+  else
+    return translation;
+}
+
+/* The same thing extended for non-constant arguments.  Here MSGCTXT and MSGID
+   can be arbitrary expressions.  But for string literals these macros are
+   less efficient than those above.  */
+
+#include <string.h>
+
+#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
+  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
+   /* || __STDC_VERSION__ >= 199901L */ )
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+  dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+  dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+		 const char *msgctxt, const char *msgid,
+		 int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcgettext (domain, msg_ctxt_id, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+	free (msg_ctxt_id);
+#endif
+      if (translation != msg_ctxt_id)
+	return translation;
+    }
+  return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcnpgettext_expr (const char *domain,
+		  const char *msgctxt, const char *msgid,
+		  const char *msgid_plural, unsigned long int n,
+		  int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+	free (msg_ctxt_id);
+#endif
+      if (!(translation == msg_ctxt_id || translation == msgid_plural))
+	return translation;
+    }
+  return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff --git a/win32/gl/localcharset.c b/win32/gl/localcharset.c
new file mode 100644
index 0000000..8ffb694
--- /dev/null
+++ b/win32/gl/localcharset.c
@@ -0,0 +1,471 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+   Copyright (C) 2000-2006 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno at clisp.org>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "localcharset.h"
+
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#if defined __EMX__
+/* Assume EMX program runs on OS/2, even if compiled under DOS.  */
+# define OS2
+#endif
+
+#if !defined WIN32_NATIVE
+# if HAVE_LANGINFO_CODESET
+#  include <langinfo.h>
+# else
+#  if 0 /* see comment below */
+#   include <locale.h>
+#  endif
+# endif
+# ifdef __CYGWIN__
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+# endif
+#elif defined WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+#if defined OS2
+# define INCL_DOS
+# include <os2.h>
+#endif
+
+#if ENABLE_RELOCATABLE
+# include "relocatable.h"
+#else
+# define relocate(pathname) (pathname)
+#endif
+
+/* Get LIBDIR.  */
+#ifndef LIBDIR
+# include "configmake.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+  /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc getc_unlocked
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+   possible multithread problem in the function get_charset_aliases. If we
+   are running in a threaded environment, and if two threads initialize
+   'charset_aliases' simultaneously, both will produce the same value,
+   and everything will be ok if the two assignments to 'charset_aliases'
+   are atomic. But I don't know what will happen if the two assignments mix.  */
+#if __STDC__ != 1
+# define volatile /* empty */
+#endif
+/* Pointer to the contents of the charset.alias file, if it has already been
+   read, else NULL.  Its format is:
+   ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0'  */
+static const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file.  */
+static const char *
+get_charset_aliases (void)
+{
+  const char *cp;
+
+  cp = charset_aliases;
+  if (cp == NULL)
+    {
+#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+      FILE *fp;
+      const char *dir;
+      const char *base = "charset.alias";
+      char *file_name;
+
+      /* Make it possible to override the charset.alias location.  This is
+	 necessary for running the testsuite before "make install".  */
+      dir = getenv ("CHARSETALIASDIR");
+      if (dir == NULL || dir[0] == '\0')
+	dir = relocate (LIBDIR);
+
+      /* Concatenate dir and base into freshly allocated file_name.  */
+      {
+	size_t dir_len = strlen (dir);
+	size_t base_len = strlen (base);
+	/* If either of these are huge, then there is likely a problem. Limit
+	 * their size, especially for 'dir' which can take its value from an
+	 * env var. jhrg 3/5/09
+	 */
+	if (dir_len < 32766 & base_len < 32766)
+	  {
+	    int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+	    file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+	    if (file_name != NULL)
+	      {
+	        memcpy (file_name, dir, dir_len);
+	        if (add_slash)
+	          file_name[dir_len] = DIRECTORY_SEPARATOR;
+	        memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+	      }
+	  }
+	else
+	  {
+	    file_name = NULL;
+	  }
+      }
+
+      if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+	/* Out of memory or file not found, treat it as empty.  */
+	cp = "";
+      else
+	{
+	  /* Parse the file's contents.  */
+	  char *res_ptr = NULL;
+	  size_t res_size = 0;
+
+	  for (;;)
+	    {
+	      int c;
+	      char buf1[50+1];
+	      char buf2[50+1];
+	      size_t l1, l2;
+	      char *old_res_ptr;
+
+	      c = getc (fp);
+	      if (c == EOF)
+		break;
+	      if (c == '\n' || c == ' ' || c == '\t')
+		continue;
+	      if (c == '#')
+		{
+		  /* Skip comment, to end of line.  */
+		  do
+		    c = getc (fp);
+		  while (!(c == EOF || c == '\n'));
+		  if (c == EOF)
+		    break;
+		  continue;
+		}
+	      ungetc (c, fp);
+	      if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
+		break;
+	      l1 = strlen (buf1);
+	      l2 = strlen (buf2);
+	      old_res_ptr = res_ptr;
+	      if (res_size == 0)
+		{
+		  res_size = l1 + 1 + l2 + 1;
+		  res_ptr = (char *) malloc (res_size + 1);
+		}
+	      else
+		{
+		  res_size += l1 + 1 + l2 + 1;
+		  res_ptr = (char *) realloc (res_ptr, res_size + 1);
+		}
+	      if (res_ptr == NULL)
+		{
+		  /* Out of memory. */
+		  res_size = 0;
+		  if (old_res_ptr != NULL)
+		    free (old_res_ptr);
+		  break;
+		}
+	      strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+	      strcpy (res_ptr + res_size - (l2 + 1), buf2);
+	    }
+	  fclose (fp);
+	  if (res_size == 0)
+	    cp = "";
+	  else
+	    {
+	      *(res_ptr + res_size) = '\0';
+	      cp = res_ptr;
+	    }
+	}
+
+      if (file_name != NULL)
+	free (file_name);
+
+#else
+
+# if defined VMS
+      /* To avoid the troubles of an extra file charset.alias_vms in the
+	 sources of many GNU packages, simply inline the aliases here.  */
+      /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+	 "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+	 section 10.7 "Handling Different Character Sets".  */
+      cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+	   "ISO8859-2" "\0" "ISO-8859-2" "\0"
+	   "ISO8859-5" "\0" "ISO-8859-5" "\0"
+	   "ISO8859-7" "\0" "ISO-8859-7" "\0"
+	   "ISO8859-8" "\0" "ISO-8859-8" "\0"
+	   "ISO8859-9" "\0" "ISO-8859-9" "\0"
+	   /* Japanese */
+	   "eucJP" "\0" "EUC-JP" "\0"
+	   "SJIS" "\0" "SHIFT_JIS" "\0"
+	   "DECKANJI" "\0" "DEC-KANJI" "\0"
+	   "SDECKANJI" "\0" "EUC-JP" "\0"
+	   /* Chinese */
+	   "eucTW" "\0" "EUC-TW" "\0"
+	   "DECHANYU" "\0" "DEC-HANYU" "\0"
+	   "DECHANZI" "\0" "GB2312" "\0"
+	   /* Korean */
+	   "DECKOREAN" "\0" "EUC-KR" "\0";
+# endif
+
+# if defined WIN32_NATIVE || defined __CYGWIN__
+      /* To avoid the troubles of installing a separate file in the same
+	 directory as the DLL and of retrieving the DLL's directory at
+	 runtime, simply inline the aliases here.  */
+
+      cp = "CP936" "\0" "GBK" "\0"
+	   "CP1361" "\0" "JOHAB" "\0"
+	   "CP20127" "\0" "ASCII" "\0"
+	   "CP20866" "\0" "KOI8-R" "\0"
+	   "CP20936" "\0" "GB2312" "\0"
+	   "CP21866" "\0" "KOI8-RU" "\0"
+	   "CP28591" "\0" "ISO-8859-1" "\0"
+	   "CP28592" "\0" "ISO-8859-2" "\0"
+	   "CP28593" "\0" "ISO-8859-3" "\0"
+	   "CP28594" "\0" "ISO-8859-4" "\0"
+	   "CP28595" "\0" "ISO-8859-5" "\0"
+	   "CP28596" "\0" "ISO-8859-6" "\0"
+	   "CP28597" "\0" "ISO-8859-7" "\0"
+	   "CP28598" "\0" "ISO-8859-8" "\0"
+	   "CP28599" "\0" "ISO-8859-9" "\0"
+	   "CP28605" "\0" "ISO-8859-15" "\0"
+	   "CP38598" "\0" "ISO-8859-8" "\0"
+	   "CP51932" "\0" "EUC-JP" "\0"
+	   "CP51936" "\0" "GB2312" "\0"
+	   "CP51949" "\0" "EUC-KR" "\0"
+	   "CP51950" "\0" "EUC-TW" "\0"
+	   "CP54936" "\0" "GB18030" "\0"
+	   "CP65001" "\0" "UTF-8" "\0";
+# endif
+#endif
+
+      charset_aliases = cp;
+    }
+
+  return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name.  */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset (void)
+{
+  const char *codeset;
+  const char *aliases;
+
+#if !(defined WIN32_NATIVE || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+  /* Most systems support nl_langinfo (CODESET) nowadays.  */
+  codeset = nl_langinfo (CODESET);
+
+#  ifdef __CYGWIN__
+  /* Cygwin 2006 does not have locales.  nl_langinfo (CODESET) always
+     returns "US-ASCII".  As long as this is not fixed, return the suffix
+     of the locale name from the environment variables (if present) or
+     the codepage as a number.  */
+  if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+    {
+      const char *locale;
+      static char buf[2 + 10 + 1];
+
+      locale = getenv ("LC_ALL");
+      if (locale == NULL || locale[0] == '\0')
+	{
+	  locale = getenv ("LC_CTYPE");
+	  if (locale == NULL || locale[0] == '\0')
+	    locale = getenv ("LANG");
+	}
+      if (locale != NULL && locale[0] != '\0')
+	{
+	  /* If the locale name contains an encoding after the dot, return
+	     it.  */
+	  const char *dot = strchr (locale, '.');
+
+	  if (dot != NULL)
+	    {
+	      const char *modifier;
+
+	      dot++;
+	      /* Look for the possible @... trailer and remove it, if any.  */
+	      modifier = strchr (dot, '@');
+	      if (modifier == NULL)
+		return dot;
+	      if (modifier - dot < sizeof (buf))
+		{
+		  memcpy (buf, dot, modifier - dot);
+		  buf [modifier - dot] = '\0';
+		  return buf;
+		}
+	    }
+	}
+
+      /* Woe32 has a function returning the locale's codepage as a number.  */
+      sprintf (buf, "CP%u", GetACP ());
+      codeset = buf;
+    }
+#  endif
+
+# else
+
+  /* On old systems which lack it, use setlocale or getenv.  */
+  const char *locale = NULL;
+
+  /* But most old systems don't have a complete set of locales.  Some
+     (like SunOS 4 or DJGPP) have only the C locale.  Therefore we don't
+     use setlocale here; it would return "C" when it doesn't support the
+     locale name the user has set.  */
+#  if 0
+  locale = setlocale (LC_CTYPE, NULL);
+#  endif
+  if (locale == NULL || locale[0] == '\0')
+    {
+      locale = getenv ("LC_ALL");
+      if (locale == NULL || locale[0] == '\0')
+	{
+	  locale = getenv ("LC_CTYPE");
+	  if (locale == NULL || locale[0] == '\0')
+	    locale = getenv ("LANG");
+	}
+    }
+
+  /* On some old systems, one used to set locale = "iso8859_1". On others,
+     you set it to "language_COUNTRY.charset". In any case, we resolve it
+     through the charset.alias file.  */
+  codeset = locale;
+
+# endif
+
+#elif defined WIN32_NATIVE
+
+  static char buf[2 + 10 + 1];
+
+  /* Woe32 has a function returning the locale's codepage as a number.  */
+  sprintf (buf, "CP%u", GetACP ());
+  codeset = buf;
+
+#elif defined OS2
+
+  const char *locale;
+  static char buf[2 + 10 + 1];
+  ULONG cp[3];
+  ULONG cplen;
+
+  /* Allow user to override the codeset, as set in the operating system,
+     with standard language environment variables.  */
+  locale = getenv ("LC_ALL");
+  if (locale == NULL || locale[0] == '\0')
+    {
+      locale = getenv ("LC_CTYPE");
+      if (locale == NULL || locale[0] == '\0')
+	locale = getenv ("LANG");
+    }
+  if (locale != NULL && locale[0] != '\0')
+    {
+      /* If the locale name contains an encoding after the dot, return it.  */
+      const char *dot = strchr (locale, '.');
+
+      if (dot != NULL)
+	{
+	  const char *modifier;
+
+	  dot++;
+	  /* Look for the possible @... trailer and remove it, if any.  */
+	  modifier = strchr (dot, '@');
+	  if (modifier == NULL)
+	    return dot;
+	  if (modifier - dot < sizeof (buf))
+	    {
+	      memcpy (buf, dot, modifier - dot);
+	      buf [modifier - dot] = '\0';
+	      return buf;
+	    }
+	}
+
+      /* Resolve through the charset.alias file.  */
+      codeset = locale;
+    }
+  else
+    {
+      /* OS/2 has a function returning the locale's codepage as a number.  */
+      if (DosQueryCp (sizeof (cp), cp, &cplen))
+	codeset = "";
+      else
+	{
+	  sprintf (buf, "CP%u", cp[0]);
+	  codeset = buf;
+	}
+    }
+
+#endif
+
+  if (codeset == NULL)
+    /* The canonical name cannot be determined.  */
+    codeset = "";
+
+  /* Resolve alias. */
+  for (aliases = get_charset_aliases ();
+       *aliases != '\0';
+       aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+    if (strcmp (codeset, aliases) == 0
+	|| (aliases[0] == '*' && aliases[1] == '\0'))
+      {
+	codeset = aliases + strlen (aliases) + 1;
+	break;
+      }
+
+  /* Don't return an empty string.  GNU libc and GNU libiconv interpret
+     the empty string as denoting "the locale's character encoding",
+     thus GNU libiconv would call this function a second time.  */
+  if (codeset[0] == '\0')
+    codeset = "ASCII";
+
+  return codeset;
+}
diff --git a/win32/gl/localcharset.h b/win32/gl/localcharset.h
new file mode 100644
index 0000000..c5b9e56
--- /dev/null
+++ b/win32/gl/localcharset.h
@@ -0,0 +1,41 @@
+/* Determine a canonical name for the current locale's character encoding.
+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
+   This file is part of the GNU CHARSET Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name.  */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff --git a/win32/gl/malloc.c b/win32/gl/malloc.c
new file mode 100644
index 0000000..df86e46
--- /dev/null
+++ b/win32/gl/malloc.c
@@ -0,0 +1,57 @@
+/* malloc() function that is glibc compatible.
+
+   Copyright (C) 1997, 1998, 2006, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* written by Jim Meyering and Bruno Haible */
+
+#include <config.h>
+/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h.  */
+#ifdef malloc
+# define NEED_MALLOC_GNU
+# undef malloc
+#endif
+
+/* Specification.  */
+#include <stdlib.h>
+
+#include <errno.h>
+
+/* Call the system's malloc below.  */
+#undef malloc
+
+/* Allocate an N-byte block of memory from the heap.
+   If N is zero, allocate a 1-byte block.  */
+
+void *
+rpl_malloc (size_t n)
+{
+  void *result;
+
+#ifdef NEED_MALLOC_GNU
+  if (n == 0)
+    n = 1;
+#endif
+
+  result = malloc (n);
+
+#if !HAVE_MALLOC_POSIX
+  if (result == NULL)
+    errno = ENOMEM;
+#endif
+
+  return result;
+}
diff --git a/win32/gl/mbchar.c b/win32/gl/mbchar.c
new file mode 100644
index 0000000..cc33b75
--- /dev/null
+++ b/win32/gl/mbchar.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2001 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <limits.h>
+
+#include "mbchar.h"
+
+#if IS_BASIC_ASCII
+
+/* Bit table of characters in the ISO C "basic character set".  */
+unsigned int is_basic_table[UCHAR_MAX / 32 + 1] = {
+    0x00001a00,                 /* '\t' '\v' '\f' */
+    0xffffffef,                 /* ' '...'#' '%'...'?' */
+    0xfffffffe,                 /* 'A'...'Z' '[' '\\' ']' '^' '_' */
+    0x7ffffffe                  /* 'a'...'z' '{' '|' '}' '~' */
+        /* The remaining bits are 0.  */
+};
+
+#endif                          /* IS_BASIC_ASCII */
diff --git a/win32/gl/mbchar.h b/win32/gl/mbchar.h
new file mode 100644
index 0000000..15a44a8
--- /dev/null
+++ b/win32/gl/mbchar.h
@@ -0,0 +1,419 @@
+/* Multibyte character data type.
+   Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno at clisp.org>.  */
+
+/* A multibyte character is a short subsequence of a char* string,
+   representing a single wide character.
+
+   We use multibyte characters instead of wide characters because of
+   the following goals:
+   1) correct multibyte handling, i.e. operate according to the LC_CTYPE
+      locale,
+   2) ease of maintenance, i.e. the maintainer needs not know all details
+      of the ISO C 99 standard,
+   3) don't fail grossly if the input is not in the encoding set by the
+      locale, because often different encodings are in use in the same
+      countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...),
+   4) fast in the case of ASCII characters,
+   5) portability, i.e. don't make unportable assumptions about wchar_t.
+
+   Multibyte characters are only accessed through the mb* macros.
+
+   mb_ptr (mbc)
+     return a pointer to the beginning of the multibyte sequence.
+
+   mb_len (mbc)
+     returns the number of bytes occupied by the multibyte sequence.
+     Always > 0.
+
+   mb_iseq (mbc, sc)
+     returns true if mbc is the standard ASCII character sc.
+
+   mb_isnul (mbc)
+     returns true if mbc is the nul character.
+
+   mb_cmp (mbc1, mbc2)
+     returns a positive, zero, or negative value depending on whether mbc1
+     sorts after, same or before mbc2.
+
+   mb_casecmp (mbc1, mbc2)
+     returns a positive, zero, or negative value depending on whether mbc1
+     sorts after, same or before mbc2, modulo upper/lowercase conversion.
+
+   mb_equal (mbc1, mbc2)
+     returns true if mbc1 and mbc2 are equal.
+
+   mb_caseequal (mbc1, mbc2)
+     returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion.
+
+   mb_isalnum (mbc)
+     returns true if mbc is alphanumeric.
+
+   mb_isalpha (mbc)
+     returns true if mbc is alphabetic.
+
+   mb_isascii(mbc)
+     returns true if mbc is plain ASCII.
+
+   mb_isblank (mbc)
+     returns true if mbc is a blank.
+
+   mb_iscntrl (mbc)
+     returns true if mbc is a control character.
+
+   mb_isdigit (mbc)
+     returns true if mbc is a decimal digit.
+
+   mb_isgraph (mbc)
+     returns true if mbc is a graphic character.
+
+   mb_islower (mbc)
+     returns true if mbc is lowercase.
+
+   mb_isprint (mbc)
+     returns true if mbc is a printable character.
+
+   mb_ispunct (mbc)
+     returns true if mbc is a punctuation character.
+
+   mb_isspace (mbc)
+     returns true if mbc is a space character.
+
+   mb_isupper (mbc)
+     returns true if mbc is uppercase.
+
+   mb_isxdigit (mbc)
+     returns true if mbc is a hexadecimal digit.
+
+   mb_width (mbc)
+     returns the number of columns on the output device occupied by mbc.
+     Always >= 0.
+
+   mb_putc (mbc, stream)
+     outputs mbc on stream, a byte oriented FILE stream opened for output.
+
+   mb_setascii (&mbc, sc)
+     assigns the standard ASCII character sc to mbc.
+
+   mb_copy (&destmbc, &srcmbc)
+     copies srcmbc to destmbc.
+
+   Here are the function prototypes of the macros.
+
+   extern const char *	mb_ptr (const mbchar_t mbc);
+   extern size_t	mb_len (const mbchar_t mbc);
+   extern bool		mb_iseq (const mbchar_t mbc, char sc);
+   extern bool		mb_isnul (const mbchar_t mbc);
+   extern int		mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern int		mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern bool		mb_equal (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern bool		mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2);
+   extern bool		mb_isalnum (const mbchar_t mbc);
+   extern bool		mb_isalpha (const mbchar_t mbc);
+   extern bool		mb_isascii (const mbchar_t mbc);
+   extern bool		mb_isblank (const mbchar_t mbc);
+   extern bool		mb_iscntrl (const mbchar_t mbc);
+   extern bool		mb_isdigit (const mbchar_t mbc);
+   extern bool		mb_isgraph (const mbchar_t mbc);
+   extern bool		mb_islower (const mbchar_t mbc);
+   extern bool		mb_isprint (const mbchar_t mbc);
+   extern bool		mb_ispunct (const mbchar_t mbc);
+   extern bool		mb_isspace (const mbchar_t mbc);
+   extern bool		mb_isupper (const mbchar_t mbc);
+   extern bool		mb_isxdigit (const mbchar_t mbc);
+   extern int		mb_width (const mbchar_t mbc);
+   extern void		mb_putc (const mbchar_t mbc, FILE *stream);
+   extern void          mb_setascii (mbchar_t *new, char sc);
+   extern void		mb_copy (mbchar_t *new, const mbchar_t *old);
+ */
+
+#ifndef _MBCHAR_H
+#define _MBCHAR_H 1
+
+#include <stdbool.h>
+#include <string.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+   <wchar.h>.  */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+#include <wctype.h>
+
+#define MBCHAR_BUF_SIZE 24
+
+struct mbchar {
+    const char *ptr;            /* pointer to current character */
+    size_t bytes;               /* number of bytes of current character, > 0 */
+    bool wc_valid;              /* true if wc is a valid wide character */
+    wchar_t wc;                 /* if wc_valid: the current character */
+    char buf[MBCHAR_BUF_SIZE];  /* room for the bytes, used for file input only */
+};
+
+/* EOF (not a real character) is represented with bytes = 0 and
+   wc_valid = false.  */
+
+typedef struct mbchar mbchar_t;
+
+/* Access the current character.  */
+#define mb_ptr(mbc) ((mbc).ptr)
+#define mb_len(mbc) ((mbc).bytes)
+
+/* Comparison of characters.  */
+#define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc))
+#define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0)
+#define mb_cmp(mbc1, mbc2) \
+  ((mbc1).wc_valid							\
+   ? ((mbc2).wc_valid							\
+      ? (int) (mbc1).wc - (int) (mbc2).wc				\
+      : -1)								\
+   : ((mbc2).wc_valid							\
+      ? 1								\
+      : (mbc1).bytes == (mbc2).bytes					\
+        ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
+        : (mbc1).bytes < (mbc2).bytes					\
+          ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+          : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+#define mb_casecmp(mbc1, mbc2) \
+  ((mbc1).wc_valid							\
+   ? ((mbc2).wc_valid							\
+      ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc)		\
+      : -1)								\
+   : ((mbc2).wc_valid							\
+      ? 1								\
+      : (mbc1).bytes == (mbc2).bytes					\
+        ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
+        : (mbc1).bytes < (mbc2).bytes					\
+          ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+          : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+#define mb_equal(mbc1, mbc2) \
+  ((mbc1).wc_valid && (mbc2).wc_valid					\
+   ? (mbc1).wc == (mbc2).wc						\
+   : (mbc1).bytes == (mbc2).bytes					\
+     && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+#define mb_caseequal(mbc1, mbc2) \
+  ((mbc1).wc_valid && (mbc2).wc_valid					\
+   ? towlower ((mbc1).wc) == towlower ((mbc2).wc)			\
+   : (mbc1).bytes == (mbc2).bytes					\
+     && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+
+/* <ctype.h>, <wctype.h> classification.  */
+#define mb_isascii(mbc) \
+  ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127)
+#define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc))
+#define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc))
+#define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc))
+#define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc))
+#define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc))
+#define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc))
+#define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc))
+#define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc))
+#define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc))
+#define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc))
+#define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc))
+#define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc))
+
+/* Extra <wchar.h> function.  */
+
+/* Unprintable characters appear as a small box of width 1.  */
+#define MB_UNPRINTABLE_WIDTH 1
+
+static inline int mb_width_aux(wint_t wc)
+{
+    int w = wcwidth(wc);
+    /* For unprintable characters, arbitrarily return 0 for control characters
+       and MB_UNPRINTABLE_WIDTH otherwise.  */
+    return (w >= 0 ? w : iswcntrl(wc) ? 0 : MB_UNPRINTABLE_WIDTH);
+}
+
+#define mb_width(mbc) \
+  ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH)
+
+/* Output.  */
+#define mb_putc(mbc, stream)  fwrite ((mbc).ptr, 1, (mbc).bytes, (stream))
+
+/* Assignment.  */
+#define mb_setascii(mbc, sc) \
+  ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \
+   (mbc)->wc = (mbc)->buf[0] = (sc))
+
+/* Copying a character.  */
+static inline void mb_copy(mbchar_t * new, const mbchar_t * old)
+{
+    if (old->ptr == &old->buf[0]) {
+        memcpy(&new->buf[0], &old->buf[0], old->bytes);
+        new->ptr = &new->buf[0];
+    } else
+        new->ptr = old->ptr;
+    new->bytes = old->bytes;
+    if ((new->wc_valid = old->wc_valid))
+        new->wc = old->wc;
+}
+
+
+/* is_basic(c) tests whether the single-byte character c is in the
+   ISO C "basic character set".
+   This is a convenience function, and is in this file only to share code
+   between mbiter_multi.h and mbfile_multi.h.  */
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+    && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+    && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+    && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+    && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+    && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+    && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+    && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+    && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+    && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+    && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+    && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+    && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+    && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+    && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+    && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+    && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+    && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+    && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+    && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+    && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+    && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+    && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ISO-646, not EBCDIC. */
+# define IS_BASIC_ASCII 1
+
+extern unsigned int is_basic_table[];
+
+static inline bool is_basic(char c)
+{
+    return (is_basic_table[(unsigned char) c >> 5] >>
+            ((unsigned char) c & 31))
+        & 1;
+}
+
+#else
+
+static inline bool is_basic(char c)
+{
+    switch (c) {
+    case '\t':
+    case '\v':
+    case '\f':
+    case ' ':
+    case '!':
+    case '"':
+    case '#':
+    case '%':
+    case '&':
+    case '\'':
+    case '(':
+    case ')':
+    case '*':
+    case '+':
+    case ',':
+    case '-':
+    case '.':
+    case '/':
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':
+    case ':':
+    case ';':
+    case '<':
+    case '=':
+    case '>':
+    case '?':
+    case 'A':
+    case 'B':
+    case 'C':
+    case 'D':
+    case 'E':
+    case 'F':
+    case 'G':
+    case 'H':
+    case 'I':
+    case 'J':
+    case 'K':
+    case 'L':
+    case 'M':
+    case 'N':
+    case 'O':
+    case 'P':
+    case 'Q':
+    case 'R':
+    case 'S':
+    case 'T':
+    case 'U':
+    case 'V':
+    case 'W':
+    case 'X':
+    case 'Y':
+    case 'Z':
+    case '[':
+    case '\\':
+    case ']':
+    case '^':
+    case '_':
+    case 'a':
+    case 'b':
+    case 'c':
+    case 'd':
+    case 'e':
+    case 'f':
+    case 'g':
+    case 'h':
+    case 'i':
+    case 'j':
+    case 'k':
+    case 'l':
+    case 'm':
+    case 'n':
+    case 'o':
+    case 'p':
+    case 'q':
+    case 'r':
+    case 's':
+    case 't':
+    case 'u':
+    case 'v':
+    case 'w':
+    case 'x':
+    case 'y':
+    case 'z':
+    case '{':
+    case '|':
+    case '}':
+    case '~':
+        return 1;
+    default:
+        return 0;
+    }
+}
+
+#endif
+
+#endif                          /* _MBCHAR_H */
diff --git a/win32/gl/mbuiter.h b/win32/gl/mbuiter.h
new file mode 100644
index 0000000..697fc96
--- /dev/null
+++ b/win32/gl/mbuiter.h
@@ -0,0 +1,192 @@
+/* Iterating through multibyte strings: macros for multi-byte encodings.
+   Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno at clisp.org>.  */
+
+/* The macros in this file implement forward iteration through a
+   multi-byte string, without knowing its length a-priori.
+
+   With these macros, an iteration loop that looks like
+
+      char *iter;
+      for (iter = buf; *iter != '\0'; iter++)
+        {
+          do_something (*iter);
+        }
+
+   becomes
+
+      mbui_iterator_t iter;
+      for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter))
+        {
+          do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter)));
+        }
+
+   The benefit of these macros over plain use of mbrtowc is:
+   - Handling of invalid multibyte sequences is possible without
+     making the code more complicated, while still preserving the
+     invalid multibyte sequences.
+
+   Compared to mbiter.h, the macros here don't need to know the string's
+   length a-priori.  The downside is that at each step, the look-ahead
+   that guards against overrunning the terminating '\0' is more expensive.
+   The mbui_* macros are therefore suitable when there is a high probability
+   that only the first few multibyte characters need to be inspected.
+   Whereas the mbi_* macros are better if usually the iteration runs
+   through the entire string.
+
+   mbui_iterator_t
+     is a type usable for variable declarations.
+
+   mbui_init (iter, startptr)
+     initializes the iterator, starting at startptr.
+
+   mbui_avail (iter)
+     returns true if there are more multibyte chracters available before
+     the end of string is reached. In this case, mbui_cur (iter) is
+     initialized to the next multibyte chracter.
+
+   mbui_advance (iter)
+     advances the iterator by one multibyte character.
+
+   mbui_cur (iter)
+     returns the current multibyte character, of type mbchar_t.  All the
+     macros defined in mbchar.h can be used on it.
+
+   mbui_cur_ptr (iter)
+     return a pointer to the beginning of the current multibyte character.
+
+   mbui_reloc (iter, ptrdiff)
+     relocates iterator when the string is moved by ptrdiff bytes.
+
+   Here are the function prototypes of the macros.
+
+   extern void		mbui_init (mbui_iterator_t iter, const char *startptr);
+   extern bool		mbui_avail (mbui_iterator_t iter);
+   extern void		mbui_advance (mbui_iterator_t iter);
+   extern mbchar_t	mbui_cur (mbui_iterator_t iter);
+   extern const char *	mbui_cur_ptr (mbui_iterator_t iter);
+   extern void		mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff);
+ */
+
+#ifndef _MBUITER_H
+#define _MBUITER_H 1
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+   <wchar.h>.  */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+#include "mbchar.h"
+#include "strnlen1.h"
+
+struct mbuiter_multi {
+    bool in_shift;              /* true if next byte may not be interpreted as ASCII */
+    mbstate_t state;            /* if in_shift: current shift state */
+    bool next_done;             /* true if mbui_avail has already filled the following */
+    struct mbchar cur;          /* the current character:
+                                   const char *cur.ptr          pointer to current character
+                                   The following are only valid after mbui_avail.
+                                   size_t cur.bytes             number of bytes of current character
+                                   bool cur.wc_valid            true if wc is a valid wide character
+                                   wchar_t cur.wc                       if wc_valid: the current character
+                                 */
+};
+
+static inline void mbuiter_multi_next(struct mbuiter_multi *iter)
+{
+    if (iter->next_done)
+        return;
+    if (iter->in_shift)
+        goto with_shift;
+    /* Handle most ASCII characters quickly, without calling mbrtowc().  */
+    if (is_basic(*iter->cur.ptr)) {
+        /* These characters are part of the basic character set.  ISO C 99
+           guarantees that their wide character code is identical to their
+           char code.  */
+        iter->cur.bytes = 1;
+        iter->cur.wc = *iter->cur.ptr;
+        iter->cur.wc_valid = true;
+    } else {
+        assert(mbsinit(&iter->state));
+        iter->in_shift = true;
+      with_shift:
+        iter->cur.bytes = mbrtowc(&iter->cur.wc, iter->cur.ptr,
+                                  strnlen1(iter->cur.ptr, MB_CUR_MAX),
+                                  &iter->state);
+        if (iter->cur.bytes == (size_t) - 1) {
+            /* An invalid multibyte sequence was encountered.  */
+            iter->cur.bytes = 1;
+            iter->cur.wc_valid = false;
+            /* Whether to set iter->in_shift = false and reset iter->state
+               or not is not very important; the string is bogus anyway.  */
+        } else if (iter->cur.bytes == (size_t) - 2) {
+            /* An incomplete multibyte character at the end.  */
+            iter->cur.bytes = strlen(iter->cur.ptr);
+            iter->cur.wc_valid = false;
+            /* Whether to set iter->in_shift = false and reset iter->state
+               or not is not important; the string end is reached anyway.  */
+        } else {
+            if (iter->cur.bytes == 0) {
+                /* A null wide character was encountered.  */
+                iter->cur.bytes = 1;
+                assert(*iter->cur.ptr == '\0');
+                assert(iter->cur.wc == 0);
+            }
+            iter->cur.wc_valid = true;
+
+            /* When in the initial state, we can go back treating ASCII
+               characters more quickly.  */
+            if (mbsinit(&iter->state))
+                iter->in_shift = false;
+        }
+    }
+    iter->next_done = true;
+}
+
+static inline void
+mbuiter_multi_reloc(struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
+{
+    iter->cur.ptr += ptrdiff;
+}
+
+/* Iteration macros.  */
+typedef struct mbuiter_multi mbui_iterator_t;
+#define mbui_init(iter, startptr) \
+  ((iter).cur.ptr = (startptr), \
+   (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
+   (iter).next_done = false)
+#define mbui_avail(iter) \
+  (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
+#define mbui_advance(iter) \
+  ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
+
+/* Access to the current character.  */
+#define mbui_cur(iter) (iter).cur
+#define mbui_cur_ptr(iter) (iter).cur.ptr
+
+/* Relocation.  */
+#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
+
+#endif                          /* _MBUITER_H */
diff --git a/win32/gl/memchr.c b/win32/gl/memchr.c
new file mode 100644
index 0000000..6ced82f
--- /dev/null
+++ b/win32/gl/memchr.c
@@ -0,0 +1,198 @@
+/* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004 Free
+   Software Foundation, Inc.
+
+   Based on strlen implementation by Torbjorn Granlund (tege at sics.se),
+   with help from Dan Sahlin (dan at sics.se) and
+   commentary by Jim Blandy (jimb at ai.mit.edu);
+   adaptation to memchr suggested by Dick Karpinski (dick at cca.ucsf.edu),
+   and implemented by Roland McGrath (roland at ai.mit.edu).
+
+NOTE: The canonical source of this file is maintained with the GNU C Library.
+Bugs can be reported to bug-glibc at prep.ai.mit.edu.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as published by the
+Free Software Foundation; either version 2.1, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+
+#include <stddef.h>
+
+#if defined _LIBC
+# include <memcopy.h>
+#else
+# define reg_char char
+#endif
+
+#include <limits.h>
+
+#if HAVE_BP_SYM_H || defined _LIBC
+# include <bp-sym.h>
+#else
+# define BP_SYM(sym) sym
+#endif
+
+#undef memchr
+#undef __memchr
+
+/* Search no more than N bytes of S for C.  */
+void *__memchr(void const *s, int c_in, size_t n)
+{
+    const unsigned char *char_ptr;
+    const unsigned long int *longword_ptr;
+    unsigned long int longword, magic_bits, charmask;
+    unsigned reg_char c;
+    int i;
+
+    c = (unsigned char) c_in;
+
+    /* Handle the first few characters by reading one character at a time.
+       Do this until CHAR_PTR is aligned on a longword boundary.  */
+    for (char_ptr = (const unsigned char *) s;
+         n > 0 && (size_t) char_ptr % sizeof longword != 0;
+         --n, ++char_ptr)
+        if (*char_ptr == c)
+            return (void *) char_ptr;
+
+    /* All these elucidatory comments refer to 4-byte longwords,
+       but the theory applies equally well to any size longwords.  */
+
+    longword_ptr = (const unsigned long int *) char_ptr;
+
+    /* Bits 31, 24, 16, and 8 of this number are zero.  Call these bits
+       the "holes."  Note that there is a hole just to the left of
+       each byte, with an extra at the end:
+
+       bits:  01111110 11111110 11111110 11111111
+       bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
+
+       The 1-bits make sure that carries propagate to the next 0-bit.
+       The 0-bits provide holes for carries to fall into.  */
+
+    /* Set MAGIC_BITS to be this pattern of 1 and 0 bits.
+       Set CHARMASK to be a longword, each of whose bytes is C.  */
+
+    magic_bits = 0xfefefefe;
+    charmask = c | (c << 8);
+    charmask |= charmask << 16;
+#if 0xffffffffU < ULONG_MAX
+    magic_bits |= magic_bits << 32;
+    charmask |= charmask << 32;
+    if (8 < sizeof longword)
+        for (i = 64; i < sizeof longword * 8; i *= 2) {
+            magic_bits |= magic_bits << i;
+            charmask |= charmask << i;
+        }
+#endif
+    magic_bits = (ULONG_MAX >> 1) & (magic_bits | 1);
+
+    /* Instead of the traditional loop which tests each character,
+       we will test a longword at a time.  The tricky part is testing
+       if *any of the four* bytes in the longword in question are zero.  */
+    while (n >= sizeof longword) {
+        /* We tentatively exit the loop if adding MAGIC_BITS to
+           LONGWORD fails to change any of the hole bits of LONGWORD.
+
+           1) Is this safe?  Will it catch all the zero bytes?
+           Suppose there is a byte with all zeros.  Any carry bits
+           propagating from its left will fall into the hole at its
+           least significant bit and stop.  Since there will be no
+           carry from its most significant bit, the LSB of the
+           byte to the left will be unchanged, and the zero will be
+           detected.
+
+           2) Is this worthwhile?  Will it ignore everything except
+           zero bytes?  Suppose every byte of LONGWORD has a bit set
+           somewhere.  There will be a carry into bit 8.  If bit 8
+           is set, this will carry into bit 16.  If bit 8 is clear,
+           one of bits 9-15 must be set, so there will be a carry
+           into bit 16.  Similarly, there will be a carry into bit
+           24.  If one of bits 24-30 is set, there will be a carry
+           into bit 31, so all of the hole bits will be changed.
+
+           The one misfire occurs when bits 24-30 are clear and bit
+           31 is set; in this case, the hole at bit 31 is not
+           changed.  If we had access to the processor carry flag,
+           we could close this loophole by putting the fourth hole
+           at bit 32!
+
+           So it ignores everything except 128's, when they're aligned
+           properly.
+
+           3) But wait!  Aren't we looking for C, not zero?
+           Good point.  So what we do is XOR LONGWORD with a longword,
+           each of whose bytes is C.  This turns each byte that is C
+           into a zero.  */
+
+        longword = *longword_ptr++ ^ charmask;
+
+        /* Add MAGIC_BITS to LONGWORD.  */
+        if ((((longword + magic_bits)
+
+              /* Set those bits that were unchanged by the addition.  */
+              ^ ~longword)
+
+             /* Look at only the hole bits.  If any of the hole bits
+                are unchanged, most likely one of the bytes was a
+                zero.  */
+             & ~magic_bits) != 0) {
+            /* Which of the bytes was C?  If none of them were, it was
+               a misfire; continue the search.  */
+
+            const unsigned char *cp =
+                (const unsigned char *) (longword_ptr - 1);
+
+            if (cp[0] == c)
+                return (void *) cp;
+            if (cp[1] == c)
+                return (void *) &cp[1];
+            if (cp[2] == c)
+                return (void *) &cp[2];
+            if (cp[3] == c)
+                return (void *) &cp[3];
+            if (4 < sizeof longword && cp[4] == c)
+                return (void *) &cp[4];
+            if (5 < sizeof longword && cp[5] == c)
+                return (void *) &cp[5];
+            if (6 < sizeof longword && cp[6] == c)
+                return (void *) &cp[6];
+            if (7 < sizeof longword && cp[7] == c)
+                return (void *) &cp[7];
+            if (8 < sizeof longword)
+                for (i = 8; i < sizeof longword; i++)
+                    if (cp[i] == c)
+                        return (void *) &cp[i];
+        }
+
+        n -= sizeof longword;
+    }
+
+    char_ptr = (const unsigned char *) longword_ptr;
+
+    while (n-- > 0) {
+        if (*char_ptr == c)
+            return (void *) char_ptr;
+        else
+            ++char_ptr;
+    }
+
+    return 0;
+}
+
+#ifdef weak_alias
+weak_alias(__memchr, BP_SYM(memchr))
+#endif
diff --git a/win32/gl/ref-add.sin b/win32/gl/ref-add.sin
new file mode 100644
index 0000000..2e9a372
--- /dev/null
+++ b/win32/gl/ref-add.sin
@@ -0,0 +1,30 @@
+# Add this package to a list of references stored in a text file.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU Lesser General Public License as published by
+#   the Free Software Foundation; either version 2.1, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU Lesser General Public License for more details.
+#
+#   You should have received a copy of the GNU Lesser General Public License along
+#   with this program; if not, write to the Free Software Foundation,
+#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Written by Bruno Haible <haible at clisp.cons.org>.
+#
+/^# Packages using this file: / {
+  s/# Packages using this file://
+  ta
+  :a
+  s/ @PACKAGE@ / @PACKAGE@ /
+  tb
+  s/ $/ @PACKAGE@ /
+  :b
+  s/^/# Packages using this file:/
+}
diff --git a/win32/gl/ref-del.sin b/win32/gl/ref-del.sin
new file mode 100644
index 0000000..49b5a35
--- /dev/null
+++ b/win32/gl/ref-del.sin
@@ -0,0 +1,25 @@
+# Remove this package from a list of references stored in a text file.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU Lesser General Public License as published by
+#   the Free Software Foundation; either version 2.1, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU Lesser General Public License for more details.
+#
+#   You should have received a copy of the GNU Lesser General Public License along
+#   with this program; if not, write to the Free Software Foundation,
+#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Written by Bruno Haible <haible at clisp.cons.org>.
+#
+/^# Packages using this file: / {
+  s/# Packages using this file://
+  s/ @PACKAGE@ / /
+  s/^/# Packages using this file:/
+}
diff --git a/win32/gl/regcomp.c b/win32/gl/regcomp.c
new file mode 100644
index 0000000..f26845a
--- /dev/null
+++ b/win32/gl/regcomp.c
@@ -0,0 +1,2181 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu at yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
+					  size_t length, reg_syntax_t syntax);
+static void re_compile_fastmap_iter (regex_t *bufp,
+				     const re_dfastate_t *init_state,
+				     char *fastmap);
+static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
+#ifdef RE_ENABLE_I18N
+static void free_charset (re_charset_t *cset);
+#endif /* RE_ENABLE_I18N */
+static void free_workarea_compile (regex_t *preg);
+static reg_errcode_t create_initial_state (re_dfa_t *dfa);
+#ifdef RE_ENABLE_I18N
+static void optimize_utf8 (re_dfa_t *dfa);
+#endif
+static reg_errcode_t analyze (regex_t *preg);
+static reg_errcode_t preorder (bin_tree_t *root,
+			       reg_errcode_t (fn (void *, bin_tree_t *)),
+			       void *extra);
+static reg_errcode_t postorder (bin_tree_t *root,
+				reg_errcode_t (fn (void *, bin_tree_t *)),
+				void *extra);
+static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node);
+static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node);
+static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg,
+				 bin_tree_t *node);
+static reg_errcode_t calc_first (void *extra, bin_tree_t *node);
+static reg_errcode_t calc_next (void *extra, bin_tree_t *node);
+static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node);
+static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint);
+static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
+				   unsigned int constraint);
+static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
+static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
+					 Idx node, bool root);
+static reg_errcode_t calc_inveclosure (re_dfa_t *dfa);
+static Idx fetch_number (re_string_t *input, re_token_t *token,
+			 reg_syntax_t syntax);
+static int peek_token (re_token_t *token, re_string_t *input,
+			reg_syntax_t syntax) internal_function;
+static bin_tree_t *parse (re_string_t *regexp, regex_t *preg,
+			  reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg,
+				  re_token_t *token, reg_syntax_t syntax,
+				  Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg,
+				 re_token_t *token, reg_syntax_t syntax,
+				 Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg,
+				     re_token_t *token, reg_syntax_t syntax,
+				     Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg,
+				  re_token_t *token, reg_syntax_t syntax,
+				  Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp,
+				 re_dfa_t *dfa, re_token_t *token,
+				 reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa,
+				      re_token_t *token, reg_syntax_t syntax,
+				      reg_errcode_t *err);
+static reg_errcode_t parse_bracket_element (bracket_elem_t *elem,
+					    re_string_t *regexp,
+					    re_token_t *token, int token_len,
+					    re_dfa_t *dfa,
+					    reg_syntax_t syntax,
+					    bool accept_hyphen);
+static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem,
+					  re_string_t *regexp,
+					  re_token_t *token);
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+					re_charset_t *mbcset,
+					Idx *equiv_class_alloc,
+					const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+				      bitset_t sbcset,
+				      re_charset_t *mbcset,
+				      Idx *char_class_alloc,
+				      const unsigned char *class_name,
+				      reg_syntax_t syntax);
+#else  /* not RE_ENABLE_I18N */
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+					const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+				      bitset_t sbcset,
+				      const unsigned char *class_name,
+				      reg_syntax_t syntax);
+#endif /* not RE_ENABLE_I18N */
+static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
+				       RE_TRANSLATE_TYPE trans,
+				       const unsigned char *class_name,
+				       const unsigned char *extra,
+				       bool non_match, reg_errcode_t *err);
+static bin_tree_t *create_tree (re_dfa_t *dfa,
+				bin_tree_t *left, bin_tree_t *right,
+				re_token_type_t type);
+static bin_tree_t *create_token_tree (re_dfa_t *dfa,
+				      bin_tree_t *left, bin_tree_t *right,
+				      const re_token_t *token);
+static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa);
+static void free_token (re_token_t *node);
+static reg_errcode_t free_tree (void *extra, bin_tree_t *node);
+static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node);
+
+/* This table gives an error message for each of the error codes listed
+   in regex.h.  Obviously the order here has to be same as there.
+   POSIX doesn't require that we do anything for REG_NOERROR,
+   but why not be nice?  */
+
+static const char __re_error_msgid[] =
+  {
+#define REG_NOERROR_IDX	0
+    gettext_noop ("Success")	/* REG_NOERROR */
+    "\0"
+#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
+    gettext_noop ("No match")	/* REG_NOMATCH */
+    "\0"
+#define REG_BADPAT_IDX	(REG_NOMATCH_IDX + sizeof "No match")
+    gettext_noop ("Invalid regular expression") /* REG_BADPAT */
+    "\0"
+#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
+    gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
+    "\0"
+#define REG_ECTYPE_IDX	(REG_ECOLLATE_IDX + sizeof "Invalid collation character")
+    gettext_noop ("Invalid character class name") /* REG_ECTYPE */
+    "\0"
+#define REG_EESCAPE_IDX	(REG_ECTYPE_IDX + sizeof "Invalid character class name")
+    gettext_noop ("Trailing backslash") /* REG_EESCAPE */
+    "\0"
+#define REG_ESUBREG_IDX	(REG_EESCAPE_IDX + sizeof "Trailing backslash")
+    gettext_noop ("Invalid back reference") /* REG_ESUBREG */
+    "\0"
+#define REG_EBRACK_IDX	(REG_ESUBREG_IDX + sizeof "Invalid back reference")
+    gettext_noop ("Unmatched [ or [^")	/* REG_EBRACK */
+    "\0"
+#define REG_EPAREN_IDX	(REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+    gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
+    "\0"
+#define REG_EBRACE_IDX	(REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
+    gettext_noop ("Unmatched \\{") /* REG_EBRACE */
+    "\0"
+#define REG_BADBR_IDX	(REG_EBRACE_IDX + sizeof "Unmatched \\{")
+    gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
+    "\0"
+#define REG_ERANGE_IDX	(REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
+    gettext_noop ("Invalid range end")	/* REG_ERANGE */
+    "\0"
+#define REG_ESPACE_IDX	(REG_ERANGE_IDX + sizeof "Invalid range end")
+    gettext_noop ("Memory exhausted") /* REG_ESPACE */
+    "\0"
+#define REG_BADRPT_IDX	(REG_ESPACE_IDX + sizeof "Memory exhausted")
+    gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
+    "\0"
+#define REG_EEND_IDX	(REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
+    gettext_noop ("Premature end of regular expression") /* REG_EEND */
+    "\0"
+#define REG_ESIZE_IDX	(REG_EEND_IDX + sizeof "Premature end of regular expression")
+    gettext_noop ("Regular expression too big") /* REG_ESIZE */
+    "\0"
+#define REG_ERPAREN_IDX	(REG_ESIZE_IDX + sizeof "Regular expression too big")
+    gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
+  };
+
+static const size_t __re_error_msgid_idx[] =
+  {
+    REG_NOERROR_IDX,
+    REG_NOMATCH_IDX,
+    REG_BADPAT_IDX,
+    REG_ECOLLATE_IDX,
+    REG_ECTYPE_IDX,
+    REG_EESCAPE_IDX,
+    REG_ESUBREG_IDX,
+    REG_EBRACK_IDX,
+    REG_EPAREN_IDX,
+    REG_EBRACE_IDX,
+    REG_BADBR_IDX,
+    REG_ERANGE_IDX,
+    REG_ESPACE_IDX,
+    REG_BADRPT_IDX,
+    REG_EEND_IDX,
+    REG_ESIZE_IDX,
+    REG_ERPAREN_IDX
+  };
+
+/* Entry points for GNU code.  */
+
+/* re_compile_pattern is the GNU regular expression compiler: it
+   compiles PATTERN (of length LENGTH) and puts the result in BUFP.
+   Returns 0 if the pattern was valid, otherwise an error string.
+
+   Assumes the `allocated' (and perhaps `buffer') and `translate' fields
+   are set in BUFP on entry.  */
+
+#ifdef _LIBC
+const char *
+re_compile_pattern (pattern, length, bufp)
+    const char *pattern;
+    size_t length;
+    struct re_pattern_buffer *bufp;
+#else /* size_t might promote */
+const char *
+re_compile_pattern (const char *pattern, size_t length,
+		    struct re_pattern_buffer *bufp)
+#endif
+{
+  reg_errcode_t ret;
+
+  /* And GNU code determines whether or not to get register information
+     by passing null for the REGS argument to re_match, etc., not by
+     setting no_sub, unless RE_NO_SUB is set.  */
+  bufp->no_sub = !!(re_syntax_options & RE_NO_SUB);
+
+  /* Match anchors at newline.  */
+  bufp->newline_anchor = 1;
+
+  ret = re_compile_internal (bufp, pattern, length, re_syntax_options);
+
+  if (!ret)
+    return NULL;
+  return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+#ifdef _LIBC
+weak_alias (__re_compile_pattern, re_compile_pattern)
+#endif
+
+/* Set by `re_set_syntax' to the current regexp syntax to recognize.  Can
+   also be assigned to arbitrarily: each pattern buffer stores its own
+   syntax, so it can be changed between regex compilations.  */
+/* This has no initializer because initialized variables in Emacs
+   become read-only after dumping.  */
+reg_syntax_t re_syntax_options;
+
+
+/* Specify the precise syntax of regexps for compilation.  This provides
+   for compatibility for various utilities which historically have
+   different, incompatible syntaxes.
+
+   The argument SYNTAX is a bit mask comprised of the various bits
+   defined in regex.h.  We return the old syntax.  */
+
+reg_syntax_t
+re_set_syntax (syntax)
+    reg_syntax_t syntax;
+{
+  reg_syntax_t ret = re_syntax_options;
+
+  re_syntax_options = syntax;
+  return ret;
+}
+#ifdef _LIBC
+weak_alias (__re_set_syntax, re_set_syntax)
+#endif
+
+int
+re_compile_fastmap (bufp)
+    struct re_pattern_buffer *bufp;
+{
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  char *fastmap = bufp->fastmap;
+
+  memset (fastmap, '\0', sizeof (char) * SBC_MAX);
+  re_compile_fastmap_iter (bufp, dfa->init_state, fastmap);
+  if (dfa->init_state != dfa->init_state_word)
+    re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap);
+  if (dfa->init_state != dfa->init_state_nl)
+    re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap);
+  if (dfa->init_state != dfa->init_state_begbuf)
+    re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap);
+  bufp->fastmap_accurate = 1;
+  return 0;
+}
+#ifdef _LIBC
+weak_alias (__re_compile_fastmap, re_compile_fastmap)
+#endif
+
+static _inline void
+__attribute ((always_inline))
+re_set_fastmap (char *fastmap, bool icase, int ch)
+{
+  fastmap[ch] = 1;
+  if (icase)
+    fastmap[tolower (ch)] = 1;
+}
+
+/* Helper function for re_compile_fastmap.
+   Compile fastmap for the initial_state INIT_STATE.  */
+
+static void
+re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
+			 char *fastmap)
+{
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  Idx node_cnt;
+  bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE));
+  for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
+    {
+      Idx node = init_state->nodes.elems[node_cnt];
+      re_token_type_t type = dfa->nodes[node].type;
+
+      if (type == CHARACTER)
+	{
+	  re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
+#ifdef RE_ENABLE_I18N
+	  if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+	    {
+	      unsigned char buf[MB_LEN_MAX];
+	      unsigned char *p;
+	      wchar_t wc;
+	      mbstate_t state;
+
+	      p = buf;
+	      *p++ = dfa->nodes[node].opr.c;
+	      while (++node < dfa->nodes_len
+		     &&	dfa->nodes[node].type == CHARACTER
+		     && dfa->nodes[node].mb_partial)
+		*p++ = dfa->nodes[node].opr.c;
+	      memset (&state, '\0', sizeof (state));
+	      if (mbrtowc (&wc, (const char *) buf, p - buf,
+			   &state) == p - buf
+		  && (__wcrtomb ((char *) buf, towlower (wc), &state)
+		      != (size_t) -1))
+		re_set_fastmap (fastmap, false, buf[0]);
+	    }
+#endif
+	}
+      else if (type == SIMPLE_BRACKET)
+	{
+	  int i, ch;
+	  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+	    {
+	      int j;
+	      bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
+	      for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+		if (w & ((bitset_word_t) 1 << j))
+		  re_set_fastmap (fastmap, icase, ch);
+	    }
+	}
+#ifdef RE_ENABLE_I18N
+      else if (type == COMPLEX_BRACKET)
+	{
+	  Idx i;
+	  re_charset_t *cset = dfa->nodes[node].opr.mbcset;
+	  if (cset->non_match || cset->ncoll_syms || cset->nequiv_classes
+	      || cset->nranges || cset->nchar_classes)
+	    {
+# ifdef _LIBC
+	      if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0)
+		{
+		  /* In this case we want to catch the bytes which are
+		     the first byte of any collation elements.
+		     e.g. In da_DK, we want to catch 'a' since "aa"
+			  is a valid collation element, and don't catch
+			  'b' since 'b' is the only collation element
+			  which starts from 'b'.  */
+		  const int32_t *table = (const int32_t *)
+		    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+		  for (i = 0; i < SBC_MAX; ++i)
+		    if (table[i] < 0)
+		      re_set_fastmap (fastmap, icase, i);
+		}
+# else
+	      if (dfa->mb_cur_max > 1)
+		for (i = 0; i < SBC_MAX; ++i)
+		  if (__btowc (i) == WEOF)
+		    re_set_fastmap (fastmap, icase, i);
+# endif /* not _LIBC */
+	    }
+	  for (i = 0; i < cset->nmbchars; ++i)
+	    {
+	      char buf[256];
+	      mbstate_t state;
+	      memset (&state, '\0', sizeof (state));
+	      if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1)
+		re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
+	      if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+		{
+		  if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
+		      != (size_t) -1)
+		    re_set_fastmap (fastmap, false, *(unsigned char *) buf);
+		}
+	    }
+	}
+#endif /* RE_ENABLE_I18N */
+      else if (type == OP_PERIOD
+#ifdef RE_ENABLE_I18N
+	       || type == OP_UTF8_PERIOD
+#endif /* RE_ENABLE_I18N */
+	       || type == END_OF_RE)
+	{
+	  memset (fastmap, '\1', sizeof (char) * SBC_MAX);
+	  if (type == END_OF_RE)
+	    bufp->can_be_null = 1;
+	  return;
+	}
+    }
+}
+
+/* Entry point for POSIX code.  */
+/* regcomp takes a regular expression as a string and compiles it.
+
+   PREG is a regex_t *.  We do not expect any fields to be initialized,
+   since POSIX says we shouldn't.  Thus, we set
+
+     `buffer' to the compiled pattern;
+     `used' to the length of the compiled pattern;
+     `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
+       REG_EXTENDED bit in CFLAGS is set; otherwise, to
+       RE_SYNTAX_POSIX_BASIC;
+     `newline_anchor' to REG_NEWLINE being set in CFLAGS;
+     `fastmap' to an allocated space for the fastmap;
+     `fastmap_accurate' to zero;
+     `re_nsub' to the number of subexpressions in PATTERN.
+
+   PATTERN is the address of the pattern string.
+
+   CFLAGS is a series of bits which affect compilation.
+
+     If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
+     use POSIX basic syntax.
+
+     If REG_NEWLINE is set, then . and [^...] don't match newline.
+     Also, regexec will try a match beginning after every newline.
+
+     If REG_ICASE is set, then we considers upper- and lowercase
+     versions of letters to be equivalent when matching.
+
+     If REG_NOSUB is set, then when PREG is passed to regexec, that
+     routine will report only success or failure, and nothing about the
+     registers.
+
+   It returns 0 if it succeeds, nonzero if it doesn't.  (See regex.h for
+   the return codes and their meanings.)  */
+
+int
+regcomp (preg, pattern, cflags)
+    regex_t *_Restrict_ preg;
+    const char *_Restrict_ pattern;
+    int cflags;
+{
+  reg_errcode_t ret;
+  reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
+			 : RE_SYNTAX_POSIX_BASIC);
+
+  preg->buffer = NULL;
+  preg->allocated = 0;
+  preg->used = 0;
+
+  /* Try to allocate space for the fastmap.  */
+  preg->fastmap = re_malloc (char, SBC_MAX);
+  if (BE (preg->fastmap == NULL, 0))
+    return REG_ESPACE;
+
+  syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
+
+  /* If REG_NEWLINE is set, newlines are treated differently.  */
+  if (cflags & REG_NEWLINE)
+    { /* REG_NEWLINE implies neither . nor [^...] match newline.  */
+      syntax &= ~RE_DOT_NEWLINE;
+      syntax |= RE_HAT_LISTS_NOT_NEWLINE;
+      /* It also changes the matching behavior.  */
+      preg->newline_anchor = 1;
+    }
+  else
+    preg->newline_anchor = 0;
+  preg->no_sub = !!(cflags & REG_NOSUB);
+  preg->translate = NULL;
+
+  ret = re_compile_internal (preg, pattern, strlen (pattern), syntax);
+
+  /* POSIX doesn't distinguish between an unmatched open-group and an
+     unmatched close-group: both are REG_EPAREN.  */
+  if (ret == REG_ERPAREN)
+    ret = REG_EPAREN;
+
+  /* We have already checked preg->fastmap != NULL.  */
+  if (BE (ret == REG_NOERROR, 1))
+    /* Compute the fastmap now, since regexec cannot modify the pattern
+       buffer.  This function never fails in this implementation.  */
+    (void) re_compile_fastmap (preg);
+  else
+    {
+      /* Some error occurred while compiling the expression.  */
+      re_free (preg->fastmap);
+      preg->fastmap = NULL;
+    }
+
+  return (int) ret;
+}
+#ifdef _LIBC
+weak_alias (__regcomp, regcomp)
+#endif
+
+/* Returns a message corresponding to an error code, ERRCODE, returned
+   from either regcomp or regexec.   We don't use PREG here.  */
+
+#ifdef _LIBC
+size_t
+regerror (errcode, preg, errbuf, errbuf_size)
+    int errcode;
+    const regex_t *_Restrict_ preg;
+    char *_Restrict_ errbuf;
+    size_t errbuf_size;
+#else /* size_t might promote */
+size_t
+regerror (int errcode, const regex_t *_Restrict_ preg,
+	  char *_Restrict_ errbuf, size_t errbuf_size)
+#endif
+{
+  const char *msg;
+  size_t msg_size;
+
+  if (BE (errcode < 0
+	  || errcode >= (int) (sizeof (__re_error_msgid_idx)
+			       / sizeof (__re_error_msgid_idx[0])), 0))
+    /* Only error codes returned by the rest of the code should be passed
+       to this routine.  If we are given anything else, or if other regex
+       code generates an invalid error code, then the program has a bug.
+       Dump core so we can fix it.  */
+    abort ();
+
+  msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
+
+  msg_size = strlen (msg) + 1; /* Includes the null.  */
+
+  if (BE (errbuf_size != 0, 1))
+    {
+      size_t cpy_size = msg_size;
+      if (BE (msg_size > errbuf_size, 0))
+	{
+	  cpy_size = errbuf_size - 1;
+	  errbuf[cpy_size] = '\0';
+	}
+      memcpy (errbuf, msg, cpy_size);
+    }
+
+  return msg_size;
+}
+#ifdef _LIBC
+weak_alias (__regerror, regerror)
+#endif
+
+
+#ifdef RE_ENABLE_I18N
+/* This static array is used for the map to single-byte characters when
+   UTF-8 is used.  Otherwise we would allocate memory just to initialize
+   it the same all the time.  UTF-8 is the preferred encoding so this is
+   a worthwhile optimization.  */
+static const bitset_t utf8_sb_map =
+{
+  /* Set the first 128 bits.  */
+# if 4 * BITSET_WORD_BITS < ASCII_CHARS
+#  error "bitset_word_t is narrower than 32 bits"
+# elif 3 * BITSET_WORD_BITS < ASCII_CHARS
+  BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX,
+# elif 2 * BITSET_WORD_BITS < ASCII_CHARS
+  BITSET_WORD_MAX, BITSET_WORD_MAX,
+# elif 1 * BITSET_WORD_BITS < ASCII_CHARS
+  BITSET_WORD_MAX,
+# endif
+  (BITSET_WORD_MAX
+   >> (SBC_MAX % BITSET_WORD_BITS == 0
+       ? 0
+       : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS))
+};
+#endif
+
+
+static void
+free_dfa_content (re_dfa_t *dfa)
+{
+  Idx i, j;
+
+  if (dfa->nodes)
+    for (i = 0; i < dfa->nodes_len; ++i)
+      free_token (dfa->nodes + i);
+  re_free (dfa->nexts);
+  for (i = 0; i < dfa->nodes_len; ++i)
+    {
+      if (dfa->eclosures != NULL)
+	re_node_set_free (dfa->eclosures + i);
+      if (dfa->inveclosures != NULL)
+	re_node_set_free (dfa->inveclosures + i);
+      if (dfa->edests != NULL)
+	re_node_set_free (dfa->edests + i);
+    }
+  re_free (dfa->edests);
+  re_free (dfa->eclosures);
+  re_free (dfa->inveclosures);
+  re_free (dfa->nodes);
+
+  if (dfa->state_table)
+    for (i = 0; i <= dfa->state_hash_mask; ++i)
+      {
+	struct re_state_table_entry *entry = dfa->state_table + i;
+	for (j = 0; j < entry->num; ++j)
+	  {
+	    re_dfastate_t *state = entry->array[j];
+	    free_state (state);
+	  }
+        re_free (entry->array);
+      }
+  re_free (dfa->state_table);
+#ifdef RE_ENABLE_I18N
+  if (dfa->sb_char != utf8_sb_map)
+    re_free (dfa->sb_char);
+#endif
+  re_free (dfa->subexp_map);
+#ifdef DEBUG
+  re_free (dfa->re_str);
+#endif
+
+  re_free (dfa);
+}
+
+
+/* Free dynamically allocated space used by PREG.  */
+
+void
+regfree (preg)
+    regex_t *preg;
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  if (BE (dfa != NULL, 1))
+    free_dfa_content (dfa);
+  preg->buffer = NULL;
+  preg->allocated = 0;
+
+  re_free (preg->fastmap);
+  preg->fastmap = NULL;
+
+  re_free (preg->translate);
+  preg->translate = NULL;
+}
+#ifdef _LIBC
+weak_alias (__regfree, regfree)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library.  We don't define
+   them unless specifically requested.  */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+
+/* BSD has one and only one pattern buffer.  */
+static struct re_pattern_buffer re_comp_buf;
+
+char *
+# ifdef _LIBC
+/* Make these definitions weak in libc, so POSIX programs can redefine
+   these names if they don't use our functions, and still use
+   regcomp/regexec above without link errors.  */
+weak_function
+# endif
+re_comp (s)
+     const char *s;
+{
+  reg_errcode_t ret;
+  char *fastmap;
+
+  if (!s)
+    {
+      if (!re_comp_buf.buffer)
+	return gettext ("No previous regular expression");
+      return 0;
+    }
+
+  if (re_comp_buf.buffer)
+    {
+      fastmap = re_comp_buf.fastmap;
+      re_comp_buf.fastmap = NULL;
+      __regfree (&re_comp_buf);
+      memset (&re_comp_buf, '\0', sizeof (re_comp_buf));
+      re_comp_buf.fastmap = fastmap;
+    }
+
+  if (re_comp_buf.fastmap == NULL)
+    {
+      re_comp_buf.fastmap = (char *) malloc (SBC_MAX);
+      if (re_comp_buf.fastmap == NULL)
+	return (char *) gettext (__re_error_msgid
+				 + __re_error_msgid_idx[(int) REG_ESPACE]);
+    }
+
+  /* Since `re_exec' always passes NULL for the `regs' argument, we
+     don't need to initialize the pattern buffer fields which affect it.  */
+
+  /* Match anchors at newlines.  */
+  re_comp_buf.newline_anchor = 1;
+
+  ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options);
+
+  if (!ret)
+    return NULL;
+
+  /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+  return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+
+#ifdef _LIBC
+libc_freeres_fn (free_mem)
+{
+  __regfree (&re_comp_buf);
+}
+#endif
+
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.
+   Compile the regular expression PATTERN, whose length is LENGTH.
+   SYNTAX indicate regular expression's syntax.  */
+
+static reg_errcode_t
+re_compile_internal (regex_t *preg, const char * pattern, size_t length,
+		     reg_syntax_t syntax)
+{
+  reg_errcode_t err = REG_NOERROR;
+  re_dfa_t *dfa;
+  re_string_t regexp;
+
+  /* Initialize the pattern buffer.  */
+  preg->fastmap_accurate = 0;
+  preg->syntax = syntax;
+  preg->not_bol = preg->not_eol = 0;
+  preg->used = 0;
+  preg->re_nsub = 0;
+  preg->can_be_null = 0;
+  preg->regs_allocated = REGS_UNALLOCATED;
+
+  /* Initialize the dfa.  */
+  dfa = (re_dfa_t *) preg->buffer;
+  if (BE (preg->allocated < sizeof (re_dfa_t), 0))
+    {
+      /* If zero allocated, but buffer is non-null, try to realloc
+	 enough space.  This loses if buffer's address is bogus, but
+	 that is the user's responsibility.  If ->buffer is NULL this
+	 is a simple allocation.  */
+      dfa = re_realloc (preg->buffer, re_dfa_t, 1);
+      if (dfa == NULL)
+	return REG_ESPACE;
+      preg->allocated = sizeof (re_dfa_t);
+      preg->buffer = (unsigned char *) dfa;
+    }
+  preg->used = sizeof (re_dfa_t);
+
+  err = init_dfa (dfa, length);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+      return err;
+    }
+#ifdef DEBUG
+  /* Note: length+1 will not overflow since it is checked in init_dfa.  */
+  dfa->re_str = re_malloc (char, length + 1);
+  strncpy (dfa->re_str, pattern, length + 1);
+#endif
+
+  __libc_lock_init (dfa->lock);
+
+  err = re_string_construct (&regexp, pattern, length, preg->translate,
+			     syntax & RE_ICASE, dfa);
+  if (BE (err != REG_NOERROR, 0))
+    {
+    re_compile_internal_free_return:
+      free_workarea_compile (preg);
+      re_string_destruct (&regexp);
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+      return err;
+    }
+
+  /* Parse the regular expression, and build a structure tree.  */
+  preg->re_nsub = 0;
+  dfa->str_tree = parse (&regexp, preg, syntax, &err);
+  if (BE (dfa->str_tree == NULL, 0))
+    goto re_compile_internal_free_return;
+
+  /* Analyze the tree and create the nfa.  */
+  err = analyze (preg);
+  if (BE (err != REG_NOERROR, 0))
+    goto re_compile_internal_free_return;
+
+#ifdef RE_ENABLE_I18N
+  /* If possible, do searching in single byte encoding to speed things up.  */
+  if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL)
+    optimize_utf8 (dfa);
+#endif
+
+  /* Then create the initial state of the dfa.  */
+  err = create_initial_state (dfa);
+
+  /* Release work areas.  */
+  free_workarea_compile (preg);
+  re_string_destruct (&regexp);
+
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+    }
+
+  return err;
+}
+
+/* Initialize DFA.  We use the length of the regular expression PAT_LEN
+   as the initial length of some arrays.  */
+
+static reg_errcode_t
+init_dfa (re_dfa_t *dfa, size_t pat_len)
+{
+  __re_size_t table_size;
+#ifdef RE_ENABLE_I18N
+  size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t));
+#else
+  size_t max_i18n_object_size = 0;
+#endif
+  size_t max_object_size =
+    MAX (sizeof (struct re_state_table_entry),
+	 MAX (sizeof (re_token_t),
+	      MAX (sizeof (re_node_set),
+		   MAX (sizeof (regmatch_t),
+			max_i18n_object_size))));
+
+  memset (dfa, '\0', sizeof (re_dfa_t));
+
+  /* Force allocation of str_tree_storage the first time.  */
+  dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+
+  /* Avoid overflows.  The extra "/ 2" is for the table_size doubling
+     calculation below, and for similar doubling calculations
+     elsewhere.  And it's <= rather than <, because some of the
+     doubling calculations add 1 afterwards.  */
+  if (BE (SIZE_MAX / max_object_size / 2 <= pat_len, 0))
+    return REG_ESPACE;
+
+  dfa->nodes_alloc = pat_len + 1;
+  dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
+
+  /*  table_size = 2 ^ ceil(log pat_len) */
+  for (table_size = 1; ; table_size <<= 1)
+    if (table_size > pat_len)
+      break;
+
+  dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
+  dfa->state_hash_mask = table_size - 1;
+
+  dfa->mb_cur_max = MB_CUR_MAX;
+#ifdef _LIBC
+  if (dfa->mb_cur_max == 6
+      && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0)
+    dfa->is_utf8 = 1;
+  dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII)
+		       != 0);
+#else
+  if (strcmp (locale_charset (), "UTF-8") == 0)
+    dfa->is_utf8 = 1;
+
+  /* We check exhaustively in the loop below if this charset is a
+     superset of ASCII.  */
+  dfa->map_notascii = 0;
+#endif
+
+#ifdef RE_ENABLE_I18N
+  if (dfa->mb_cur_max > 1)
+    {
+      if (dfa->is_utf8)
+	dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map;
+      else
+	{
+	  int i, j, ch;
+
+	  dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+	  if (BE (dfa->sb_char == NULL, 0))
+	    return REG_ESPACE;
+
+	  /* Set the bits corresponding to single byte chars.  */
+	  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+	    for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+	      {
+		wint_t wch = __btowc (ch);
+		if (wch != WEOF)
+		  dfa->sb_char[i] |= (bitset_word_t) 1 << j;
+# ifndef _LIBC
+		if (isascii (ch) && wch != ch)
+		  dfa->map_notascii = 1;
+# endif
+	      }
+	}
+    }
+#endif
+
+  if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
+    return REG_ESPACE;
+  return REG_NOERROR;
+}
+
+/* Initialize WORD_CHAR table, which indicate which character is
+   "word".  In this case "word" means that it is the word construction
+   character used by some operators like "\<", "\>", etc.  */
+
+static void
+internal_function
+init_word_char (re_dfa_t *dfa)
+{
+  int i, j, ch;
+  dfa->word_ops_used = 1;
+  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+    for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+      if (isalnum (ch) || ch == '_')
+	dfa->word_char[i] |= (bitset_word_t) 1 << j;
+}
+
+/* Free the work area which are only used while compiling.  */
+
+static void
+free_workarea_compile (regex_t *preg)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_storage_t *storage, *next;
+  for (storage = dfa->str_tree_storage; storage; storage = next)
+    {
+      next = storage->next;
+      re_free (storage);
+    }
+  dfa->str_tree_storage = NULL;
+  dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+  dfa->str_tree = NULL;
+  re_free (dfa->org_indices);
+  dfa->org_indices = NULL;
+}
+
+/* Create initial states for all contexts.  */
+
+static reg_errcode_t
+create_initial_state (re_dfa_t *dfa)
+{
+  Idx first, i;
+  reg_errcode_t err;
+  re_node_set init_nodes;
+
+  /* Initial states have the epsilon closure of the node which is
+     the first node of the regular expression.  */
+  first = dfa->str_tree->first->node_idx;
+  dfa->init_node = first;
+  err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  /* The back-references which are in initial states can epsilon transit,
+     since in this case all of the subexpressions can be null.
+     Then we add epsilon closures of the nodes which are the next nodes of
+     the back-references.  */
+  if (dfa->nbackref > 0)
+    for (i = 0; i < init_nodes.nelem; ++i)
+      {
+	Idx node_idx = init_nodes.elems[i];
+	re_token_type_t type = dfa->nodes[node_idx].type;
+
+	Idx clexp_idx;
+	if (type != OP_BACK_REF)
+	  continue;
+	for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx)
+	  {
+	    re_token_t *clexp_node;
+	    clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
+	    if (clexp_node->type == OP_CLOSE_SUBEXP
+		&& clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
+	      break;
+	  }
+	if (clexp_idx == init_nodes.nelem)
+	  continue;
+
+	if (type == OP_BACK_REF)
+	  {
+	    Idx dest_idx = dfa->edests[node_idx].elems[0];
+	    if (!re_node_set_contains (&init_nodes, dest_idx))
+	      {
+		re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx);
+		i = 0;
+	      }
+	  }
+      }
+
+  /* It must be the first time to invoke acquire_state.  */
+  dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
+  /* We don't check ERR here, since the initial state must not be NULL.  */
+  if (BE (dfa->init_state == NULL, 0))
+    return err;
+  if (dfa->init_state->has_constraint)
+    {
+      dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes,
+						       CONTEXT_WORD);
+      dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes,
+						     CONTEXT_NEWLINE);
+      dfa->init_state_begbuf = re_acquire_state_context (&err, dfa,
+							 &init_nodes,
+							 CONTEXT_NEWLINE
+							 | CONTEXT_BEGBUF);
+      if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+	      || dfa->init_state_begbuf == NULL, 0))
+	return err;
+    }
+  else
+    dfa->init_state_word = dfa->init_state_nl
+      = dfa->init_state_begbuf = dfa->init_state;
+
+  re_node_set_free (&init_nodes);
+  return REG_NOERROR;
+}
+
+#ifdef RE_ENABLE_I18N
+/* If it is possible to do searching in single byte encoding instead of UTF-8
+   to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change
+   DFA nodes where needed.  */
+
+static void
+optimize_utf8 (re_dfa_t *dfa)
+{
+  Idx node;
+  int i;
+  bool mb_chars = false;
+  bool has_period = false;
+
+  for (node = 0; node < dfa->nodes_len; ++node)
+    switch (dfa->nodes[node].type)
+      {
+      case CHARACTER:
+	if (dfa->nodes[node].opr.c >= ASCII_CHARS)
+	  mb_chars = true;
+	break;
+      case ANCHOR:
+	switch (dfa->nodes[node].opr.idx)
+	  {
+	  case LINE_FIRST:
+	  case LINE_LAST:
+	  case BUF_FIRST:
+	  case BUF_LAST:
+	    break;
+	  default:
+	    /* Word anchors etc. cannot be handled.  */
+	    return;
+	  }
+	break;
+      case OP_PERIOD:
+        has_period = true;
+        break;
+      case OP_BACK_REF:
+      case OP_ALT:
+      case END_OF_RE:
+      case OP_DUP_ASTERISK:
+      case OP_OPEN_SUBEXP:
+      case OP_CLOSE_SUBEXP:
+	break;
+      case COMPLEX_BRACKET:
+	return;
+      case SIMPLE_BRACKET:
+	/* Just double check.  */
+	{
+	  int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0
+			? 0
+			: BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS);
+	  for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i)
+	    {
+	      if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0)
+		return;
+	      rshift = 0;
+	    }
+	}
+	break;
+      default:
+	abort ();
+      }
+
+  if (mb_chars || has_period)
+    for (node = 0; node < dfa->nodes_len; ++node)
+      {
+	if (dfa->nodes[node].type == CHARACTER
+	    && dfa->nodes[node].opr.c >= ASCII_CHARS)
+	  dfa->nodes[node].mb_partial = 0;
+	else if (dfa->nodes[node].type == OP_PERIOD)
+	  dfa->nodes[node].type = OP_UTF8_PERIOD;
+      }
+
+  /* The search can be in single byte locale.  */
+  dfa->mb_cur_max = 1;
+  dfa->is_utf8 = 0;
+  dfa->has_mb_node = dfa->nbackref > 0 || has_period;
+}
+#endif
+
+/* Analyze the structure tree, and calculate "first", "next", "edest",
+   "eclosure", and "inveclosure".  */
+
+static reg_errcode_t
+analyze (regex_t *preg)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  reg_errcode_t ret;
+
+  /* Allocate arrays.  */
+  dfa->nexts = re_malloc (Idx, dfa->nodes_alloc);
+  dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc);
+  dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
+  dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
+  if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
+	  || dfa->eclosures == NULL, 0))
+    return REG_ESPACE;
+
+  dfa->subexp_map = re_malloc (Idx, preg->re_nsub);
+  if (dfa->subexp_map != NULL)
+    {
+      Idx i;
+      for (i = 0; i < preg->re_nsub; i++)
+	dfa->subexp_map[i] = i;
+      preorder (dfa->str_tree, optimize_subexps, dfa);
+      for (i = 0; i < preg->re_nsub; i++)
+	if (dfa->subexp_map[i] != i)
+	  break;
+      if (i == preg->re_nsub)
+	{
+	  free (dfa->subexp_map);
+	  dfa->subexp_map = NULL;
+	}
+    }
+
+  ret = postorder (dfa->str_tree, lower_subexps, preg);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  ret = postorder (dfa->str_tree, calc_first, dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  preorder (dfa->str_tree, calc_next, dfa);
+  ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  ret = calc_eclosure (dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  /* We only need this during the prune_impossible_nodes pass in regexec.c;
+     skip it if p_i_n will not run, as calc_inveclosure can be quadratic.  */
+  if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match)
+      || dfa->nbackref)
+    {
+      dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
+      if (BE (dfa->inveclosures == NULL, 0))
+        return REG_ESPACE;
+      ret = calc_inveclosure (dfa);
+    }
+
+  return ret;
+}
+
+/* Our parse trees are very unbalanced, so we cannot use a stack to
+   implement parse tree visits.  Instead, we use parent pointers and
+   some hairy code in these two functions.  */
+static reg_errcode_t
+postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+	   void *extra)
+{
+  bin_tree_t *node, *prev;
+
+  for (node = root; ; )
+    {
+      /* Descend down the tree, preferably to the left (or to the right
+	 if that's the only child).  */
+      while (node->left || node->right)
+	if (node->left)
+          node = node->left;
+        else
+          node = node->right;
+
+      do
+	{
+	  reg_errcode_t err = fn (extra, node);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+          if (node->parent == NULL)
+	    return REG_NOERROR;
+	  prev = node;
+	  node = node->parent;
+	}
+      /* Go up while we have a node that is reached from the right.  */
+      while (node->right == prev || node->right == NULL);
+      node = node->right;
+    }
+}
+
+static reg_errcode_t
+preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+	  void *extra)
+{
+  bin_tree_t *node;
+
+  for (node = root; ; )
+    {
+      reg_errcode_t err = fn (extra, node);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+
+      /* Go to the left node, or up and to the right.  */
+      if (node->left)
+	node = node->left;
+      else
+	{
+	  bin_tree_t *prev = NULL;
+	  while (node->right == prev || node->right == NULL)
+	    {
+	      prev = node;
+	      node = node->parent;
+	      if (!node)
+	        return REG_NOERROR;
+	    }
+	  node = node->right;
+	}
+    }
+}
+
+/* Optimization pass: if a SUBEXP is entirely contained, strip it and tell
+   re_search_internal to map the inner one's opr.idx to this one's.  Adjust
+   backreferences as well.  Requires a preorder visit.  */
+static reg_errcode_t
+optimize_subexps (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+
+  if (node->token.type == OP_BACK_REF && dfa->subexp_map)
+    {
+      int idx = node->token.opr.idx;
+      node->token.opr.idx = dfa->subexp_map[idx];
+      dfa->used_bkref_map |= 1 << node->token.opr.idx;
+    }
+
+  else if (node->token.type == SUBEXP
+           && node->left && node->left->token.type == SUBEXP)
+    {
+      Idx other_idx = node->left->token.opr.idx;
+
+      node->left = node->left->left;
+      if (node->left)
+        node->left->parent = node;
+
+      dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx];
+      if (other_idx < BITSET_WORD_BITS)
+	dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx);
+    }
+
+  return REG_NOERROR;
+}
+
+/* Lowering pass: Turn each SUBEXP node into the appropriate concatenation
+   of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP.  */
+static reg_errcode_t
+lower_subexps (void *extra, bin_tree_t *node)
+{
+  regex_t *preg = (regex_t *) extra;
+  reg_errcode_t err = REG_NOERROR;
+
+  if (node->left && node->left->token.type == SUBEXP)
+    {
+      node->left = lower_subexp (&err, preg, node->left);
+      if (node->left)
+	node->left->parent = node;
+    }
+  if (node->right && node->right->token.type == SUBEXP)
+    {
+      node->right = lower_subexp (&err, preg, node->right);
+      if (node->right)
+	node->right->parent = node;
+    }
+
+  return err;
+}
+
+static bin_tree_t *
+lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *body = node->left;
+  bin_tree_t *op, *cls, *tree1, *tree;
+
+  if (preg->no_sub
+      /* We do not optimize empty subexpressions, because otherwise we may
+	 have bad CONCAT nodes with NULL children.  This is obviously not
+	 very common, so we do not lose much.  An example that triggers
+	 this case is the sed "script" /\(\)/x.  */
+      && node->left != NULL
+      && (node->token.opr.idx >= BITSET_WORD_BITS
+	  || !(dfa->used_bkref_map
+	       & ((bitset_word_t) 1 << node->token.opr.idx))))
+    return node->left;
+
+  /* Convert the SUBEXP node to the concatenation of an
+     OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP.  */
+  op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP);
+  cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
+  tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
+  tree = create_tree (dfa, op, tree1, CONCAT);
+  if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx;
+  op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp;
+  return tree;
+}
+
+/* Pass 1 in building the NFA: compute FIRST and create unlinked automaton
+   nodes.  Requires a postorder visit.  */
+static reg_errcode_t
+calc_first (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+  if (node->token.type == CONCAT)
+    {
+      node->first = node->left->first;
+      node->node_idx = node->left->node_idx;
+    }
+  else
+    {
+      node->first = node;
+      node->node_idx = re_dfa_add_node (dfa, node->token);
+      if (BE (node->node_idx == REG_MISSING, 0))
+        return REG_ESPACE;
+    }
+  return REG_NOERROR;
+}
+
+/* Pass 2: compute NEXT on the tree.  Preorder visit.  */
+static reg_errcode_t
+calc_next (void *extra, bin_tree_t *node)
+{
+  switch (node->token.type)
+    {
+    case OP_DUP_ASTERISK:
+      node->left->next = node;
+      break;
+    case CONCAT:
+      node->left->next = node->right->first;
+      node->right->next = node->next;
+      break;
+    default:
+      if (node->left)
+	node->left->next = node->next;
+      if (node->right)
+        node->right->next = node->next;
+      break;
+    }
+  return REG_NOERROR;
+}
+
+/* Pass 3: link all DFA nodes to their NEXT node (any order will do).  */
+static reg_errcode_t
+link_nfa_nodes (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+  Idx idx = node->node_idx;
+  reg_errcode_t err = REG_NOERROR;
+
+  switch (node->token.type)
+    {
+    case CONCAT:
+      break;
+
+    case END_OF_RE:
+      assert (node->next == NULL);
+      break;
+
+    case OP_DUP_ASTERISK:
+    case OP_ALT:
+      {
+	Idx left, right;
+	dfa->has_plural_match = 1;
+	if (node->left != NULL)
+	  left = node->left->first->node_idx;
+	else
+	  left = node->next->node_idx;
+	if (node->right != NULL)
+	  right = node->right->first->node_idx;
+	else
+	  right = node->next->node_idx;
+	assert (REG_VALID_INDEX (left));
+	assert (REG_VALID_INDEX (right));
+	err = re_node_set_init_2 (dfa->edests + idx, left, right);
+      }
+      break;
+
+    case ANCHOR:
+    case OP_OPEN_SUBEXP:
+    case OP_CLOSE_SUBEXP:
+      err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx);
+      break;
+
+    case OP_BACK_REF:
+      dfa->nexts[idx] = node->next->node_idx;
+      if (node->token.type == OP_BACK_REF)
+	re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
+      break;
+
+    default:
+      assert (!IS_EPSILON_NODE (node->token.type));
+      dfa->nexts[idx] = node->next->node_idx;
+      break;
+    }
+
+  return err;
+}
+
+/* Duplicate the epsilon closure of the node ROOT_NODE.
+   Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
+   to their own constraint.  */
+
+static reg_errcode_t
+internal_function
+duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
+			Idx root_node, unsigned int init_constraint)
+{
+  Idx org_node, clone_node;
+  bool ok;
+  unsigned int constraint = init_constraint;
+  for (org_node = top_org_node, clone_node = top_clone_node;;)
+    {
+      Idx org_dest, clone_dest;
+      if (dfa->nodes[org_node].type == OP_BACK_REF)
+	{
+	  /* If the back reference epsilon-transit, its destination must
+	     also have the constraint.  Then duplicate the epsilon closure
+	     of the destination of the back reference, and store it in
+	     edests of the back reference.  */
+	  org_dest = dfa->nexts[org_node];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == REG_MISSING, 0))
+	    return REG_ESPACE;
+	  dfa->nexts[clone_node] = dfa->nexts[org_node];
+	  ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+      else if (dfa->edests[org_node].nelem == 0)
+	{
+	  /* In case of the node can't epsilon-transit, don't duplicate the
+	     destination and store the original destination as the
+	     destination of the node.  */
+	  dfa->nexts[clone_node] = dfa->nexts[org_node];
+	  break;
+	}
+      else if (dfa->edests[org_node].nelem == 1)
+	{
+	  /* In case of the node can epsilon-transit, and it has only one
+	     destination.  */
+	  org_dest = dfa->edests[org_node].elems[0];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  if (dfa->nodes[org_node].type == ANCHOR)
+	    {
+	      /* In case of the node has another constraint, append it.  */
+	      if (org_node == root_node && clone_node != org_node)
+		{
+		  /* ...but if the node is root_node itself, it means the
+		     epsilon closure have a loop, then tie it to the
+		     destination of the root_node.  */
+		  ok = re_node_set_insert (dfa->edests + clone_node, org_dest);
+		  if (BE (! ok, 0))
+		    return REG_ESPACE;
+		  break;
+		}
+	      constraint |= dfa->nodes[org_node].opr.ctx_type;
+	    }
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == REG_MISSING, 0))
+	    return REG_ESPACE;
+	  ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+      else /* dfa->edests[org_node].nelem == 2 */
+	{
+	  /* In case of the node can epsilon-transit, and it has two
+	     destinations. In the bin_tree_t and DFA, that's '|' and '*'.   */
+	  org_dest = dfa->edests[org_node].elems[0];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  /* Search for a duplicated node which satisfies the constraint.  */
+	  clone_dest = search_duplicated_node (dfa, org_dest, constraint);
+	  if (clone_dest == REG_MISSING)
+	    {
+	      /* There are no such a duplicated node, create a new one.  */
+	      reg_errcode_t err;
+	      clone_dest = duplicate_node (dfa, org_dest, constraint);
+	      if (BE (clone_dest == REG_MISSING, 0))
+		return REG_ESPACE;
+	      ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	      if (BE (! ok, 0))
+		return REG_ESPACE;
+	      err = duplicate_node_closure (dfa, org_dest, clone_dest,
+					    root_node, constraint);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	  else
+	    {
+	      /* There are a duplicated node which satisfy the constraint,
+		 use it to avoid infinite loop.  */
+	      ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	      if (BE (! ok, 0))
+		return REG_ESPACE;
+	    }
+
+	  org_dest = dfa->edests[org_node].elems[1];
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == REG_MISSING, 0))
+	    return REG_ESPACE;
+	  ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+      org_node = org_dest;
+      clone_node = clone_dest;
+    }
+  return REG_NOERROR;
+}
+
+/* Search for a node which is duplicated from the node ORG_NODE, and
+   satisfies the constraint CONSTRAINT.  */
+
+static Idx
+search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
+			unsigned int constraint)
+{
+  Idx idx;
+  for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
+    {
+      if (org_node == dfa->org_indices[idx]
+	  && constraint == dfa->nodes[idx].constraint)
+	return idx; /* Found.  */
+    }
+  return REG_MISSING; /* Not found.  */
+}
+
+/* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT.
+   Return the index of the new node, or REG_MISSING if insufficient storage is
+   available.  */
+
+static Idx
+duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
+{
+  Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
+  if (BE (dup_idx != REG_MISSING, 1))
+    {
+      dfa->nodes[dup_idx].constraint = constraint;
+      if (dfa->nodes[org_idx].type == ANCHOR)
+	dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].opr.ctx_type;
+      dfa->nodes[dup_idx].duplicated = 1;
+
+      /* Store the index of the original node.  */
+      dfa->org_indices[dup_idx] = org_idx;
+    }
+  return dup_idx;
+}
+
+static reg_errcode_t
+calc_inveclosure (re_dfa_t *dfa)
+{
+  Idx src, idx;
+  bool ok;
+  for (idx = 0; idx < dfa->nodes_len; ++idx)
+    re_node_set_init_empty (dfa->inveclosures + idx);
+
+  for (src = 0; src < dfa->nodes_len; ++src)
+    {
+      Idx *elems = dfa->eclosures[src].elems;
+      for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
+	{
+	  ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
+	  if (BE (! ok, 0))
+	    return REG_ESPACE;
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Calculate "eclosure" for all the node in DFA.  */
+
+static reg_errcode_t
+calc_eclosure (re_dfa_t *dfa)
+{
+  Idx node_idx;
+  bool incomplete;
+#ifdef DEBUG
+  assert (dfa->nodes_len > 0);
+#endif
+  incomplete = false;
+  /* For each nodes, calculate epsilon closure.  */
+  for (node_idx = 0; ; ++node_idx)
+    {
+      reg_errcode_t err;
+      re_node_set eclosure_elem;
+      if (node_idx == dfa->nodes_len)
+	{
+	  if (!incomplete)
+	    break;
+	  incomplete = false;
+	  node_idx = 0;
+	}
+
+#ifdef DEBUG
+      assert (dfa->eclosures[node_idx].nelem != REG_MISSING);
+#endif
+
+      /* If we have already calculated, skip it.  */
+      if (dfa->eclosures[node_idx].nelem != 0)
+	continue;
+      /* Calculate epsilon closure of `node_idx'.  */
+      err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+
+      if (dfa->eclosures[node_idx].nelem == 0)
+	{
+	  incomplete = true;
+	  re_node_set_free (&eclosure_elem);
+	}
+    }
+  return REG_NOERROR;
+}
+
+/* Calculate epsilon closure of NODE.  */
+
+static reg_errcode_t
+calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
+{
+  reg_errcode_t err;
+  unsigned int constraint;
+  Idx i;
+  bool incomplete;
+  bool ok;
+  re_node_set eclosure;
+  incomplete = false;
+  err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  /* This indicates that we are calculating this node now.
+     We reference this value to avoid infinite loop.  */
+  dfa->eclosures[node].nelem = REG_MISSING;
+
+  constraint = ((dfa->nodes[node].type == ANCHOR)
+		? dfa->nodes[node].opr.ctx_type : 0);
+  /* If the current node has constraints, duplicate all nodes.
+     Since they must inherit the constraints.  */
+  if (constraint
+      && dfa->edests[node].nelem
+      && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
+    {
+      err = duplicate_node_closure (dfa, node, node, node, constraint);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  /* Expand each epsilon destination nodes.  */
+  if (IS_EPSILON_NODE(dfa->nodes[node].type))
+    for (i = 0; i < dfa->edests[node].nelem; ++i)
+      {
+	re_node_set eclosure_elem;
+	Idx edest = dfa->edests[node].elems[i];
+	/* If calculating the epsilon closure of `edest' is in progress,
+	   return intermediate result.  */
+	if (dfa->eclosures[edest].nelem == REG_MISSING)
+	  {
+	    incomplete = true;
+	    continue;
+	  }
+	/* If we haven't calculated the epsilon closure of `edest' yet,
+	   calculate now. Otherwise use calculated epsilon closure.  */
+	if (dfa->eclosures[edest].nelem == 0)
+	  {
+	    err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false);
+	    if (BE (err != REG_NOERROR, 0))
+	      return err;
+	  }
+	else
+	  eclosure_elem = dfa->eclosures[edest];
+	/* Merge the epsilon closure of `edest'.  */
+	re_node_set_merge (&eclosure, &eclosure_elem);
+	/* If the epsilon closure of `edest' is incomplete,
+	   the epsilon closure of this node is also incomplete.  */
+	if (dfa->eclosures[edest].nelem == 0)
+	  {
+	    incomplete = true;
+	    re_node_set_free (&eclosure_elem);
+	  }
+      }
+
+  /* Epsilon closures include itself.  */
+  ok = re_node_set_insert (&eclosure, node);
+  if (BE (! ok, 0))
+    return REG_ESPACE;
+  if (incomplete && !root)
+    dfa->eclosures[node].nelem = 0;
+  else
+    dfa->eclosures[node] = eclosure;
+  *new_set = eclosure;
+  return REG_NOERROR;
+}
+
+/* Functions for token which are used in the parser.  */
+
+/* Fetch a token from INPUT.
+   We must not use this function inside bracket expressions.  */
+
+static void
+internal_function
+fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)
+{
+  re_string_skip_bytes (input, peek_token (result, input, syntax));
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+   We must not use this function inside bracket expressions.  */
+
+static int
+internal_function
+peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+  unsigned char c;
+
+  if (re_string_eoi (input))
+    {
+      token->type = END_OF_RE;
+      return 0;
+    }
+
+  c = re_string_peek_byte (input, 0);
+  token->opr.c = c;
+
+  token->word_char = 0;
+#ifdef RE_ENABLE_I18N
+  token->mb_partial = 0;
+  if (input->mb_cur_max > 1 &&
+      !re_string_first_byte (input, re_string_cur_idx (input)))
+    {
+      token->type = CHARACTER;
+      token->mb_partial = 1;
+      return 1;
+    }
+#endif
+  if (c == '\\')
+    {
+      unsigned char c2;
+      if (re_string_cur_idx (input) + 1 >= re_string_length (input))
+	{
+	  token->type = BACK_SLASH;
+	  return 1;
+	}
+
+      c2 = re_string_peek_byte_case (input, 1);
+      token->opr.c = c2;
+      token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+      if (input->mb_cur_max > 1)
+	{
+	  wint_t wc = re_string_wchar_at (input,
+					  re_string_cur_idx (input) + 1);
+	  token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+	}
+      else
+#endif
+	token->word_char = IS_WORD_CHAR (c2) != 0;
+
+      switch (c2)
+	{
+	case '|':
+	  if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR))
+	    token->type = OP_ALT;
+	  break;
+	case '1': case '2': case '3': case '4': case '5':
+	case '6': case '7': case '8': case '9':
+	  if (!(syntax & RE_NO_BK_REFS))
+	    {
+	      token->type = OP_BACK_REF;
+	      token->opr.idx = c2 - '1';
+	    }
+	  break;
+	case '<':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_FIRST;
+	    }
+	  break;
+	case '>':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_LAST;
+	    }
+	  break;
+	case 'b':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_DELIM;
+	    }
+	  break;
+	case 'B':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = NOT_WORD_DELIM;
+	    }
+	  break;
+	case 'w':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_WORD;
+	  break;
+	case 'W':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_NOTWORD;
+	  break;
+	case 's':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_SPACE;
+	  break;
+	case 'S':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_NOTSPACE;
+	  break;
+	case '`':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = BUF_FIRST;
+	    }
+	  break;
+	case '\'':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = BUF_LAST;
+	    }
+	  break;
+	case '(':
+	  if (!(syntax & RE_NO_BK_PARENS))
+	    token->type = OP_OPEN_SUBEXP;
+	  break;
+	case ')':
+	  if (!(syntax & RE_NO_BK_PARENS))
+	    token->type = OP_CLOSE_SUBEXP;
+	  break;
+	case '+':
+	  if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+	    token->type = OP_DUP_PLUS;
+	  break;
+	case '?':
+	  if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+	    token->type = OP_DUP_QUESTION;
+	  break;
+	case '{':
+	  if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+	    token->type = OP_OPEN_DUP_NUM;
+	  break;
+	case '}':
+	  if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+	    token->type = OP_CLOSE_DUP_NUM;
+	  break;
+	default:
+	  break;
+	}
+      return 2;
+    }
+
+  token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1)
+    {
+      wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
+      token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+    }
+  else
+#endif
+    token->word_char = IS_WORD_CHAR (token->opr.c);
+
+  switch (c)
+    {
+    case '\n':
+      if (syntax & RE_NEWLINE_ALT)
+	token->type = OP_ALT;
+      break;
+    case '|':
+      if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR))
+	token->type = OP_ALT;
+      break;
+    case '*':
+      token->type = OP_DUP_ASTERISK;
+      break;
+    case '+':
+      if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+	token->type = OP_DUP_PLUS;
+      break;
+    case '?':
+      if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+	token->type = OP_DUP_QUESTION;
+      break;
+    case '{':
+      if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+	token->type = OP_OPEN_DUP_NUM;
+      break;
+    case '}':
+      if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+	token->type = OP_CLOSE_DUP_NUM;
+      break;
+    case '(':
+      if (syntax & RE_NO_BK_PARENS)
+	token->type = OP_OPEN_SUBEXP;
+      break;
+    case ')':
+      if (syntax & RE_NO_BK_PARENS)
+	token->type = OP_CLOSE_SUBEXP;
+      break;
+    case '[':
+      token->type = OP_OPEN_BRACKET;
+      break;
+    case '.':
+      token->type = OP_PERIOD;
+      break;
+    case '^':
+      if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
+	  re_string_cur_idx (input) != 0)
+	{
+	  char prev = re_string_peek_byte (input, -1);
+	  if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
+	    break;
+	}
+      token->type = ANCHOR;
+      token->opr.ctx_type = LINE_FIRST;
+      break;
+    case '$':
+      if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
+	  re_string_cur_idx (input) + 1 != re_string_length (input))
+	{
+	  re_token_t next;
+	  re_string_skip_bytes (input, 1);
+	  peek_token (&next, input, syntax);
+	  re_string_skip_bytes (input, -1);
+	  if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP)
+	    break;
+	}
+      token->type = ANCHOR;
+      token->opr.ctx_type = LINE_LAST;
+      break;
+    default:
+      break;
+    }
+  return 1;
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+   We must not use this function out of bracket expressions.  */
+
+static int
+internal_function
+peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+  unsigned char c;
+  if (re_string_eoi (input))
+    {
+      token->type = END_OF_RE;
+      return 0;
+    }
+  c = re_string_peek_byte (input, 0);
+  token->opr.c = c;
+
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1 &&
+      !re_string_first_byte (input, re_string_cur_idx (input)))
+    {
+      token->type = CHARACTER;
+      return 1;
+    }
+#endif /* RE_ENABLE_I18N */
+
+  if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS)
+      && re_string_cur_idx (input) + 1 < re_string_length (input))
+    {
+      /* In this case, '\' escape a character.  */
+      unsigned char c2;
+      re_string_skip_bytes (input, 1);
+      c2 = re_string_peek_byte (input, 0);
+      token->opr.c = c2;
+      token->type = CHARACTER;
+      return 1;
+    }
+  if (c == '[') /* '[' is a special char in a bracket exps.  */
+    {
+      unsigned char c2;
+      int token_len;
+      if (re_string_cur_idx (input) + 1 < re_string_length (input))
+	c2 = re_string_peek_byte (input, 1);
+      else
+	c2 = 0;
+      token->opr.c = c2;
+      token_len = 2;
+      switch (c2)
+	{
+	case '.':
+	  token->type = OP_OPEN_COLL_ELEM;
+	  break;
+	case '=':
+	  token->type = OP_OPEN_EQUIV_CLASS;
+	  break;
+	case ':':
+	  if (syntax & RE_CHAR_CLASSES)
+	    {
+	      token->type = OP_OPEN_CHAR_CLASS;
+	      break;
+	    }
+	  /* else fall through.  */
+	default:
+	  token->type = CHARACTER;
+	  token->opr.c = c;
+	  token_len = 1;
+	  break;
+	}
+      return token_len;
+    }
+  switch (c)
+    {
+    case '-':
+      token->type = OP_CHARSET_RANGE;
+      break;
+    case ']':
+      token->type = OP_CLOSE_BRACKET;
+      break;
+    case '^':
+      token->type = OP_NON_MATCH_LIST;
+      break;
+    default:
+      token->type = CHARACTER;
+    }
+  return 1;
+}
+
+/* Functions for parser.  */
+
+/* Entry point of the parser.
+   Parse the regular expression REGEXP and return the structure tree.
+   If an error is occured, ERR is set by error code, and return NULL.
+   This function build the following tree, from regular expression <reg_exp>:
+	   CAT
+	   / \
+	  /   \
+   <reg_exp>  EOR
+
+   CAT means concatenation.
+   EOR means end of regular expression.  */
+
+static bin_tree_t *
+parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
+       reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree, *eor, *root;
+  re_token_t current_token;
+  dfa->syntax = syntax;
+  fetch_token (&current_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+  tree = parse_reg_exp (regexp, preg, &current_token, syntax, 0, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+  eor = create_tree (dfa, NULL, NULL, END_OF_RE);
+  if (tree != NULL)
+    root = create_tree (dfa, tree, eor, CONCAT);
+  else
+    root = eor;
+  if (BE (eor == NULL || root == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+  return root;
+}
+
+/* This function build the following tree, from regular expression
+   <branch1>|<branch2>:
+	   ALT
+	   / \
+	  /   \
+   <branch1> <branch2>
+
+   ALT means alternative, which represents the operator `|'.  */
+
+static bin_tree_t *
+parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	       reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree, *branch = NULL;
+  tree = parse_branch (regexp, preg, token, syntax, nest, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+
+  while (token->type == OP_ALT)
+    {
+      fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+      if (token->type != OP_ALT && token->type != END_OF_RE
+	  && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+	{
+	  branch = parse_branch (regexp, preg, token, syntax, nest, err);
+	  if (BE (*err != REG_NOERROR && branch == NULL, 0))
+	    return NULL;
+	}
+      else
+	branch = NULL;
+      tree = create_tree (dfa, tree, branch, OP_ALT);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+    }
+  return tree;
+}
+
+/* This function build the following tree, from regular expression
+   <exp1><exp2>:
+	CAT
+	/ \
+       /   \
+   <exp1> <exp2>
+
+   CAT means concatenation.  */
+
+static bin_tree_t *
+parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	      reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+  bin_tree_t *tree, *expr;
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  tree = parse_expression (regexp, preg, token, syntax, nest, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+
+  while (token->type != OP_ALT && token->type != END_OF_RE
+	 && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+    {
+      expr = parse_expression (regexp, preg, token, syntax, nest, err);
+      if (BE (*err != REG_NOERROR && expr == NULL, 0))
+	{
+	  return NULL;
+	}
+      if (tree != NULL && expr != NULL)
+	{
+	  tree = create_tree (dfa, tree, expr, CONCAT);
+	  if (tree == NULL)
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      else if (
diff --git a/win32/gl/regex.c b/win32/gl/regex.c
new file mode 100644
index 0000000..e457a78
--- /dev/null
+++ b/win32/gl/regex.c
@@ -0,0 +1,71 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu at yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Make sure noone compiles this code with a C++ compiler.  */
+#if defined __cplusplus && defined _LIBC
+# error "This is C code, use a C compiler"
+#endif
+
+#ifdef _LIBC
+/* We have to keep the namespace clean.  */
+# define regfree(preg) __regfree (preg)
+# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
+# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
+# define regerror(errcode, preg, errbuf, errbuf_size) \
+	__regerror(errcode, preg, errbuf, errbuf_size)
+# define re_set_registers(bu, re, nu, st, en) \
+	__re_set_registers (bu, re, nu, st, en)
+# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
+	__re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+# define re_match(bufp, string, size, pos, regs) \
+	__re_match (bufp, string, size, pos, regs)
+# define re_search(bufp, string, size, startpos, range, regs) \
+	__re_search (bufp, string, size, startpos, range, regs)
+# define re_compile_pattern(pattern, length, bufp) \
+	__re_compile_pattern (pattern, length, bufp)
+# define re_set_syntax(syntax) __re_set_syntax (syntax)
+# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
+	__re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
+# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
+
+# include "../locale/localeinfo.h"
+#endif
+
+/* On some systems, limits.h sets RE_DUP_MAX to a lower value than
+   GNU regex allows.  Include it before <regex.h>, which correctly
+   #undefs RE_DUP_MAX and sets it to the right value.  */
+#include <limits.h>
+
+#include <regex.h>
+#include "regex_internal.h"
+
+#include "regex_internal.c"
+#include "regcomp.c"
+#include "regexec.c"
+
+/* Binary backward compatibility.  */
+#if _LIBC
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
+link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.")
+int re_max_failures = 2000;
+# endif
+#endif
diff --git a/win32/gl/regex.h b/win32/gl/regex.h
new file mode 100644
index 0000000..af29a5c
--- /dev/null
+++ b/win32/gl/regex.h
@@ -0,0 +1,675 @@
+/* Definitions for data structures and routines for the regular
+   expression library.
+   Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _REGEX_H
+#define _REGEX_H 1
+
+#include <sys/types.h>
+
+/* Allow the use in C++ code.  */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Define __USE_GNU_REGEX to declare GNU extensions that violate the
+   POSIX name space rules.  */
+#undef __USE_GNU_REGEX
+#if (defined _GNU_SOURCE					\
+     || (!defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE	\
+	 && !defined _XOPEN_SOURCE))
+# define __USE_GNU_REGEX 1
+#endif
+
+#ifdef _REGEX_LARGE_OFFSETS
+
+/* Use types and values that are wide enough to represent signed and
+   unsigned byte offsets in memory.  This currently works only when
+   the regex code is used outside of the GNU C library; it is not yet
+   supported within glibc itself, and glibc users should not define
+   _REGEX_LARGE_OFFSETS.  */
+
+/* The type of the offset of a byte within a string.
+   For historical reasons POSIX 1003.1-2004 requires that regoff_t be
+   at least as wide as off_t.  However, many common POSIX platforms set
+   regoff_t to the more-sensible ssize_t and the Open Group has
+   signalled its intention to change the requirement to be that
+   regoff_t be at least as wide as ptrdiff_t and ssize_t; see XBD ERN
+   60 (2005-08-25).  We don't know of any hosts where ssize_t or
+   ptrdiff_t is wider than ssize_t, so ssize_t is safe.  */
+typedef ssize_t regoff_t;
+
+/* The type of nonnegative object indexes.  Traditionally, GNU regex
+   uses 'int' for these.  Code that uses __re_idx_t should work
+   regardless of whether the type is signed.  */
+typedef size_t __re_idx_t;
+
+/* The type of object sizes.  */
+typedef size_t __re_size_t;
+
+/* The type of object sizes, in places where the traditional code
+   uses unsigned long int.  */
+typedef size_t __re_long_size_t;
+
+#else
+
+/* Use types that are binary-compatible with the traditional GNU regex
+   implementation, which mishandles strings longer than INT_MAX.  */
+
+typedef int regoff_t;
+typedef int __re_idx_t;
+typedef unsigned int __re_size_t;
+typedef unsigned long int __re_long_size_t;
+
+#endif
+
+/* The following two types have to be signed and unsigned integer type
+   wide enough to hold a value of a pointer.  For most ANSI compilers
+   ptrdiff_t and size_t should be likely OK.  Still size of these two
+   types is 2 for Microsoft C.  Ugh... */
+typedef long int s_reg_t;
+typedef unsigned long int active_reg_t;
+
+/* The following bits are used to determine the regexp syntax we
+   recognize.  The set/not-set meanings are chosen so that Emacs syntax
+   remains the value 0.  The bits are given in alphabetical order, and
+   the definitions shifted by one from the previous bit; thus, when we
+   add or remove a bit, only one other definition need change.  */
+typedef unsigned long int reg_syntax_t;
+
+#ifdef __USE_GNU_REGEX
+
+/* If this bit is not set, then \ inside a bracket expression is literal.
+   If set, then such a \ quotes the following character.  */
+# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
+
+/* If this bit is not set, then + and ? are operators, and \+ and \? are
+     literals.
+   If set, then \+ and \? are operators and + and ? are literals.  */
+# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
+
+/* If this bit is set, then character classes are supported.  They are:
+     [:alpha:], [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],
+     [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
+   If not set, then character classes are not supported.  */
+# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
+
+/* If this bit is set, then ^ and $ are always anchors (outside bracket
+     expressions, of course).
+   If this bit is not set, then it depends:
+        ^  is an anchor if it is at the beginning of a regular
+           expression or after an open-group or an alternation operator;
+        $  is an anchor if it is at the end of a regular expression, or
+           before a close-group or an alternation operator.
+
+   This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
+   POSIX draft 11.2 says that * etc. in leading positions is undefined.
+   We already implemented a previous draft which made those constructs
+   invalid, though, so we haven't changed the code back.  */
+# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
+
+/* If this bit is set, then special characters are always special
+     regardless of where they are in the pattern.
+   If this bit is not set, then special characters are special only in
+     some contexts; otherwise they are ordinary.  Specifically,
+     * + ? and intervals are only special when not after the beginning,
+     open-group, or alternation operator.  */
+# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
+
+/* If this bit is set, then *, +, ?, and { cannot be first in an re or
+     immediately after an alternation or begin-group operator.  */
+# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
+
+/* If this bit is set, then . matches newline.
+   If not set, then it doesn't.  */
+# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
+
+/* If this bit is set, then . doesn't match NUL.
+   If not set, then it does.  */
+# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
+
+/* If this bit is set, nonmatching lists [^...] do not match newline.
+   If not set, they do.  */
+# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
+
+/* If this bit is set, either \{...\} or {...} defines an
+     interval, depending on RE_NO_BK_BRACES.
+   If not set, \{, \}, {, and } are literals.  */
+# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
+
+/* If this bit is set, +, ? and | aren't recognized as operators.
+   If not set, they are.  */
+# define RE_LIMITED_OPS (RE_INTERVALS << 1)
+
+/* If this bit is set, newline is an alternation operator.
+   If not set, newline is literal.  */
+# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
+
+/* If this bit is set, then `{...}' defines an interval, and \{ and \}
+     are literals.
+  If not set, then `\{...\}' defines an interval.  */
+# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
+
+/* If this bit is set, (...) defines a group, and \( and \) are literals.
+   If not set, \(...\) defines a group, and ( and ) are literals.  */
+# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
+
+/* If this bit is set, then \<digit> matches <digit>.
+   If not set, then \<digit> is a back-reference.  */
+# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
+
+/* If this bit is set, then | is an alternation operator, and \| is literal.
+   If not set, then \| is an alternation operator, and | is literal.  */
+# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
+
+/* If this bit is set, then an ending range point collating higher
+     than the starting range point, as in [z-a], is invalid.
+   If not set, then when ending range point collates higher than the
+     starting range point, the range is ignored.  */
+# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
+
+/* If this bit is set, then an unmatched ) is ordinary.
+   If not set, then an unmatched ) is invalid.  */
+# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
+
+/* If this bit is set, succeed as soon as we match the whole pattern,
+   without further backtracking.  */
+# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
+
+/* If this bit is set, do not process the GNU regex operators.
+   If not set, then the GNU regex operators are recognized. */
+# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+
+/* If this bit is set, turn on internal regex debugging.
+   If not set, and debugging was on, turn it off.
+   This only works if regex.c is compiled -DDEBUG.
+   We define this bit always, so that all that's needed to turn on
+   debugging is to recompile regex.c; the calling code can always have
+   this bit set, and it won't affect anything in the normal case. */
+# define RE_DEBUG (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, a syntactically invalid interval is treated as
+   a string of ordinary characters.  For example, the ERE 'a{1' is
+   treated as 'a\{1'.  */
+# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
+
+/* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only
+   for ^, because it is difficult to scan the regex backwards to find
+   whether ^ should be special.  */
+# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
+
+/* If this bit is set, then \{ cannot be first in an bre or
+   immediately after an alternation or begin-group operator.  */
+# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
+
+/* If this bit is set, then no_sub will be set to 1 during
+   re_compile_pattern.  */
+# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
+
+#endif /* defined __USE_GNU_REGEX */
+
+/* This global variable defines the particular regexp syntax to use (for
+   some interfaces).  When a regexp is compiled, the syntax used is
+   stored in the pattern buffer, so changing this does not affect
+   already-compiled regexps.  */
+extern reg_syntax_t re_syntax_options;
+
+#ifdef __USE_GNU_REGEX
+/* Define combinations of the above bits for the standard possibilities.
+   (The [[[ comments delimit what gets put into the Texinfo file, so
+   don't delete them!)  */
+/* [[[begin syntaxes]]] */
+# define RE_SYNTAX_EMACS 0
+
+# define RE_SYNTAX_AWK							\
+  (RE_BACKSLASH_ESCAPE_IN_LISTS   | RE_DOT_NOT_NULL			\
+   | RE_NO_BK_PARENS              | RE_NO_BK_REFS			\
+   | RE_NO_BK_VBAR                | RE_NO_EMPTY_RANGES			\
+   | RE_DOT_NEWLINE		  | RE_CONTEXT_INDEP_ANCHORS		\
+   | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
+
+# define RE_SYNTAX_GNU_AWK						\
+  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG)	\
+   & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS		\
+       | RE_CONTEXT_INVALID_OPS ))
+
+# define RE_SYNTAX_POSIX_AWK						\
+  (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS		\
+   | RE_INTERVALS	    | RE_NO_GNU_OPS)
+
+# define RE_SYNTAX_GREP							\
+  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES				\
+   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS				\
+   | RE_NEWLINE_ALT)
+
+# define RE_SYNTAX_EGREP						\
+  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE			\
+   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS				\
+   | RE_NO_BK_VBAR)
+
+# define RE_SYNTAX_POSIX_EGREP						\
+  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES			\
+   | RE_INVALID_INTERVAL_ORD)
+
+/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
+# define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
+
+# define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
+
+/* Syntax bits common to both basic and extended POSIX regex syntax.  */
+# define _RE_SYNTAX_POSIX_COMMON					\
+  (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL		\
+   | RE_INTERVALS  | RE_NO_EMPTY_RANGES)
+
+# define RE_SYNTAX_POSIX_BASIC						\
+  (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP)
+
+/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
+   RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
+   isn't minimal, since other operators, such as \`, aren't disabled.  */
+# define RE_SYNTAX_POSIX_MINIMAL_BASIC					\
+  (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
+
+# define RE_SYNTAX_POSIX_EXTENDED					\
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INDEP_OPS   | RE_NO_BK_BRACES				\
+   | RE_NO_BK_PARENS        | RE_NO_BK_VBAR				\
+   | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
+
+/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
+   removed and RE_NO_BK_REFS is added.  */
+# define RE_SYNTAX_POSIX_MINIMAL_EXTENDED				\
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES				\
+   | RE_NO_BK_PARENS        | RE_NO_BK_REFS				\
+   | RE_NO_BK_VBAR	    | RE_UNMATCHED_RIGHT_PAREN_ORD)
+/* [[[end syntaxes]]] */
+
+#endif /* defined __USE_GNU_REGEX */
+
+#ifdef __USE_GNU_REGEX
+
+/* Maximum number of duplicates an interval can allow.  POSIX-conforming
+   systems might define this in <limits.h>, but we want our
+   value, so remove any previous define.  */
+# ifdef RE_DUP_MAX
+#  undef RE_DUP_MAX
+# endif
+
+/* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored
+   the counter as a 2-byte signed integer.  This is no longer true, so
+   RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to
+   ((SIZE_MAX - 2) / 10 - 1) if _REGEX_LARGE_OFFSETS is defined.
+   However, there would be a huge performance problem if someone
+   actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains
+   its historical value.  */
+# define RE_DUP_MAX (0x7fff)
+
+#endif /* defined __USE_GNU_REGEX */
+
+
+/* POSIX `cflags' bits (i.e., information for `regcomp').  */
+
+/* If this bit is set, then use extended regular expression syntax.
+   If not set, then use basic regular expression syntax.  */
+#define REG_EXTENDED 1
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define REG_ICASE (1 << 1)
+
+/* If this bit is set, then anchors do not match at newline
+     characters in the string.
+   If not set, then anchors do match at newlines.  */
+#define REG_NEWLINE (1 << 2)
+
+/* If this bit is set, then report only success or fail in regexec.
+   If not set, then returns differ between not matching and errors.  */
+#define REG_NOSUB (1 << 3)
+
+
+/* POSIX `eflags' bits (i.e., information for regexec).  */
+
+/* If this bit is set, then the beginning-of-line operator doesn't match
+     the beginning of the string (presumably because it's not the
+     beginning of a line).
+   If not set, then the beginning-of-line operator does match the
+     beginning of the string.  */
+#define REG_NOTBOL 1
+
+/* Like REG_NOTBOL, except for the end-of-line.  */
+#define REG_NOTEOL (1 << 1)
+
+/* Use PMATCH[0] to delimit the start and end of the search in the
+   buffer.  */
+#define REG_STARTEND (1 << 2)
+
+
+/* If any error codes are removed, changed, or added, update the
+   `__re_error_msgid' table in regcomp.c.  */
+
+typedef enum
+{
+  _REG_ENOSYS = -1,	/* This will never happen for this implementation.  */
+  _REG_NOERROR = 0,	/* Success.  */
+  _REG_NOMATCH,		/* Didn't find a match (for regexec).  */
+
+  /* POSIX regcomp return error codes.  (In the order listed in the
+     standard.)  */
+  _REG_BADPAT,		/* Invalid pattern.  */
+  _REG_ECOLLATE,	/* Invalid collating element.  */
+  _REG_ECTYPE,		/* Invalid character class name.  */
+  _REG_EESCAPE,		/* Trailing backslash.  */
+  _REG_ESUBREG,		/* Invalid back reference.  */
+  _REG_EBRACK,		/* Unmatched left bracket.  */
+  _REG_EPAREN,		/* Parenthesis imbalance.  */
+  _REG_EBRACE,		/* Unmatched \{.  */
+  _REG_BADBR,		/* Invalid contents of \{\}.  */
+  _REG_ERANGE,		/* Invalid range end.  */
+  _REG_ESPACE,		/* Ran out of memory.  */
+  _REG_BADRPT,		/* No preceding re for repetition op.  */
+
+  /* Error codes we've added.  */
+  _REG_EEND,		/* Premature end.  */
+  _REG_ESIZE,		/* Compiled pattern bigger than 2^16 bytes.  */
+  _REG_ERPAREN		/* Unmatched ) or \); not returned from regcomp.  */
+} reg_errcode_t;
+
+#ifdef _XOPEN_SOURCE
+# define REG_ENOSYS	_REG_ENOSYS
+#endif
+#define REG_NOERROR	_REG_NOERROR
+#define REG_NOMATCH	_REG_NOMATCH
+#define REG_BADPAT	_REG_BADPAT
+#define REG_ECOLLATE	_REG_ECOLLATE
+#define REG_ECTYPE	_REG_ECTYPE
+#define REG_EESCAPE	_REG_EESCAPE
+#define REG_ESUBREG	_REG_ESUBREG
+#define REG_EBRACK	_REG_EBRACK
+#define REG_EPAREN	_REG_EPAREN
+#define REG_EBRACE	_REG_EBRACE
+#define REG_BADBR	_REG_BADBR
+#define REG_ERANGE	_REG_ERANGE
+#define REG_ESPACE	_REG_ESPACE
+#define REG_BADRPT	_REG_BADRPT
+#define REG_EEND	_REG_EEND
+#define REG_ESIZE	_REG_ESIZE
+#define REG_ERPAREN	_REG_ERPAREN
+
+/* struct re_pattern_buffer normally uses member names like `buffer'
+   that POSIX does not allow.  In POSIX mode these members have names
+   with leading `re_' (e.g., `re_buffer').  */
+#ifdef __USE_GNU_REGEX
+# define _REG_RE_NAME(id) id
+# define _REG_RM_NAME(id) id
+#else
+# define _REG_RE_NAME(id) re_##id
+# define _REG_RM_NAME(id) rm_##id
+#endif
+
+/* The user can specify the type of the re_translate member by
+   defining the macro RE_TRANSLATE_TYPE, which defaults to unsigned
+   char *.  This pollutes the POSIX name space, so in POSIX mode just
+   use unsigned char *.  */
+#ifdef __USE_GNU_REGEX
+# ifndef RE_TRANSLATE_TYPE
+#  define RE_TRANSLATE_TYPE unsigned char *
+# endif
+# define REG_TRANSLATE_TYPE RE_TRANSLATE_TYPE
+#else
+# define REG_TRANSLATE_TYPE unsigned char *
+#endif
+
+/* This data structure represents a compiled pattern.  Before calling
+   the pattern compiler, the fields `buffer', `allocated', `fastmap',
+   `translate', and `no_sub' can be set.  After the pattern has been
+   compiled, the `re_nsub' field is available.  All other fields are
+   private to the regex routines.  */
+
+struct re_pattern_buffer
+{
+  /* Space that holds the compiled pattern.  It is declared as
+     `unsigned char *' because its elements are sometimes used as
+     array indexes.  */
+  unsigned char *_REG_RE_NAME (buffer);
+
+  /* Number of bytes to which `buffer' points.  */
+  __re_long_size_t _REG_RE_NAME (allocated);
+
+  /* Number of bytes actually used in `buffer'.  */
+  __re_long_size_t _REG_RE_NAME (used);
+
+  /* Syntax setting with which the pattern was compiled.  */
+  reg_syntax_t _REG_RE_NAME (syntax);
+
+  /* Pointer to a fastmap, if any, otherwise zero.  re_search uses the
+     fastmap, if there is one, to skip over impossible starting points
+     for matches.  */
+  char *_REG_RE_NAME (fastmap);
+
+  /* Either a translate table to apply to all characters before
+     comparing them, or zero for no translation.  The translation is
+     applied to a pattern when it is compiled and to a string when it
+     is matched.  */
+  REG_TRANSLATE_TYPE _REG_RE_NAME (translate);
+
+  /* Number of subexpressions found by the compiler.  */
+  size_t re_nsub;
+
+  /* Zero if this pattern cannot match the empty string, one else.
+     Well, in truth it's used only in `re_search_2', to see whether or
+     not we should use the fastmap, so we don't set this absolutely
+     perfectly; see `re_compile_fastmap' (the `duplicate' case).  */
+  unsigned int _REG_RE_NAME (can_be_null) : 1;
+
+  /* If REGS_UNALLOCATED, allocate space in the `regs' structure
+     for `max (RE_NREGS, re_nsub + 1)' groups.
+     If REGS_REALLOCATE, reallocate space if necessary.
+     If REGS_FIXED, use what's there.  */
+#ifdef __USE_GNU_REGEX
+# define REGS_UNALLOCATED 0
+# define REGS_REALLOCATE 1
+# define REGS_FIXED 2
+#endif
+  unsigned int _REG_RE_NAME (regs_allocated) : 2;
+
+  /* Set to zero when `regex_compile' compiles a pattern; set to one
+     by `re_compile_fastmap' if it updates the fastmap.  */
+  unsigned int _REG_RE_NAME (fastmap_accurate) : 1;
+
+  /* If set, `re_match_2' does not return information about
+     subexpressions.  */
+  unsigned int _REG_RE_NAME (no_sub) : 1;
+
+  /* If set, a beginning-of-line anchor doesn't match at the beginning
+     of the string.  */
+  unsigned int _REG_RE_NAME (not_bol) : 1;
+
+  /* Similarly for an end-of-line anchor.  */
+  unsigned int _REG_RE_NAME (not_eol) : 1;
+
+  /* If true, an anchor at a newline matches.  */
+  unsigned int _REG_RE_NAME (newline_anchor) : 1;
+
+/* [[[end pattern_buffer]]] */
+};
+
+typedef struct re_pattern_buffer regex_t;
+
+/* This is the structure we store register match data in.  See
+   regex.texinfo for a full description of what registers match.  */
+struct re_registers
+{
+  __re_size_t _REG_RM_NAME (num_regs);
+  regoff_t *_REG_RM_NAME (start);
+  regoff_t *_REG_RM_NAME (end);
+};
+
+
+/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
+   `re_match_2' returns information about at least this many registers
+   the first time a `regs' structure is passed.  */
+#if !defined RE_NREGS && defined __USE_GNU_REGEX
+# define RE_NREGS 30
+#endif
+
+
+/* POSIX specification for registers.  Aside from the different names than
+   `re_registers', POSIX uses an array of structures, instead of a
+   structure of arrays.  */
+typedef struct
+{
+  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */
+  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */
+} regmatch_t;
+
+/* Declarations for routines.  */
+
+/* Sets the current default syntax to SYNTAX, and return the old syntax.
+   You can also simply assign to the `re_syntax_options' variable.  */
+extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
+
+/* Compile the regular expression PATTERN, with length LENGTH
+   and syntax given by the global `re_syntax_options', into the buffer
+   BUFFER.  Return NULL if successful, and an error string if not.  */
+extern const char *re_compile_pattern (const char *__pattern, size_t __length,
+				       struct re_pattern_buffer *__buffer);
+
+
+/* Compile a fastmap for the compiled pattern in BUFFER; used to
+   accelerate searches.  Return 0 if successful and -2 if was an
+   internal error.  */
+extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);
+
+
+/* Search in the string STRING (with length LENGTH) for the pattern
+   compiled into BUFFER.  Start searching at position START, for RANGE
+   characters.  Return the starting position of the match, -1 for no
+   match, or -2 for an internal error.  Also return register
+   information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
+extern regoff_t re_search (struct re_pattern_buffer *__buffer,
+			   const char *__string, __re_idx_t __length,
+			   __re_idx_t __start, regoff_t __range,
+			   struct re_registers *__regs);
+
+
+/* Like `re_search', but search in the concatenation of STRING1 and
+   STRING2.  Also, stop searching at index START + STOP.  */
+extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer,
+			     const char *__string1, __re_idx_t __length1,
+			     const char *__string2, __re_idx_t __length2,
+			     __re_idx_t __start, regoff_t __range,
+			     struct re_registers *__regs,
+			     __re_idx_t __stop);
+
+
+/* Like `re_search', but return how many characters in STRING the regexp
+   in BUFFER matched, starting at position START.  */
+extern regoff_t re_match (struct re_pattern_buffer *__buffer,
+			  const char *__string, __re_idx_t __length,
+			  __re_idx_t __start, struct re_registers *__regs);
+
+
+/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
+extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer,
+			    const char *__string1, __re_idx_t __length1,
+			    const char *__string2, __re_idx_t __length2,
+			    __re_idx_t __start, struct re_registers *__regs,
+			    __re_idx_t __stop);
+
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using BUFFER and REGS will use this memory
+   for recording register information.  STARTS and ENDS must be
+   allocated with malloc, and must each be at least `NUM_REGS * sizeof
+   (regoff_t)' bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+extern void re_set_registers (struct re_pattern_buffer *__buffer,
+			      struct re_registers *__regs,
+			      __re_size_t __num_regs,
+			      regoff_t *__starts, regoff_t *__ends);
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+# ifndef _CRAY
+/* 4.2 bsd compatibility.  */
+extern char *re_comp (const char *);
+extern int re_exec (const char *);
+# endif
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+   "restrict", and "configure" may have defined "restrict".
+   Other compilers use __restrict, __restrict__, and _Restrict, and
+   'configure' might #define 'restrict' to those words, so pick a
+   different name.  */
+#ifndef _Restrict_
+# if 199901L <= __STDC_VERSION__
+#  define _Restrict_ restrict
+# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)
+#  define _Restrict_ __restrict
+# else
+#  define _Restrict_
+# endif
+#endif
+/* gcc 3.1 and up support the [restrict] syntax.  Don't trust
+   sys/cdefs.h's definition of __restrict_arr, though, as it
+   mishandles gcc -ansi -pedantic.  */
+#ifndef _Restrict_arr_
+# if ((199901L <= __STDC_VERSION__					\
+       || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__))	\
+	   && !__STRICT_ANSI__))					\
+      && !defined __GNUG__)
+#  define _Restrict_arr_ _Restrict_
+# else
+#  define _Restrict_arr_
+# endif
+#endif
+
+/* POSIX compatibility.  */
+extern int regcomp (regex_t *_Restrict_ __preg,
+		    const char *_Restrict_ __pattern,
+		    int __cflags);
+
+extern int regexec (const regex_t *_Restrict_ __preg,
+		    const char *_Restrict_ __string, size_t __nmatch,
+		    regmatch_t __pmatch[_Restrict_arr_],
+		    int __eflags);
+
+extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg,
+			char *_Restrict_ __errbuf, size_t __errbuf_size);
+
+extern void regfree (regex_t *__preg);
+
+
+#ifdef __cplusplus
+}
+#endif	/* C++ */
+
+#endif /* regex.h */
diff --git a/win32/gl/regex_internal.c b/win32/gl/regex_internal.c
new file mode 100644
index 0000000..dbe04c6
--- /dev/null
+++ b/win32/gl/regex_internal.c
@@ -0,0 +1,1741 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+   Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu at yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+static void re_string_construct_common (const char *str, Idx len,
+					re_string_t *pstr,
+					RE_TRANSLATE_TYPE trans, bool icase,
+					const re_dfa_t *dfa) internal_function;
+static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
+					  const re_node_set *nodes,
+					  re_hashval_t hash) internal_function;
+static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
+					  const re_node_set *nodes,
+					  unsigned int context,
+					  re_hashval_t hash) internal_function;
+
+/* Functions for string operation.  */
+
+/* This function allocate the buffers.  It is necessary to call
+   re_string_reconstruct before using the object.  */
+
+static reg_errcode_t
+internal_function
+re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len,
+		    RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
+{
+  reg_errcode_t ret;
+  Idx init_buf_len;
+
+  /* Ensure at least one character fits into the buffers.  */
+  if (init_len < dfa->mb_cur_max)
+    init_len = dfa->mb_cur_max;
+  init_buf_len = (len + 1 < init_len) ? len + 1: init_len;
+  re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+  ret = re_string_realloc_buffers (pstr, init_buf_len);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  pstr->word_char = dfa->word_char;
+  pstr->word_ops_used = dfa->word_ops_used;
+  pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+  pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len;
+  pstr->valid_raw_len = pstr->valid_len;
+  return REG_NOERROR;
+}
+
+/* This function allocate the buffers, and initialize them.  */
+
+static reg_errcode_t
+internal_function
+re_string_construct (re_string_t *pstr, const char *str, Idx len,
+		     RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
+{
+  reg_errcode_t ret;
+  memset (pstr, '\0', sizeof (re_string_t));
+  re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+  if (len > 0)
+    {
+      ret = re_string_realloc_buffers (pstr, len + 1);
+      if (BE (ret != REG_NOERROR, 0))
+	return ret;
+    }
+  pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+
+  if (icase)
+    {
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	{
+	  while (1)
+	    {
+	      ret = build_wcs_upper_buffer (pstr);
+	      if (BE (ret != REG_NOERROR, 0))
+		return ret;
+	      if (pstr->valid_raw_len >= len)
+		break;
+	      if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max)
+		break;
+	      ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+	      if (BE (ret != REG_NOERROR, 0))
+		return ret;
+	    }
+	}
+      else
+#endif /* RE_ENABLE_I18N  */
+	build_upper_buffer (pstr);
+    }
+  else
+    {
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	build_wcs_buffer (pstr);
+      else
+#endif /* RE_ENABLE_I18N  */
+	{
+	  if (trans != NULL)
+	    re_string_translate_buffer (pstr);
+	  else
+	    {
+	      pstr->valid_len = pstr->bufs_len;
+	      pstr->valid_raw_len = pstr->bufs_len;
+	    }
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Helper functions for re_string_allocate, and re_string_construct.  */
+
+static reg_errcode_t
+internal_function
+re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
+{
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1)
+    {
+      wint_t *new_wcs;
+
+      /* Avoid overflow.  */
+      size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
+      if (BE (SIZE_MAX / max_object_size < new_buf_len, 0))
+	return REG_ESPACE;
+
+      new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
+      if (BE (new_wcs == NULL, 0))
+	return REG_ESPACE;
+      pstr->wcs = new_wcs;
+      if (pstr->offsets != NULL)
+	{
+	  Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len);
+	  if (BE (new_offsets == NULL, 0))
+	    return REG_ESPACE;
+	  pstr->offsets = new_offsets;
+	}
+    }
+#endif /* RE_ENABLE_I18N  */
+  if (pstr->mbs_allocated)
+    {
+      unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
+					   new_buf_len);
+      if (BE (new_mbs == NULL, 0))
+	return REG_ESPACE;
+      pstr->mbs = new_mbs;
+    }
+  pstr->bufs_len = new_buf_len;
+  return REG_NOERROR;
+}
+
+
+static void
+internal_function
+re_string_construct_common (const char *str, Idx len, re_string_t *pstr,
+			    RE_TRANSLATE_TYPE trans, bool icase,
+			    const re_dfa_t *dfa)
+{
+  pstr->raw_mbs = (const unsigned char *) str;
+  pstr->len = len;
+  pstr->raw_len = len;
+  pstr->trans = trans;
+  pstr->icase = icase;
+  pstr->mbs_allocated = (trans != NULL || icase);
+  pstr->mb_cur_max = dfa->mb_cur_max;
+  pstr->is_utf8 = dfa->is_utf8;
+  pstr->map_notascii = dfa->map_notascii;
+  pstr->stop = pstr->len;
+  pstr->raw_stop = pstr->stop;
+}
+
+#ifdef RE_ENABLE_I18N
+
+/* Build wide character buffer PSTR->WCS.
+   If the byte sequence of the string are:
+     <mb1>(0), <mb1>(1), <mb2>(0), <mb2>(1), <sb3>
+   Then wide character buffer will be:
+     <wc1>   , WEOF    , <wc2>   , WEOF    , <wc3>
+   We use WEOF for padding, they indicate that the position isn't
+   a first byte of a multibyte character.
+
+   Note that this function assumes PSTR->VALID_LEN elements are already
+   built and starts from PSTR->VALID_LEN.  */
+
+static void
+internal_function
+build_wcs_buffer (re_string_t *pstr)
+{
+#ifdef _LIBC
+  unsigned char buf[MB_LEN_MAX];
+  assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+  unsigned char buf[64];
+#endif
+  mbstate_t prev_st;
+  Idx byte_idx, end_idx, remain_len;
+  size_t mbclen;
+
+  /* Build the buffers from pstr->valid_len to either pstr->len or
+     pstr->bufs_len.  */
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+  for (byte_idx = pstr->valid_len; byte_idx < end_idx;)
+    {
+      wchar_t wc;
+      const char *p;
+
+      remain_len = end_idx - byte_idx;
+      prev_st = pstr->cur_state;
+      /* Apply the translation if we need.  */
+      if (BE (pstr->trans != NULL, 0))
+	{
+	  int i, ch;
+
+	  for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+	    {
+	      ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i];
+	      buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch];
+	    }
+	  p = (const char *) buf;
+	}
+      else
+	p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
+      mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+      if (BE (mbclen == (size_t) -2, 0))
+	{
+	  /* The buffer doesn't have enough space, finish to build.  */
+	  pstr->cur_state = prev_st;
+	  break;
+	}
+      else if (BE (mbclen == (size_t) -1 || mbclen == 0, 0))
+	{
+	  /* We treat these cases as a singlebyte character.  */
+	  mbclen = 1;
+	  wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+	  if (BE (pstr->trans != NULL, 0))
+	    wc = pstr->trans[wc];
+	  pstr->cur_state = prev_st;
+	}
+
+      /* Write wide character and padding.  */
+      pstr->wcs[byte_idx++] = wc;
+      /* Write paddings.  */
+      for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+	pstr->wcs[byte_idx++] = WEOF;
+    }
+  pstr->valid_len = byte_idx;
+  pstr->valid_raw_len = byte_idx;
+}
+
+/* Build wide character buffer PSTR->WCS like build_wcs_buffer,
+   but for REG_ICASE.  */
+
+static reg_errcode_t
+internal_function
+build_wcs_upper_buffer (re_string_t *pstr)
+{
+  mbstate_t prev_st;
+  Idx src_idx, byte_idx, end_idx, remain_len;
+  size_t mbclen;
+#ifdef _LIBC
+  char buf[MB_LEN_MAX];
+  assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+  char buf[64];
+#endif
+
+  byte_idx = pstr->valid_len;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  /* The following optimization assumes that ASCII characters can be
+     mapped to wide characters with a simple cast.  */
+  if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed)
+    {
+      while (byte_idx < end_idx)
+	{
+	  wchar_t wc;
+
+	  if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx])
+	      && mbsinit (&pstr->cur_state))
+	    {
+	      /* In case of a singlebyte character.  */
+	      pstr->mbs[byte_idx]
+		= toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]);
+	      /* The next step uses the assumption that wchar_t is encoded
+		 ASCII-safe: all ASCII values can be converted like this.  */
+	      pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx];
+	      ++byte_idx;
+	      continue;
+	    }
+
+	  remain_len = end_idx - byte_idx;
+	  prev_st = pstr->cur_state;
+	  mbclen = mbrtowc (&wc,
+			    ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
+			     + byte_idx), remain_len, &pstr->cur_state);
+	  if (BE (mbclen < (size_t) -2, 1))
+	    {
+	      wchar_t wcu = wc;
+	      if (iswlower (wc))
+		{
+		  size_t mbcdlen;
+
+		  wcu = towupper (wc);
+		  mbcdlen = wcrtomb (buf, wcu, &prev_st);
+		  if (BE (mbclen == mbcdlen, 1))
+		    memcpy (pstr->mbs + byte_idx, buf, mbclen);
+		  else
+		    {
+		      src_idx = byte_idx;
+		      goto offsets_needed;
+		    }
+		}
+	      else
+		memcpy (pstr->mbs + byte_idx,
+			pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen);
+	      pstr->wcs[byte_idx++] = wcu;
+	      /* Write paddings.  */
+	      for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+		pstr->wcs[byte_idx++] = WEOF;
+	    }
+	  else if (mbclen == (size_t) -1 || mbclen == 0)
+	    {
+	      /* It is an invalid character or '\0'.  Just use the byte.  */
+	      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+	      pstr->mbs[byte_idx] = ch;
+	      /* And also cast it to wide char.  */
+	      pstr->wcs[byte_idx++] = (wchar_t) ch;
+	      if (BE (mbclen == (size_t) -1, 0))
+		pstr->cur_state = prev_st;
+	    }
+	  else
+	    {
+	      /* The buffer doesn't have enough space, finish to build.  */
+	      pstr->cur_state = prev_st;
+	      break;
+	    }
+	}
+      pstr->valid_len = byte_idx;
+      pstr->valid_raw_len = byte_idx;
+      return REG_NOERROR;
+    }
+  else
+    for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;)
+      {
+	wchar_t wc;
+	const char *p;
+      offsets_needed:
+	remain_len = end_idx - byte_idx;
+	prev_st = pstr->cur_state;
+	if (BE (pstr->trans != NULL, 0))
+	  {
+	    int i, ch;
+
+	    for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+	      {
+		ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i];
+		buf[i] = pstr->trans[ch];
+	      }
+	    p = (const char *) buf;
+	  }
+	else
+	  p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
+	mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+	if (BE (mbclen < (size_t) -2, 1))
+	  {
+	    wchar_t wcu = wc;
+	    if (iswlower (wc))
+	      {
+		size_t mbcdlen;
+
+		wcu = towupper (wc);
+		mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
+		if (BE (mbclen == mbcdlen, 1))
+		  memcpy (pstr->mbs + byte_idx, buf, mbclen);
+		else if (mbcdlen != (size_t) -1)
+		  {
+		    size_t i;
+
+		    if (byte_idx + mbcdlen > pstr->bufs_len)
+		      {
+			pstr->cur_state = prev_st;
+			break;
+		      }
+
+		    if (pstr->offsets == NULL)
+		      {
+			pstr->offsets = re_malloc (Idx, pstr->bufs_len);
+
+			if (pstr->offsets == NULL)
+			  return REG_ESPACE;
+		      }
+		    if (!pstr->offsets_needed)
+		      {
+			for (i = 0; i < (size_t) byte_idx; ++i)
+			  pstr->offsets[i] = i;
+			pstr->offsets_needed = 1;
+		      }
+
+		    memcpy (pstr->mbs + byte_idx, buf, mbcdlen);
+		    pstr->wcs[byte_idx] = wcu;
+		    pstr->offsets[byte_idx] = src_idx;
+		    for (i = 1; i < mbcdlen; ++i)
+		      {
+			pstr->offsets[byte_idx + i]
+			  = src_idx + (i < mbclen ? i : mbclen - 1);
+			pstr->wcs[byte_idx + i] = WEOF;
+		      }
+		    pstr->len += mbcdlen - mbclen;
+		    if (pstr->raw_stop > src_idx)
+		      pstr->stop += mbcdlen - mbclen;
+		    end_idx = (pstr->bufs_len > pstr->len)
+			      ? pstr->len : pstr->bufs_len;
+		    byte_idx += mbcdlen;
+		    src_idx += mbclen;
+		    continue;
+		  }
+                else
+                  memcpy (pstr->mbs + byte_idx, p, mbclen);
+	      }
+	    else
+	      memcpy (pstr->mbs + byte_idx, p, mbclen);
+
+	    if (BE (pstr->offsets_needed != 0, 0))
+	      {
+		size_t i;
+		for (i = 0; i < mbclen; ++i)
+		  pstr->offsets[byte_idx + i] = src_idx + i;
+	      }
+	    src_idx += mbclen;
+
+	    pstr->wcs[byte_idx++] = wcu;
+	    /* Write paddings.  */
+	    for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+	      pstr->wcs[byte_idx++] = WEOF;
+	  }
+	else if (mbclen == (size_t) -1 || mbclen == 0)
+	  {
+	    /* It is an invalid character or '\0'.  Just use the byte.  */
+	    int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
+
+	    if (BE (pstr->trans != NULL, 0))
+	      ch = pstr->trans [ch];
+	    pstr->mbs[byte_idx] = ch;
+
+	    if (BE (pstr->offsets_needed != 0, 0))
+	      pstr->offsets[byte_idx] = src_idx;
+	    ++src_idx;
+
+	    /* And also cast it to wide char.  */
+	    pstr->wcs[byte_idx++] = (wchar_t) ch;
+	    if (BE (mbclen == (size_t) -1, 0))
+	      pstr->cur_state = prev_st;
+	  }
+	else
+	  {
+	    /* The buffer doesn't have enough space, finish to build.  */
+	    pstr->cur_state = prev_st;
+	    break;
+	  }
+      }
+  pstr->valid_len = byte_idx;
+  pstr->valid_raw_len = src_idx;
+  return REG_NOERROR;
+}
+
+/* Skip characters until the index becomes greater than NEW_RAW_IDX.
+   Return the index.  */
+
+static Idx
+internal_function
+re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
+{
+  mbstate_t prev_st;
+  Idx rawbuf_idx;
+  size_t mbclen;
+  wint_t wc = WEOF;
+
+  /* Skip the characters which are not necessary to check.  */
+  for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len;
+       rawbuf_idx < new_raw_idx;)
+    {
+      wchar_t wc2;
+      Idx remain_len;
+      remain_len = pstr->len - rawbuf_idx;
+      prev_st = pstr->cur_state;
+      mbclen = mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
+			remain_len, &pstr->cur_state);
+      if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
+	{
+	  /* We treat these cases as a single byte character.  */
+	  if (mbclen == 0 || remain_len == 0)
+	    wc = L'\0';
+	  else
+	    wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx);
+	  mbclen = 1;
+	  pstr->cur_state = prev_st;
+	}
+      else
+	wc = wc2;
+      /* Then proceed the next character.  */
+      rawbuf_idx += mbclen;
+    }
+  *last_wc = wc;
+  return rawbuf_idx;
+}
+#endif /* RE_ENABLE_I18N  */
+
+/* Build the buffer PSTR->MBS, and apply the translation if we need.
+   This function is used in case of REG_ICASE.  */
+
+static void
+internal_function
+build_upper_buffer (re_string_t *pstr)
+{
+  Idx char_idx, end_idx;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx)
+    {
+      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
+      if (BE (pstr->trans != NULL, 0))
+	ch = pstr->trans[ch];
+      if (islower (ch))
+	pstr->mbs[char_idx] = toupper (ch);
+      else
+	pstr->mbs[char_idx] = ch;
+    }
+  pstr->valid_len = char_idx;
+  pstr->valid_raw_len = char_idx;
+}
+
+/* Apply TRANS to the buffer in PSTR.  */
+
+static void
+internal_function
+re_string_translate_buffer (re_string_t *pstr)
+{
+  Idx buf_idx, end_idx;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx)
+    {
+      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx];
+      pstr->mbs[buf_idx] = pstr->trans[ch];
+    }
+
+  pstr->valid_len = buf_idx;
+  pstr->valid_raw_len = buf_idx;
+}
+
+/* This function re-construct the buffers.
+   Concretely, convert to wide character in case of pstr->mb_cur_max > 1,
+   convert to upper case in case of REG_ICASE, apply translation.  */
+
+static reg_errcode_t
+internal_function
+re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
+{
+  Idx offset;
+
+  if (BE (pstr->raw_mbs_idx <= idx, 0))
+    offset = idx - pstr->raw_mbs_idx;
+  else
+    {
+      /* Reset buffer.  */
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+#endif /* RE_ENABLE_I18N */
+      pstr->len = pstr->raw_len;
+      pstr->stop = pstr->raw_stop;
+      pstr->valid_len = 0;
+      pstr->raw_mbs_idx = 0;
+      pstr->valid_raw_len = 0;
+      pstr->offsets_needed = 0;
+      pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+			   : CONTEXT_NEWLINE | CONTEXT_BEGBUF);
+      if (!pstr->mbs_allocated)
+	pstr->mbs = (unsigned char *) pstr->raw_mbs;
+      offset = idx;
+    }
+
+  if (BE (offset != 0, 1))
+    {
+      /* Should the already checked characters be kept?  */
+      if (BE (offset < pstr->valid_raw_len, 1))
+	{
+	  /* Yes, move them to the front of the buffer.  */
+#ifdef RE_ENABLE_I18N
+	  if (BE (pstr->offsets_needed, 0))
+	    {
+	      Idx low = 0, high = pstr->valid_len, mid;
+	      do
+		{
+		  mid = (high + low) / 2;
+		  if (pstr->offsets[mid] > offset)
+		    high = mid;
+		  else if (pstr->offsets[mid] < offset)
+		    low = mid + 1;
+		  else
+		    break;
+		}
+	      while (low < high);
+	      if (pstr->offsets[mid] < offset)
+		++mid;
+	      pstr->tip_context = re_string_context_at (pstr, mid - 1,
+							eflags);
+	      /* This can be quite complicated, so handle specially
+		 only the common and easy case where the character with
+		 different length representation of lower and upper
+		 case is present at or after offset.  */
+	      if (pstr->valid_len > offset
+		  && mid == offset && pstr->offsets[mid] == offset)
+		{
+		  memmove (pstr->wcs, pstr->wcs + offset,
+			   (pstr->valid_len - offset) * sizeof (wint_t));
+		  memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset);
+		  pstr->valid_len -= offset;
+		  pstr->valid_raw_len -= offset;
+		  for (low = 0; low < pstr->valid_len; low++)
+		    pstr->offsets[low] = pstr->offsets[low + offset] - offset;
+		}
+	      else
+		{
+		  /* Otherwise, just find out how long the partial multibyte
+		     character at offset is and fill it with WEOF/255.  */
+		  pstr->len = pstr->raw_len - idx + offset;
+		  pstr->stop = pstr->raw_stop - idx + offset;
+		  pstr->offsets_needed = 0;
+		  while (mid > 0 && pstr->offsets[mid - 1] == offset)
+		    --mid;
+		  while (mid < pstr->valid_len)
+		    if (pstr->wcs[mid] != WEOF)
+		      break;
+		    else
+		      ++mid;
+		  if (mid == pstr->valid_len)
+		    pstr->valid_len = 0;
+		  else
+		    {
+		      pstr->valid_len = pstr->offsets[mid] - offset;
+		      if (pstr->valid_len)
+			{
+			  for (low = 0; low < pstr->valid_len; ++low)
+			    pstr->wcs[low] = WEOF;
+			  memset (pstr->mbs, 255, pstr->valid_len);
+			}
+		    }
+		  pstr->valid_raw_len = pstr->valid_len;
+		}
+	    }
+	  else
+#endif
+	    {
+	      pstr->tip_context = re_string_context_at (pstr, offset - 1,
+							eflags);
+#ifdef RE_ENABLE_I18N
+	      if (pstr->mb_cur_max > 1)
+		memmove (pstr->wcs, pstr->wcs + offset,
+			 (pstr->valid_len - offset) * sizeof (wint_t));
+#endif /* RE_ENABLE_I18N */
+	      if (BE (pstr->mbs_allocated, 0))
+		memmove (pstr->mbs, pstr->mbs + offset,
+			 pstr->valid_len - offset);
+	      pstr->valid_len -= offset;
+	      pstr->valid_raw_len -= offset;
+#if DEBUG
+	      assert (pstr->valid_len > 0);
+#endif
+	    }
+	}
+      else
+	{
+	  /* No, skip all characters until IDX.  */
+	  Idx prev_valid_len = pstr->valid_len;
+
+#ifdef RE_ENABLE_I18N
+	  if (BE (pstr->offsets_needed, 0))
+	    {
+	      pstr->len = pstr->raw_len - idx + offset;
+	      pstr->stop = pstr->raw_stop - idx + offset;
+	      pstr->offsets_needed = 0;
+	    }
+#endif
+	  pstr->valid_len = 0;
+#ifdef RE_ENABLE_I18N
+	  if (pstr->mb_cur_max > 1)
+	    {
+	      Idx wcs_idx;
+	      wint_t wc = WEOF;
+
+	      if (pstr->is_utf8)
+		{
+		  const unsigned char *raw, *p, *end;
+
+		  /* Special case UTF-8.  Multi-byte chars start with any
+		     byte other than 0x80 - 0xbf.  */
+		  raw = pstr->raw_mbs + pstr->raw_mbs_idx;
+		  end = raw + (offset - pstr->mb_cur_max);
+		  if (end < pstr->raw_mbs)
+		    end = pstr->raw_mbs;
+		  p = raw + offset - 1;
+#ifdef _LIBC
+		  /* We know the wchar_t encoding is UCS4, so for the simple
+		     case, ASCII characters, skip the conversion step.  */
+		  if (isascii (*p) && BE (pstr->trans == NULL, 1))
+		    {
+		      memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+		      /* pstr->valid_len = 0; */
+		      wc = (wchar_t) *p;
+		    }
+		  else
+#endif
+		    for (; p >= end; --p)
+		      if ((*p & 0xc0) != 0x80)
+			{
+			  mbstate_t cur_state;
+			  wchar_t wc2;
+			  Idx mlen = raw + pstr->len - p;
+			  unsigned char buf[6];
+			  size_t mbclen;
+
+			  if (BE (pstr->trans != NULL, 0))
+			    {
+			      int i = mlen < 6 ? mlen : 6;
+			      while (--i >= 0)
+				buf[i] = pstr->trans[p[i]];
+			    }
+			  /* XXX Don't use mbrtowc, we know which conversion
+			     to use (UTF-8 -> UCS4).  */
+			  memset (&cur_state, 0, sizeof (cur_state));
+			  mbclen = mbrtowc (&wc2, (const char *) p, mlen,
+					    &cur_state);
+			  if (raw + offset - p <= mbclen
+			      && mbclen < (size_t) -2)
+			    {
+			      memset (&pstr->cur_state, '\0',
+				      sizeof (mbstate_t));
+			      pstr->valid_len = mbclen - (raw + offset - p);
+			      wc = wc2;
+			    }
+			  break;
+			}
+		}
+
+	      if (wc == WEOF)
+		pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx;
+	      if (wc == WEOF)
+		pstr->tip_context
+		  = re_string_context_at (pstr, prev_valid_len - 1, eflags);
+	      else
+		pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0)
+				      && IS_WIDE_WORD_CHAR (wc))
+				     ? CONTEXT_WORD
+				     : ((IS_WIDE_NEWLINE (wc)
+					 && pstr->newline_anchor)
+					? CONTEXT_NEWLINE : 0));
+	      if (BE (pstr->valid_len, 0))
+		{
+		  for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx)
+		    pstr->wcs[wcs_idx] = WEOF;
+		  if (pstr->mbs_allocated)
+		    memset (pstr->mbs, 255, pstr->valid_len);
+		}
+	      pstr->valid_raw_len = pstr->valid_len;
+	    }
+	  else
+#endif /* RE_ENABLE_I18N */
+	    {
+	      int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1];
+	      pstr->valid_raw_len = 0;
+	      if (pstr->trans)
+		c = pstr->trans[c];
+	      pstr->tip_context = (bitset_contain (pstr->word_char, c)
+				   ? CONTEXT_WORD
+				   : ((IS_NEWLINE (c) && pstr->newline_anchor)
+				      ? CONTEXT_NEWLINE : 0));
+	    }
+	}
+      if (!BE (pstr->mbs_allocated, 0))
+	pstr->mbs += offset;
+    }
+  pstr->raw_mbs_idx = idx;
+  pstr->len -= offset;
+  pstr->stop -= offset;
+
+  /* Then build the buffers.  */
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1)
+    {
+      if (pstr->icase)
+	{
+	  reg_errcode_t ret = build_wcs_upper_buffer (pstr);
+	  if (BE (ret != REG_NOERROR, 0))
+	    return ret;
+	}
+      else
+	build_wcs_buffer (pstr);
+    }
+  else
+#endif /* RE_ENABLE_I18N */
+    if (BE (pstr->mbs_allocated, 0))
+      {
+	if (pstr->icase)
+	  build_upper_buffer (pstr);
+	else if (pstr->trans != NULL)
+	  re_string_translate_buffer (pstr);
+      }
+    else
+      pstr->valid_len = pstr->len;
+
+  pstr->cur_idx = 0;
+  return REG_NOERROR;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
+{
+  int ch;
+  Idx off;
+
+  /* Handle the common (easiest) cases first.  */
+  if (BE (!pstr->mbs_allocated, 1))
+    return re_string_peek_byte (pstr, idx);
+
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1
+      && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx))
+    return re_string_peek_byte (pstr, idx);
+#endif
+
+  off = pstr->cur_idx + idx;
+#ifdef RE_ENABLE_I18N
+  if (pstr->offsets_needed)
+    off = pstr->offsets[off];
+#endif
+
+  ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I
+     this function returns CAPITAL LETTER I instead of first byte of
+     DOTLESS SMALL LETTER I.  The latter would confuse the parser,
+     since peek_byte_case doesn't advance cur_idx in any way.  */
+  if (pstr->offsets_needed && !isascii (ch))
+    return re_string_peek_byte (pstr, idx);
+#endif
+
+  return ch;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_fetch_byte_case (re_string_t *pstr)
+{
+  if (BE (!pstr->mbs_allocated, 1))
+    return re_string_fetch_byte (pstr);
+
+#ifdef RE_ENABLE_I18N
+  if (pstr->offsets_needed)
+    {
+      Idx off;
+      int ch;
+
+      /* For tr_TR.UTF-8 [[:islower:]] there is
+	 [[: CAPITAL LETTER I WITH DOT lower:]] in mbs.  Skip
+	 in that case the whole multi-byte character and return
+	 the original letter.  On the other side, with
+	 [[: DOTLESS SMALL LETTER I return [[:I, as doing
+	 anything else would complicate things too much.  */
+
+      if (!re_string_first_byte (pstr, pstr->cur_idx))
+	return re_string_fetch_byte (pstr);
+
+      off = pstr->offsets[pstr->cur_idx];
+      ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+      if (! isascii (ch))
+	return re_string_fetch_byte (pstr);
+
+      re_string_skip_bytes (pstr,
+			    re_string_char_size_at (pstr, pstr->cur_idx));
+      return ch;
+    }
+#endif
+
+  return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++];
+}
+
+static void
+internal_function
+re_string_destruct (re_string_t *pstr)
+{
+#ifdef RE_ENABLE_I18N
+  re_free (pstr->wcs);
+  re_free (pstr->offsets);
+#endif /* RE_ENABLE_I18N  */
+  if (pstr->mbs_allocated)
+    re_free (pstr->mbs);
+}
+
+/* Return the context at IDX in INPUT.  */
+
+static unsigned int
+internal_function
+re_string_context_at (const re_string_t *input, Idx idx, int eflags)
+{
+  int c;
+  if (BE (! REG_VALID_INDEX (idx), 0))
+    /* In this case, we use the value stored in input->tip_context,
+       since we can't know the character in input->mbs[-1] here.  */
+    return input->tip_context;
+  if (BE (idx == input->len, 0))
+    return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
+	    : CONTEXT_NEWLINE | CONTEXT_ENDBUF);
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1)
+    {
+      wint_t wc;
+      Idx wc_idx = idx;
+      while(input->wcs[wc_idx] == WEOF)
+	{
+#ifdef DEBUG
+	  /* It must not happen.  */
+	  assert (REG_VALID_INDEX (wc_idx));
+#endif
+	  --wc_idx;
+	  if (! REG_VALID_INDEX (wc_idx))
+	    return input->tip_context;
+	}
+      wc = input->wcs[wc_idx];
+      if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc))
+	return CONTEXT_WORD;
+      return (IS_WIDE_NEWLINE (wc) && input->newline_anchor
+	      ? CONTEXT_NEWLINE : 0);
+    }
+  else
+#endif
+    {
+      c = re_string_byte_at (input, idx);
+      if (bitset_contain (input->word_char, c))
+	return CONTEXT_WORD;
+      return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0;
+    }
+}
+
+/* Functions for set operation.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_alloc (re_node_set *set, Idx size)
+{
+  set->alloc = size;
+  set->nelem = 0;
+  set->elems = re_malloc (Idx, size);
+  if (BE (set->elems == NULL, 0))
+    return REG_ESPACE;
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_1 (re_node_set *set, Idx elem)
+{
+  set->alloc = 1;
+  set->nelem = 1;
+  set->elems = re_malloc (Idx, 1);
+  if (BE (set->elems == NULL, 0))
+    {
+      set->alloc = set->nelem = 0;
+      return REG_ESPACE;
+    }
+  set->elems[0] = elem;
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2)
+{
+  set->alloc = 2;
+  set->elems = re_malloc (Idx, 2);
+  if (BE (set->elems == NULL, 0))
+    return REG_ESPACE;
+  if (elem1 == elem2)
+    {
+      set->nelem = 1;
+      set->elems[0] = elem1;
+    }
+  else
+    {
+      set->nelem = 2;
+      if (elem1 < elem2)
+	{
+	  set->elems[0] = elem1;
+	  set->elems[1] = elem2;
+	}
+      else
+	{
+	  set->elems[0] = elem2;
+	  set->elems[1] = elem1;
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
+{
+  dest->nelem = src->nelem;
+  if (src->nelem > 0)
+    {
+      dest->alloc = dest->nelem;
+      dest->elems = re_malloc (Idx, dest->alloc);
+      if (BE (dest->elems == NULL, 0))
+	{
+	  dest->alloc = dest->nelem = 0;
+	  return REG_ESPACE;
+	}
+      memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
+    }
+  else
+    re_node_set_init_empty (dest);
+  return REG_NOERROR;
+}
+
+/* Calculate the intersection of the sets SRC1 and SRC2. And merge it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.
+   Note: We assume dest->elems is NULL, when dest->alloc is 0.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
+			   const re_node_set *src2)
+{
+  Idx i1, i2, is, id, delta, sbase;
+  if (src1->nelem == 0 || src2->nelem == 0)
+    return REG_NOERROR;
+
+  /* We need dest->nelem + 2 * elems_in_intersection; this is a
+     conservative estimate.  */
+  if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
+    {
+      Idx new_alloc = src1->nelem + src2->nelem + dest->alloc;
+      Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc);
+      if (BE (new_elems == NULL, 0))
+        return REG_ESPACE;
+      dest->elems = new_elems;
+      dest->alloc = new_alloc;
+    }
+
+  /* Find the items in the intersection of SRC1 and SRC2, and copy
+     into the top of DEST those that are not already in DEST itself.  */
+  sbase = dest->nelem + src1->nelem + src2->nelem;
+  i1 = src1->nelem - 1;
+  i2 = src2->nelem - 1;
+  id = dest->nelem - 1;
+  for (;;)
+    {
+      if (src1->elems[i1] == src2->elems[i2])
+	{
+	  /* Try to find the item in DEST.  Maybe we could binary search?  */
+	  while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1])
+	    --id;
+
+          if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1])
+            dest->elems[--sbase] = src1->elems[i1];
+
+	  if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2))
+	    break;
+	}
+
+      /* Lower the highest of the two items.  */
+      else if (src1->elems[i1] < src2->elems[i2])
+	{
+	  if (! REG_VALID_INDEX (--i2))
+	    break;
+	}
+      else
+	{
+	  if (! REG_VALID_INDEX (--i1))
+	    break;
+	}
+    }
+
+  id = dest->nelem - 1;
+  is = dest->nelem + src1->nelem + src2->nelem - 1;
+  delta = is - sbase + 1;
+
+  /* Now copy.  When DELTA becomes zero, the remaining
+     DEST elements are already in place; this is more or
+     less the same loop that is in re_node_set_merge.  */
+  dest->nelem += delta;
+  if (delta > 0 && REG_VALID_INDEX (id))
+    for (;;)
+      {
+        if (dest->elems[is] > dest->elems[id])
+          {
+            /* Copy from the top.  */
+            dest->elems[id + delta--] = dest->elems[is--];
+            if (delta == 0)
+              break;
+          }
+        else
+          {
+            /* Slide from the bottom.  */
+            dest->elems[id + delta] = dest->elems[id];
+            if (! REG_VALID_INDEX (--id))
+              break;
+          }
+      }
+
+  /* Copy remaining SRC elements.  */
+  memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx));
+
+  return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets SRC1 and SRC2. And store it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
+			const re_node_set *src2)
+{
+  Idx i1, i2, id;
+  if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0)
+    {
+      dest->alloc = src1->nelem + src2->nelem;
+      dest->elems = re_malloc (Idx, dest->alloc);
+      if (BE (dest->elems == NULL, 0))
+	return REG_ESPACE;
+    }
+  else
+    {
+      if (src1 != NULL && src1->nelem > 0)
+	return re_node_set_init_copy (dest, src1);
+      else if (src2 != NULL && src2->nelem > 0)
+	return re_node_set_init_copy (dest, src2);
+      else
+	re_node_set_init_empty (dest);
+      return REG_NOERROR;
+    }
+  for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;)
+    {
+      if (src1->elems[i1] > src2->elems[i2])
+	{
+	  dest->elems[id++] = src2->elems[i2++];
+	  continue;
+	}
+      if (src1->elems[i1] == src2->elems[i2])
+	++i2;
+      dest->elems[id++] = src1->elems[i1++];
+    }
+  if (i1 < src1->nelem)
+    {
+      memcpy (dest->elems + id, src1->elems + i1,
+	     (src1->nelem - i1) * sizeof (Idx));
+      id += src1->nelem - i1;
+    }
+  else if (i2 < src2->nelem)
+    {
+      memcpy (dest->elems + id, src2->elems + i2,
+	     (src2->nelem - i2) * sizeof (Idx));
+      id += src2->nelem - i2;
+    }
+  dest->nelem = id;
+  return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets DEST and SRC. And store it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_merge (re_node_set *dest, const re_node_set *src)
+{
+  Idx is, id, sbase, delta;
+  if (src == NULL || src->nelem == 0)
+    return REG_NOERROR;
+  if (dest->alloc < 2 * src->nelem + dest->nelem)
+    {
+      Idx new_alloc = 2 * (src->nelem + dest->alloc);
+      Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc);
+      if (BE (new_buffer == NULL, 0))
+	return REG_ESPACE;
+      dest->elems = new_buffer;
+      dest->alloc = new_alloc;
+    }
+
+  if (BE (dest->nelem == 0, 0))
+    {
+      dest->nelem = src->nelem;
+      memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
+      return REG_NOERROR;
+    }
+
+  /* Copy into the top of DEST the items of SRC that are not
+     found in DEST.  Maybe we could binary search in DEST?  */
+  for (sbase = dest->nelem + 2 * src->nelem,
+       is = src->nelem - 1, id = dest->nelem - 1;
+       REG_VALID_INDEX (is) && REG_VALID_INDEX (id); )
+    {
+      if (dest->elems[id] == src->elems[is])
+        is--, id--;
+      else if (dest->elems[id] < src->elems[is])
+        dest->elems[--sbase] = src->elems[is--];
+      else /* if (dest->elems[id] > src->elems[is]) */
+        --id;
+    }
+
+  if (REG_VALID_INDEX (is))
+    {
+      /* If DEST is exhausted, the remaining items of SRC must be unique.  */
+      sbase -= is + 1;
+      memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx));
+    }
+
+  id = dest->nelem - 1;
+  is = dest->nelem + 2 * src->nelem - 1;
+  delta = is - sbase + 1;
+  if (delta == 0)
+    return REG_NOERROR;
+
+  /* Now copy.  When DELTA becomes zero, the remaining
+     DEST elements are already in place.  */
+  dest->nelem += delta;
+  for (;;)
+    {
+      if (dest->elems[is] > dest->elems[id])
+        {
+	  /* Copy from the top.  */
+          dest->elems[id + delta--] = dest->elems[is--];
+	  if (delta == 0)
+	    break;
+	}
+      else
+        {
+          /* Slide from the bottom.  */
+          dest->elems[id + delta] = dest->elems[id];
+	  if (! REG_VALID_INDEX (--id))
+	    {
+	      /* Copy remaining SRC elements.  */
+	      memcpy (dest->elems, dest->elems + sbase,
+	              delta * sizeof (Idx));
+	      break;
+	    }
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+   SET should not already have ELEM.
+   Return true if successful.  */
+
+static bool
+internal_function
+re_node_set_insert (re_node_set *set, Idx elem)
+{
+  Idx idx;
+  /* In case the set is empty.  */
+  if (set->alloc == 0)
+    return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1);
+
+  if (BE (set->nelem, 0) == 0)
+    {
+      /* We already guaranteed above that set->alloc != 0.  */
+      set->elems[0] = elem;
+      ++set->nelem;
+      return true;
+    }
+
+  /* Realloc if we need.  */
+  if (set->alloc == set->nelem)
+    {
+      Idx *new_elems;
+      set->alloc = set->alloc * 2;
+      new_elems = re_realloc (set->elems, Idx, set->alloc);
+      if (BE (new_elems == NULL, 0))
+	return false;
+      set->elems = new_elems;
+    }
+
+  /* Move the elements which follows the new element.  Test the
+     first element separately to skip a check in the inner loop.  */
+  if (elem < set->elems[0])
+    {
+      idx = 0;
+      for (idx = set->nelem; idx > 0; idx--)
+        set->elems[idx] = set->elems[idx - 1];
+    }
+  else
+    {
+      for (idx = set->nelem; set->elems[idx - 1] > elem; idx--)
+        set->elems[idx] = set->elems[idx - 1];
+    }
+
+  /* Insert the new element.  */
+  set->elems[idx] = elem;
+  ++set->nelem;
+  return true;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+   SET should not already have any element greater than or equal to ELEM.
+   Return true if successful.  */
+
+static bool
+internal_function
+re_node_set_insert_last (re_node_set *set, Idx elem)
+{
+  /* Realloc if we need.  */
+  if (set->alloc == set->nelem)
+    {
+      Idx *new_elems;
+      set->alloc = (set->alloc + 1) * 2;
+      new_elems = re_realloc (set->elems, Idx, set->alloc);
+      if (BE (new_elems == NULL, 0))
+	return false;
+      set->elems = new_elems;
+    }
+
+  /* Insert the new element.  */
+  set->elems[set->nelem++] = elem;
+  return true;
+}
+
+/* Compare two node sets SET1 and SET2.
+   Return true if SET1 and SET2 are equivalent.  */
+
+static bool
+internal_function __attribute ((pure))
+re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
+{
+  Idx i;
+  if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem)
+    return false;
+  for (i = set1->nelem ; REG_VALID_INDEX (--i) ; )
+    if (set1->elems[i] != set2->elems[i])
+      return false;
+  return true;
+}
+
+/* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise.  */
+
+static Idx
+internal_function __attribute ((pure))
+re_node_set_contains (const re_node_set *set, Idx elem)
+{
+  __re_size_t idx, right, mid;
+  if (! REG_VALID_NONZERO_INDEX (set->nelem))
+    return 0;
+
+  /* Binary search the element.  */
+  idx = 0;
+  right = set->nelem - 1;
+  while (idx < right)
+    {
+      mid = (idx + right) / 2;
+      if (set->elems[mid] < elem)
+	idx = mid + 1;
+      else
+	right = mid;
+    }
+  return set->elems[idx] == elem ? idx + 1 : 0;
+}
+
+static void
+internal_function
+re_node_set_remove_at (re_node_set *set, Idx idx)
+{
+  if (idx < 0 || idx >= set->nelem)
+    return;
+  --set->nelem;
+  for (; idx < set->nelem; idx++)
+    set->elems[idx] = set->elems[idx + 1];
+}
+
+
+/* Add the token TOKEN to dfa->nodes, and return the index of the token.
+   Or return REG_MISSING if an error occurred.  */
+
+static Idx
+internal_function
+re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
+{
+  if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0))
+    {
+      size_t new_nodes_alloc = dfa->nodes_alloc * 2;
+      Idx *new_nexts, *new_indices;
+      re_node_set *new_edests, *new_eclosures;
+      re_token_t *new_nodes;
+      size_t max_object_size =
+	MAX (sizeof (re_token_t),
+	     MAX (sizeof (re_node_set),
+		  sizeof (Idx)));
+
+      /* Avoid overflows.  */
+      if (BE (SIZE_MAX / 2 / max_object_size < dfa->nodes_alloc, 0))
+	return REG_MISSING;
+
+      new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
+      if (BE (new_nodes == NULL, 0))
+	return REG_MISSING;
+      dfa->nodes = new_nodes;
+      new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
+      new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
+      new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
+      new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
+      if (BE (new_nexts == NULL || new_indices == NULL
+	      || new_edests == NULL || new_eclosures == NULL, 0))
+	return REG_MISSING;
+      dfa->nexts = new_nexts;
+      dfa->org_indices = new_indices;
+      dfa->edests = new_edests;
+      dfa->eclosures = new_eclosures;
+      dfa->nodes_alloc = new_nodes_alloc;
+    }
+  dfa->nodes[dfa->nodes_len] = token;
+  dfa->nodes[dfa->nodes_len].constraint = 0;
+#ifdef RE_ENABLE_I18N
+  {
+  int type = token.type;
+  dfa->nodes[dfa->nodes_len].accept_mb =
+    (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET;
+  }
+#endif
+  dfa->nexts[dfa->nodes_len] = REG_MISSING;
+  re_node_set_init_empty (dfa->edests + dfa->nodes_len);
+  re_node_set_init_empty (dfa->eclosures + dfa->nodes_len);
+  return dfa->nodes_len++;
+}
+
+static _inline re_hashval_t
+internal_function
+ calc_state_hash (const re_node_set *nodes, unsigned int context)
+{
+  re_hashval_t hash = nodes->nelem + context;
+  Idx i;
+  for (i = 0 ; i < nodes->nelem ; i++)
+    hash += nodes->elems[i];
+  return hash;
+}
+
+/* Search for the state whose node_set is equivalent to NODES.
+   Return the pointer to the state, if we found it in the DFA.
+   Otherwise create the new one and return it.  In case of an error
+   return NULL and set the error code in ERR.
+   Note: - We assume NULL as the invalid state, then it is possible that
+	   return value is NULL and ERR is REG_NOERROR.
+	 - We never return non-NULL value in case of any errors, it is for
+	   optimization.  */
+
+static re_dfastate_t *
+internal_function
+re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
+		  const re_node_set *nodes)
+{
+  re_hashval_t hash;
+  re_dfastate_t *new_state;
+  struct re_state_table_entry *spot;
+  Idx i;
+#ifdef lint
+  /* Suppress bogus uninitialized-variable warnings.  */
+  *err = REG_NOERROR;
+#endif
+  if (BE (nodes->nelem == 0, 0))
+    {
+      *err = REG_NOERROR;
+      return NULL;
+    }
+  hash = calc_state_hash (nodes, 0);
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+  for (i = 0 ; i < spot->num ; i++)
+    {
+      re_dfastate_t *state = spot->array[i];
+      if (hash != state->hash)
+	continue;
+      if (re_node_set_compare (&state->nodes, nodes))
+	return state;
+    }
+
+  /* There are no appropriate state in the dfa, create the new one.  */
+  new_state = create_ci_newstate (dfa, nodes, hash);
+  if (BE (new_state == NULL, 0))
+    *err = REG_ESPACE;
+
+  return new_state;
+}
+
+/* Search for the state whose node_set is equivalent to NODES and
+   whose context is equivalent to CONTEXT.
+   Return the pointer to the state, if we found it in the DFA.
+   Otherwise create the new one and return it.  In case of an error
+   return NULL and set the error code in ERR.
+   Note: - We assume NULL as the invalid state, then it is possible that
+	   return value is NULL and ERR is REG_NOERROR.
+	 - We never return non-NULL value in case of any errors, it is for
+	   optimization.  */
+
+static re_dfastate_t *
+internal_function
+re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
+			  const re_node_set *nodes, unsigned int context)
+{
+  re_hashval_t hash;
+  re_dfastate_t *new_state;
+  struct re_state_table_entry *spot;
+  Idx i;
+#ifdef lint
+  /* Suppress bogus uninitialized-variable warnings.  */
+  *err = REG_NOERROR;
+#endif
+  if (nodes->nelem == 0)
+    {
+      *err = REG_NOERROR;
+      return NULL;
+    }
+  hash = calc_state_hash (nodes, context);
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+  for (i = 0 ; i < spot->num ; i++)
+    {
+      re_dfastate_t *state = spot->array[i];
+      if (state->hash == hash
+	  && state->context == context
+	  && re_node_set_compare (state->entrance_nodes, nodes))
+	return state;
+    }
+  /* There are no appropriate state in `dfa', create the new one.  */
+  new_state = create_cd_newstate (dfa, nodes, context, hash);
+  if (BE (new_state == NULL, 0))
+    *err = REG_ESPACE;
+
+  return new_state;
+}
+
+/* Finish initialization of the new state NEWSTATE, and using its hash value
+   HASH put in the appropriate bucket of DFA's state table.  Return value
+   indicates the error code if failed.  */
+
+static reg_errcode_t
+register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
+		re_hashval_t hash)
+{
+  struct re_state_table_entry *spot;
+  reg_errcode_t err;
+  Idx i;
+
+  newstate->hash = hash;
+  err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem);
+  if (BE (err != REG_NOERROR, 0))
+    return REG_ESPACE;
+  for (i = 0; i < newstate->nodes.nelem; i++)
+    {
+      Idx elem = newstate->nodes.elems[i];
+      if (!IS_EPSILON_NODE (dfa->nodes[elem].type))
+	if (BE (! re_node_set_insert_last (&newstate->non_eps_nodes, elem), 0))
+	  return REG_ESPACE;
+    }
+
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+  if (BE (spot->alloc <= spot->num, 0))
+    {
+      Idx new_alloc = 2 * spot->num + 2;
+      re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *,
+					      new_alloc);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      spot->array = new_array;
+      spot->alloc = new_alloc;
+    }
+  spot->array[spot->num++] = newstate;
+  return REG_NOERROR;
+}
+
+static void
+free_state (re_dfastate_t *state)
+{
+  re_node_set_free (&state->non_eps_nodes);
+  re_node_set_free (&state->inveclosure);
+  if (state->entrance_nodes != &state->nodes)
+    {
+      re_node_set_free (state->entrance_nodes);
+      re_free (state->entrance_nodes);
+    }
+  re_node_set_free (&state->nodes);
+  re_free (state->word_trtable);
+  re_free (state->trtable);
+  re_free (state);
+}
+
+/* Create the new state which is independ of contexts.
+   Return the new state if succeeded, otherwise return NULL.  */
+
+static re_dfastate_t *
+internal_function
+create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+		    re_hashval_t hash)
+{
+  Idx i;
+  reg_errcode_t err;
+  re_dfastate_t *newstate;
+
+  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  if (BE (newstate == NULL, 0))
+    return NULL;
+  err = re_node_set_init_copy (&newstate->nodes, nodes);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      re_free (newstate);
+      return NULL;
+    }
+
+  newstate->entrance_nodes = &newstate->nodes;
+  for (i = 0 ; i < nodes->nelem ; i++)
+    {
+      re_token_t *node = dfa->nodes + nodes->elems[i];
+      re_token_type_t type = node->type;
+      if (type == CHARACTER && !node->constraint)
+	continue;
+#ifdef RE_ENABLE_I18N
+      newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+      /* If the state has the halt node, the state is a halt state.  */
+      if (type == END_OF_RE)
+	newstate->halt = 1;
+      else if (type == OP_BACK_REF)
+	newstate->has_backref = 1;
+      else if (type == ANCHOR || node->constraint)
+	newstate->has_constraint = 1;
+    }
+  err = register_state (dfa, newstate, hash);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_state (newstate);
+      newstate = NULL;
+    }
+  return newstate;
+}
+
+/* Create the new state which is depend on the context CONTEXT.
+   Return the new state if succeeded, otherwise return NULL.  */
+
+static re_dfastate_t *
+internal_function
+create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+		    unsigned int context, re_hashval_t hash)
+{
+  Idx i, nctx_nodes = 0;
+  reg_errcode_t err;
+  re_dfastate_t *newstate;
+
+  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  if (BE (newstate == NULL, 0))
+    return NULL;
+  err = re_node_set_init_copy (&newstate->nodes, nodes);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      re_free (newstate);
+      return NULL;
+    }
+
+  newstate->context = context;
+  newstate->entrance_nodes = &newstate->nodes;
+
+  for (i = 0 ; i < nodes->nelem ; i++)
+    {
+      unsigned int constraint = 0;
+      re_token_t *node = dfa->nodes + nodes->elems[i];
+      re_token_type_t type = node->type;
+      if (node->constraint)
+	constraint = node->constraint;
+
+      if (type == CHARACTER && !constraint)
+	continue;
+#ifdef RE_ENABLE_I18N
+      newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+      /* If the state has the halt node, the state is a halt state.  */
+      if (type == END_OF_RE)
+	newstate->halt = 1;
+      else if (type == OP_BACK_REF)
+	newstate->has_backref = 1;
+      else if (type == ANCHOR)
+	constraint = node->opr.ctx_type;
+
+      if (constraint)
+	{
+	  if (newstate->entrance_nodes == &newstate->nodes)
+	    {
+	      newstate->entrance_nodes = re_malloc (re_node_set, 1);
+	      if (BE (newstate->entrance_nodes == NULL, 0))
+		{
+		  free_state (newstate);
+		  return NULL;
+		}
+	      re_node_set_init_copy (newstate->entrance_nodes, nodes);
+	      nctx_nodes = 0;
+	      newstate->has_constraint = 1;
+	    }
+
+	  if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context))
+	    {
+	      re_node_set_remove_at (&newstate->nodes, i - nctx_nodes);
+	      ++nctx_nodes;
+	    }
+	}
+    }
+  err = register_state (dfa, newstate, hash);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_state (newstate);
+      newstate = NULL;
+    }
+  return  newstate;
+}
diff --git a/win32/gl/regex_internal.h b/win32/gl/regex_internal.h
new file mode 100644
index 0000000..ae1e709
--- /dev/null
+++ b/win32/gl/regex_internal.h
@@ -0,0 +1,857 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu at yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _REGEX_INTERNAL_H
+#define _REGEX_INTERNAL_H 1
+
+#include <assert.h>
+#include <ctype.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef _LIBC
+# include <langinfo.h>
+#else
+# include "localcharset.h"
+#endif
+#if defined HAVE_LOCALE_H || defined _LIBC
+# include <locale.h>
+#endif
+
+#include <wchar.h>
+#include <wctype.h>
+#include <stdint.h>
+#if defined _LIBC
+# include <bits/libc-lock.h>
+#else
+# define __libc_lock_init(NAME) do { } while (0)
+# define __libc_lock_lock(NAME) do { } while (0)
+# define __libc_lock_unlock(NAME) do { } while (0)
+#endif
+
+/* In case that the system doesn't have isblank().  */
+#if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK))
+# define isblank(ch) ((ch) == ' ' || (ch) == '\t')
+#endif
+
+#ifdef _LIBC
+# ifndef _RE_DEFINE_LOCALE_FUNCTIONS
+#  define _RE_DEFINE_LOCALE_FUNCTIONS 1
+#   include <locale/localeinfo.h>
+#   include <locale/elem-hash.h>
+#   include <locale/coll-lookup.h>
+# endif
+#endif
+
+/* This is for other GNU distributions with internationalized messages.  */
+#if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+# include <libintl.h>
+# ifdef _LIBC
+#  undef gettext
+#  define gettext(msgid) \
+  INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
+# endif
+#else
+# define gettext(msgid) (msgid)
+#endif
+
+#ifndef gettext_noop
+/* This define is so xgettext can find the internationalizable
+   strings.  */
+# define gettext_noop(String) String
+#endif
+
+/* For loser systems without the definition.  */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
+# define RE_ENABLE_I18N
+#endif
+
+#if __GNUC__ >= 3
+# define BE(expr, val) __builtin_expect (expr, val)
+#else
+# define BE(expr, val) (expr)
+# ifdef _LIBC
+#  define _inline
+# endif
+#endif
+
+/* Number of ASCII characters.  */
+#define ASCII_CHARS 0x80
+
+/* Number of single byte characters.  */
+#define SBC_MAX (UCHAR_MAX + 1)
+
+#define COLL_ELEM_LEN_MAX 8
+
+/* The character which represents newline.  */
+#define NEWLINE_CHAR '\n'
+#define WIDE_NEWLINE_CHAR L'\n'
+
+/* Rename to standard API for using out of glibc.  */
+#ifndef _LIBC
+# define __wctype wctype
+# define __iswctype iswctype
+# define __btowc btowc
+# define __wcrtomb wcrtomb
+# define __regfree regfree
+# define attribute_hidden
+#endif /* not _LIBC */
+
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+# define __attribute(arg) __attribute__ (arg)
+#else
+# define __attribute(arg)
+#endif
+
+typedef __re_idx_t Idx;
+
+/* Special return value for failure to match.  */
+#define REG_MISSING ((Idx) -1)
+
+/* Special return value for internal error.  */
+#define REG_ERROR ((Idx) -2)
+
+/* Test whether N is a valid index, and is not one of the above.  */
+#ifdef _REGEX_LARGE_OFFSETS
+# define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR)
+#else
+# define REG_VALID_INDEX(n) (0 <= (n))
+#endif
+
+/* Test whether N is a valid nonzero index.  */
+#ifdef _REGEX_LARGE_OFFSETS
+# define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1))
+#else
+# define REG_VALID_NONZERO_INDEX(n) (0 < (n))
+#endif
+
+/* A hash value, suitable for computing hash tables.  */
+typedef __re_size_t re_hashval_t;
+
+/* An integer used to represent a set of bits.  It must be unsigned,
+   and must be at least as wide as unsigned int.  */
+typedef unsigned long int bitset_word_t;
+/* All bits set in a bitset_word_t.  */
+#define BITSET_WORD_MAX ULONG_MAX
+
+/* Number of bits in a bitset_word_t.  For portability to hosts with
+   padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)';
+   instead, deduce it directly from BITSET_WORD_MAX.  Avoid
+   greater-than-32-bit integers and unconditional shifts by more than
+   31 bits, as they're not portable.  */
+#if BITSET_WORD_MAX == 0xffffffff
+# define BITSET_WORD_BITS 32
+#elif BITSET_WORD_MAX >> 31 >> 5 == 1
+# define BITSET_WORD_BITS 36
+#elif BITSET_WORD_MAX >> 31 >> 16 == 1
+# define BITSET_WORD_BITS 48
+#elif BITSET_WORD_MAX >> 31 >> 28 == 1
+# define BITSET_WORD_BITS 60
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1
+# define BITSET_WORD_BITS 64
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1
+# define BITSET_WORD_BITS 72
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1
+# define BITSET_WORD_BITS 128
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1
+# define BITSET_WORD_BITS 256
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1
+# define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */
+# if BITSET_WORD_BITS <= SBC_MAX
+#  error "Invalid SBC_MAX"
+# endif
+#elif BITSET_WORD_MAX == (0xffffffff + 2) * 0xffffffff
+/* Work around a bug in 64-bit PGC (before version 6.1-2), where the
+   preprocessor mishandles large unsigned values as if they were signed.  */
+# define BITSET_WORD_BITS 64
+#else
+# error "Add case for new bitset_word_t size"
+#endif
+
+/* Number of bitset_word_t values in a bitset_t.  */
+#define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS)
+
+typedef bitset_word_t bitset_t[BITSET_WORDS];
+typedef bitset_word_t *re_bitset_ptr_t;
+typedef const bitset_word_t *re_const_bitset_ptr_t;
+
+#define PREV_WORD_CONSTRAINT 0x0001
+#define PREV_NOTWORD_CONSTRAINT 0x0002
+#define NEXT_WORD_CONSTRAINT 0x0004
+#define NEXT_NOTWORD_CONSTRAINT 0x0008
+#define PREV_NEWLINE_CONSTRAINT 0x0010
+#define NEXT_NEWLINE_CONSTRAINT 0x0020
+#define PREV_BEGBUF_CONSTRAINT 0x0040
+#define NEXT_ENDBUF_CONSTRAINT 0x0080
+#define WORD_DELIM_CONSTRAINT 0x0100
+#define NOT_WORD_DELIM_CONSTRAINT 0x0200
+
+typedef enum
+{
+  INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+  WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+  WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+  INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+  LINE_FIRST = PREV_NEWLINE_CONSTRAINT,
+  LINE_LAST = NEXT_NEWLINE_CONSTRAINT,
+  BUF_FIRST = PREV_BEGBUF_CONSTRAINT,
+  BUF_LAST = NEXT_ENDBUF_CONSTRAINT,
+  WORD_DELIM = WORD_DELIM_CONSTRAINT,
+  NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT
+} re_context_type;
+
+typedef struct
+{
+  Idx alloc;
+  Idx nelem;
+  Idx *elems;
+} re_node_set;
+
+typedef enum
+{
+  NON_TYPE = 0,
+
+  /* Node type, These are used by token, node, tree.  */
+  CHARACTER = 1,
+  END_OF_RE = 2,
+  SIMPLE_BRACKET = 3,
+  OP_BACK_REF = 4,
+  OP_PERIOD = 5,
+#ifdef RE_ENABLE_I18N
+  COMPLEX_BRACKET = 6,
+  OP_UTF8_PERIOD = 7,
+#endif /* RE_ENABLE_I18N */
+
+  /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used
+     when the debugger shows values of this enum type.  */
+#define EPSILON_BIT 8
+  OP_OPEN_SUBEXP = EPSILON_BIT | 0,
+  OP_CLOSE_SUBEXP = EPSILON_BIT | 1,
+  OP_ALT = EPSILON_BIT | 2,
+  OP_DUP_ASTERISK = EPSILON_BIT | 3,
+  ANCHOR = EPSILON_BIT | 4,
+
+  /* Tree type, these are used only by tree. */
+  CONCAT = 16,
+  SUBEXP = 17,
+
+  /* Token type, these are used only by token.  */
+  OP_DUP_PLUS = 18,
+  OP_DUP_QUESTION,
+  OP_OPEN_BRACKET,
+  OP_CLOSE_BRACKET,
+  OP_CHARSET_RANGE,
+  OP_OPEN_DUP_NUM,
+  OP_CLOSE_DUP_NUM,
+  OP_NON_MATCH_LIST,
+  OP_OPEN_COLL_ELEM,
+  OP_CLOSE_COLL_ELEM,
+  OP_OPEN_EQUIV_CLASS,
+  OP_CLOSE_EQUIV_CLASS,
+  OP_OPEN_CHAR_CLASS,
+  OP_CLOSE_CHAR_CLASS,
+  OP_WORD,
+  OP_NOTWORD,
+  OP_SPACE,
+  OP_NOTSPACE,
+  BACK_SLASH
+
+} re_token_type_t;
+
+#ifdef RE_ENABLE_I18N
+typedef struct
+{
+  /* Multibyte characters.  */
+  wchar_t *mbchars;
+
+  /* Collating symbols.  */
+# ifdef _LIBC
+  int32_t *coll_syms;
+# endif
+
+  /* Equivalence classes. */
+# ifdef _LIBC
+  int32_t *equiv_classes;
+# endif
+
+  /* Range expressions. */
+# ifdef _LIBC
+  uint32_t *range_starts;
+  uint32_t *range_ends;
+# else /* not _LIBC */
+  wchar_t *range_starts;
+  wchar_t *range_ends;
+# endif /* not _LIBC */
+
+  /* Character classes. */
+  wctype_t *char_classes;
+
+  /* If this character set is the non-matching list.  */
+  unsigned int non_match : 1;
+
+  /* # of multibyte characters.  */
+  Idx nmbchars;
+
+  /* # of collating symbols.  */
+  Idx ncoll_syms;
+
+  /* # of equivalence classes. */
+  Idx nequiv_classes;
+
+  /* # of range expressions. */
+  Idx nranges;
+
+  /* # of character classes. */
+  Idx nchar_classes;
+} re_charset_t;
+#endif /* RE_ENABLE_I18N */
+
+typedef struct
+{
+  union
+  {
+    unsigned char c;		/* for CHARACTER */
+    re_bitset_ptr_t sbcset;	/* for SIMPLE_BRACKET */
+#ifdef RE_ENABLE_I18N
+    re_charset_t *mbcset;	/* for COMPLEX_BRACKET */
+#endif /* RE_ENABLE_I18N */
+    Idx idx;			/* for BACK_REF */
+    re_context_type ctx_type;	/* for ANCHOR */
+  } opr;
+#if __GNUC__ >= 2 && !__STRICT_ANSI__
+  re_token_type_t type : 8;
+#else
+  re_token_type_t type;
+#endif
+  unsigned int constraint : 10;	/* context constraint */
+  unsigned int duplicated : 1;
+  unsigned int opt_subexp : 1;
+#ifdef RE_ENABLE_I18N
+  unsigned int accept_mb : 1;
+  /* These 2 bits can be moved into the union if needed (e.g. if running out
+     of bits; move opr.c to opr.c.c and move the flags to opr.c.flags).  */
+  unsigned int mb_partial : 1;
+#endif
+  unsigned int word_char : 1;
+} re_token_t;
+
+#define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT)
+
+struct re_string_t
+{
+  /* Indicate the raw buffer which is the original string passed as an
+     argument of regexec(), re_search(), etc..  */
+  const unsigned char *raw_mbs;
+  /* Store the multibyte string.  In case of "case insensitive mode" like
+     REG_ICASE, upper cases of the string are stored, otherwise MBS points
+     the same address that RAW_MBS points.  */
+  unsigned char *mbs;
+#ifdef RE_ENABLE_I18N
+  /* Store the wide character string which is corresponding to MBS.  */
+  wint_t *wcs;
+  Idx *offsets;
+  mbstate_t cur_state;
+#endif
+  /* Index in RAW_MBS.  Each character mbs[i] corresponds to
+     raw_mbs[raw_mbs_idx + i].  */
+  Idx raw_mbs_idx;
+  /* The length of the valid characters in the buffers.  */
+  Idx valid_len;
+  /* The corresponding number of bytes in raw_mbs array.  */
+  Idx valid_raw_len;
+  /* The length of the buffers MBS and WCS.  */
+  Idx bufs_len;
+  /* The index in MBS, which is updated by re_string_fetch_byte.  */
+  Idx cur_idx;
+  /* length of RAW_MBS array.  */
+  Idx raw_len;
+  /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN.  */
+  Idx len;
+  /* End of the buffer may be shorter than its length in the cases such
+     as re_match_2, re_search_2.  Then, we use STOP for end of the buffer
+     instead of LEN.  */
+  Idx raw_stop;
+  /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS.  */
+  Idx stop;
+
+  /* The context of mbs[0].  We store the context independently, since
+     the context of mbs[0] may be different from raw_mbs[0], which is
+     the beginning of the input string.  */
+  unsigned int tip_context;
+  /* The translation passed as a part of an argument of re_compile_pattern.  */
+  RE_TRANSLATE_TYPE trans;
+  /* Copy of re_dfa_t's word_char.  */
+  re_const_bitset_ptr_t word_char;
+  /* true if REG_ICASE.  */
+  unsigned char icase;
+  unsigned char is_utf8;
+  unsigned char map_notascii;
+  unsigned char mbs_allocated;
+  unsigned char offsets_needed;
+  unsigned char newline_anchor;
+  unsigned char word_ops_used;
+  int mb_cur_max;
+};
+typedef struct re_string_t re_string_t;
+
+
+struct re_dfa_t;
+typedef struct re_dfa_t re_dfa_t;
+
+#ifndef _LIBC
+# ifdef __i386__
+#  define internal_function   __attribute ((regparm (3), stdcall))
+# else
+#  define internal_function
+# endif
+#endif
+
+static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
+						Idx new_buf_len)
+     internal_function;
+#ifdef RE_ENABLE_I18N
+static void build_wcs_buffer (re_string_t *pstr) internal_function;
+static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static void build_upper_buffer (re_string_t *pstr) internal_function;
+static void re_string_translate_buffer (re_string_t *pstr) internal_function;
+static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
+					  int eflags)
+     internal_function __attribute ((pure));
+#define re_string_peek_byte(pstr, offset) \
+  ((pstr)->mbs[(pstr)->cur_idx + offset])
+#define re_string_fetch_byte(pstr) \
+  ((pstr)->mbs[(pstr)->cur_idx++])
+#define re_string_first_byte(pstr, idx) \
+  ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF)
+#define re_string_is_single_byte_char(pstr, idx) \
+  ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \
+				|| (pstr)->wcs[(idx) + 1] != WEOF))
+#define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx)
+#define re_string_cur_idx(pstr) ((pstr)->cur_idx)
+#define re_string_get_buffer(pstr) ((pstr)->mbs)
+#define re_string_length(pstr) ((pstr)->len)
+#define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx])
+#define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
+#define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
+
+#include <alloca.h>
+
+#ifndef _LIBC
+# if HAVE_ALLOCA
+/* The OS usually guarantees only one guard page at the bottom of the stack,
+   and a page size can be as small as 4096 bytes.  So we cannot safely
+   allocate anything larger than 4096 bytes.  Also care for the possibility
+   of a few compiler-allocated temporary stack slots.  */
+#  define __libc_use_alloca(n) ((n) < 4032)
+# else
+/* alloca is implemented with malloc, so just use malloc.  */
+#  define __libc_use_alloca(n) 0
+# endif
+#endif
+
+#ifndef MAX
+# define MAX(a,b) ((a) < (b) ? (b) : (a))
+#endif
+
+#define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t)))
+#define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t)))
+#define re_free(p) free (p)
+
+struct bin_tree_t
+{
+  struct bin_tree_t *parent;
+  struct bin_tree_t *left;
+  struct bin_tree_t *right;
+  struct bin_tree_t *first;
+  struct bin_tree_t *next;
+
+  re_token_t token;
+
+  /* `node_idx' is the index in dfa->nodes, if `type' == 0.
+     Otherwise `type' indicate the type of this node.  */
+  Idx node_idx;
+};
+typedef struct bin_tree_t bin_tree_t;
+
+#define BIN_TREE_STORAGE_SIZE \
+  ((1024 - sizeof (void *)) / sizeof (bin_tree_t))
+
+struct bin_tree_storage_t
+{
+  struct bin_tree_storage_t *next;
+  bin_tree_t data[BIN_TREE_STORAGE_SIZE];
+};
+typedef struct bin_tree_storage_t bin_tree_storage_t;
+
+#define CONTEXT_WORD 1
+#define CONTEXT_NEWLINE (CONTEXT_WORD << 1)
+#define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1)
+#define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1)
+
+#define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD)
+#define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE)
+#define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF)
+#define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF)
+#define IS_ORDINARY_CONTEXT(c) ((c) == 0)
+
+#define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_')
+#define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR)
+#define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_')
+#define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR)
+
+#define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \
+ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+  || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+  || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\
+  || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context)))
+
+#define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \
+ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+  || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+  || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \
+  || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context)))
+
+struct re_dfastate_t
+{
+  re_hashval_t hash;
+  re_node_set nodes;
+  re_node_set non_eps_nodes;
+  re_node_set inveclosure;
+  re_node_set *entrance_nodes;
+  struct re_dfastate_t **trtable, **word_trtable;
+  unsigned int context : 4;
+  unsigned int halt : 1;
+  /* If this state can accept `multi byte'.
+     Note that we refer to multibyte characters, and multi character
+     collating elements as `multi byte'.  */
+  unsigned int accept_mb : 1;
+  /* If this state has backreference node(s).  */
+  unsigned int has_backref : 1;
+  unsigned int has_constraint : 1;
+};
+typedef struct re_dfastate_t re_dfastate_t;
+
+struct re_state_table_entry
+{
+  Idx num;
+  Idx alloc;
+  re_dfastate_t **array;
+};
+
+/* Array type used in re_sub_match_last_t and re_sub_match_top_t.  */
+
+typedef struct
+{
+  Idx next_idx;
+  Idx alloc;
+  re_dfastate_t **array;
+} state_array_t;
+
+/* Store information about the node NODE whose type is OP_CLOSE_SUBEXP.  */
+
+typedef struct
+{
+  Idx node;
+  Idx str_idx; /* The position NODE match at.  */
+  state_array_t path;
+} re_sub_match_last_t;
+
+/* Store information about the node NODE whose type is OP_OPEN_SUBEXP.
+   And information about the node, whose type is OP_CLOSE_SUBEXP,
+   corresponding to NODE is stored in LASTS.  */
+
+typedef struct
+{
+  Idx str_idx;
+  Idx node;
+  state_array_t *path;
+  Idx alasts; /* Allocation size of LASTS.  */
+  Idx nlasts; /* The number of LASTS.  */
+  re_sub_match_last_t **lasts;
+} re_sub_match_top_t;
+
+struct re_backref_cache_entry
+{
+  Idx node;
+  Idx str_idx;
+  Idx subexp_from;
+  Idx subexp_to;
+  char more;
+  char unused;
+  unsigned short int eps_reachable_subexps_map;
+};
+
+typedef struct
+{
+  /* The string object corresponding to the input string.  */
+  re_string_t input;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+  const re_dfa_t *const dfa;
+#else
+  const re_dfa_t *dfa;
+#endif
+  /* EFLAGS of the argument of regexec.  */
+  int eflags;
+  /* Where the matching ends.  */
+  Idx match_last;
+  Idx last_node;
+  /* The state log used by the matcher.  */
+  re_dfastate_t **state_log;
+  Idx state_log_top;
+  /* Back reference cache.  */
+  Idx nbkref_ents;
+  Idx abkref_ents;
+  struct re_backref_cache_entry *bkref_ents;
+  int max_mb_elem_len;
+  Idx nsub_tops;
+  Idx asub_tops;
+  re_sub_match_top_t **sub_tops;
+} re_match_context_t;
+
+typedef struct
+{
+  re_dfastate_t **sifted_states;
+  re_dfastate_t **limited_states;
+  Idx last_node;
+  Idx last_str_idx;
+  re_node_set limits;
+} re_sift_context_t;
+
+struct re_fail_stack_ent_t
+{
+  Idx idx;
+  Idx node;
+  regmatch_t *regs;
+  re_node_set eps_via_nodes;
+};
+
+struct re_fail_stack_t
+{
+  Idx num;
+  Idx alloc;
+  struct re_fail_stack_ent_t *stack;
+};
+
+struct re_dfa_t
+{
+  re_token_t *nodes;
+  size_t nodes_alloc;
+  size_t nodes_len;
+  Idx *nexts;
+  Idx *org_indices;
+  re_node_set *edests;
+  re_node_set *eclosures;
+  re_node_set *inveclosures;
+  struct re_state_table_entry *state_table;
+  re_dfastate_t *init_state;
+  re_dfastate_t *init_state_word;
+  re_dfastate_t *init_state_nl;
+  re_dfastate_t *init_state_begbuf;
+  bin_tree_t *str_tree;
+  bin_tree_storage_t *str_tree_storage;
+  re_bitset_ptr_t sb_char;
+  int str_tree_storage_idx;
+
+  /* number of subexpressions `re_nsub' is in regex_t.  */
+  re_hashval_t state_hash_mask;
+  Idx init_node;
+  Idx nbackref; /* The number of backreference in this dfa.  */
+
+  /* Bitmap expressing which backreference is used.  */
+  bitset_word_t used_bkref_map;
+  bitset_word_t completed_bkref_map;
+
+  unsigned int has_plural_match : 1;
+  /* If this dfa has "multibyte node", which is a backreference or
+     a node which can accept multibyte character or multi character
+     collating element.  */
+  unsigned int has_mb_node : 1;
+  unsigned int is_utf8 : 1;
+  unsigned int map_notascii : 1;
+  unsigned int word_ops_used : 1;
+  int mb_cur_max;
+  bitset_t word_char;
+  reg_syntax_t syntax;
+  Idx *subexp_map;
+#ifdef DEBUG
+  char* re_str;
+#endif
+#ifdef _LIBC
+  __libc_lock_define (, lock)
+#endif
+};
+
+#define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
+#define re_node_set_remove(set,id) \
+  (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1))
+#define re_node_set_empty(p) ((p)->nelem = 0)
+#define re_node_set_free(set) re_free ((set)->elems)
+
+
+typedef enum
+{
+  SB_CHAR,
+  MB_CHAR,
+  EQUIV_CLASS,
+  COLL_SYM,
+  CHAR_CLASS
+} bracket_elem_type;
+
+typedef struct
+{
+  bracket_elem_type type;
+  union
+  {
+    unsigned char ch;
+    unsigned char *name;
+    wchar_t wch;
+  } opr;
+} bracket_elem_t;
+
+
+/* Inline functions for bitset_t operation.  */
+
+static _inline void
+bitset_set (bitset_t set, Idx i)
+{
+  set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS;
+}
+
+static _inline void
+bitset_clear (bitset_t set, Idx i)
+{
+  set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS);
+}
+
+static _inline bool
+bitset_contain (const bitset_t set, Idx i)
+{
+  return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1;
+}
+
+static _inline void
+bitset_empty (bitset_t set)
+{
+  memset (set, '\0', sizeof (bitset_t));
+}
+
+static _inline void
+bitset_set_all (bitset_t set)
+{
+  memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS));
+  if (SBC_MAX % BITSET_WORD_BITS != 0)
+    set[BITSET_WORDS - 1] =
+      ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1;
+}
+
+static _inline void
+bitset_copy (bitset_t dest, const bitset_t src)
+{
+  memcpy (dest, src, sizeof (bitset_t));
+}
+
+static _inline void
+bitset_not (bitset_t set)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i)
+    set[bitset_i] = ~set[bitset_i];
+  if (SBC_MAX % BITSET_WORD_BITS != 0)
+    set[BITSET_WORDS - 1] =
+      ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1)
+       & ~set[BITSET_WORDS - 1]);
+}
+
+static _inline void
+bitset_merge (bitset_t dest, const bitset_t src)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    dest[bitset_i] |= src[bitset_i];
+}
+
+static _inline void
+bitset_mask (bitset_t dest, const bitset_t src)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    dest[bitset_i] &= src[bitset_i];
+}
+
+#ifdef RE_ENABLE_I18N
+/* Inline functions for re_string.  */
+static _inline int
+internal_function __attribute ((pure))
+re_string_char_size_at (const re_string_t *pstr, Idx idx)
+{
+  int byte_idx;
+  if (pstr->mb_cur_max == 1)
+    return 1;
+  for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx)
+    if (pstr->wcs[idx + byte_idx] != WEOF)
+      break;
+  return byte_idx;
+}
+
+static _inline wint_t
+internal_function __attribute ((pure))
+re_string_wchar_at (const re_string_t *pstr, Idx idx)
+{
+  if (pstr->mb_cur_max == 1)
+    return (wint_t) pstr->mbs[idx];
+  return (wint_t) pstr->wcs[idx];
+}
+
+static int
+internal_function __attribute ((pure))
+re_string_elem_size_at (const re_string_t *pstr, Idx idx)
+{
+# ifdef _LIBC
+  const unsigned char *p, *extra;
+  const int32_t *table, *indirect;
+  int32_t tmp;
+#  include <locale/weight.h>
+  uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+
+  if (nrules != 0)
+    {
+      table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+      extra = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+      indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						_NL_COLLATE_INDIRECTMB);
+      p = pstr->mbs + idx;
+      tmp = findidx (&p);
+      return p - pstr->mbs - idx;
+    }
+  else
+# endif /* _LIBC */
+    return 1;
+}
+#endif /* RE_ENABLE_I18N */
+
+#endif /*  _REGEX_INTERNAL_H */
diff --git a/win32/gl/regexec.c b/win32/gl/regexec.c
new file mode 100644
index 0000000..6e2bc36
--- /dev/null
+++ b/win32/gl/regexec.c
@@ -0,0 +1,2101 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
+   Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu at yamato.ibm.com>.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
+				     Idx n) internal_function;
+static void match_ctx_clean (re_match_context_t *mctx) internal_function;
+static void match_ctx_free (re_match_context_t *cache) internal_function;
+static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node,
+					  Idx str_idx, Idx from, Idx to)
+     internal_function;
+static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
+     internal_function;
+static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node,
+					   Idx str_idx) internal_function;
+static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop,
+						    Idx node, Idx str_idx)
+     internal_function;
+static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+			   re_dfastate_t **limited_sts, Idx last_node,
+			   Idx last_str_idx)
+     internal_function;
+static reg_errcode_t re_search_internal (const regex_t *preg,
+					 const char *string, Idx length,
+					 Idx start, Idx last_start, Idx stop,
+					 size_t nmatch, regmatch_t pmatch[],
+					 int eflags) internal_function;
+static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp,
+				  const char *string1, Idx length1,
+				  const char *string2, Idx length2,
+				  Idx start, regoff_t range,
+				  struct re_registers *regs,
+				  Idx stop, bool ret_len) internal_function;
+static regoff_t re_search_stub (struct re_pattern_buffer *bufp,
+				const char *string, Idx length, Idx start,
+				regoff_t range, Idx stop,
+				struct re_registers *regs,
+				bool ret_len) internal_function;
+static unsigned int re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
+				  Idx nregs, int regs_allocated)
+     internal_function;
+static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
+     internal_function;
+static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match,
+			   Idx *p_match_first) internal_function;
+static Idx check_halt_state_context (const re_match_context_t *mctx,
+				     const re_dfastate_t *state, Idx idx)
+     internal_function;
+static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+			 regmatch_t *prev_idx_match, Idx cur_node,
+			 Idx cur_idx, Idx nmatch) internal_function;
+static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs,
+				      Idx str_idx, Idx dest_node, Idx nregs,
+				      regmatch_t *regs,
+				      re_node_set *eps_via_nodes)
+     internal_function;
+static reg_errcode_t set_regs (const regex_t *preg,
+			       const re_match_context_t *mctx,
+			       size_t nmatch, regmatch_t *pmatch,
+			       bool fl_backtrack) internal_function;
+static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs)
+     internal_function;
+
+#ifdef RE_ENABLE_I18N
+static int sift_states_iter_mb (const re_match_context_t *mctx,
+				re_sift_context_t *sctx,
+				Idx node_idx, Idx str_idx, Idx max_str_idx)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t sift_states_backward (const re_match_context_t *mctx,
+					   re_sift_context_t *sctx)
+     internal_function;
+static reg_errcode_t build_sifted_states (const re_match_context_t *mctx,
+					  re_sift_context_t *sctx, Idx str_idx,
+					  re_node_set *cur_dest)
+     internal_function;
+static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx,
+					      re_sift_context_t *sctx,
+					      Idx str_idx,
+					      re_node_set *dest_nodes)
+     internal_function;
+static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa,
+					    re_node_set *dest_nodes,
+					    const re_node_set *candidates)
+     internal_function;
+static bool check_dst_limits (const re_match_context_t *mctx,
+			      const re_node_set *limits,
+			      Idx dst_node, Idx dst_idx, Idx src_node,
+			      Idx src_idx) internal_function;
+static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx,
+					int boundaries, Idx subexp_idx,
+					Idx from_node, Idx bkref_idx)
+     internal_function;
+static int check_dst_limits_calc_pos (const re_match_context_t *mctx,
+				      Idx limit, Idx subexp_idx,
+				      Idx node, Idx str_idx,
+				      Idx bkref_idx) internal_function;
+static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa,
+					  re_node_set *dest_nodes,
+					  const re_node_set *candidates,
+					  re_node_set *limits,
+					  struct re_backref_cache_entry *bkref_ents,
+					  Idx str_idx) internal_function;
+static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx,
+					re_sift_context_t *sctx,
+					Idx str_idx, const re_node_set *candidates)
+     internal_function;
+static reg_errcode_t merge_state_array (const re_dfa_t *dfa,
+					re_dfastate_t **dst,
+					re_dfastate_t **src, Idx num)
+     internal_function;
+static re_dfastate_t *find_recover_state (reg_errcode_t *err,
+					 re_match_context_t *mctx) internal_function;
+static re_dfastate_t *transit_state (reg_errcode_t *err,
+				     re_match_context_t *mctx,
+				     re_dfastate_t *state) internal_function;
+static re_dfastate_t *merge_state_with_log (reg_errcode_t *err,
+					    re_match_context_t *mctx,
+					    re_dfastate_t *next_state)
+     internal_function;
+static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx,
+						re_node_set *cur_nodes,
+						Idx str_idx) internal_function;
+#if 0
+static re_dfastate_t *transit_state_sb (reg_errcode_t *err,
+					re_match_context_t *mctx,
+					re_dfastate_t *pstate)
+     internal_function;
+#endif
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t transit_state_mb (re_match_context_t *mctx,
+				       re_dfastate_t *pstate)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t transit_state_bkref (re_match_context_t *mctx,
+					  const re_node_set *nodes)
+     internal_function;
+static reg_errcode_t get_subexp (re_match_context_t *mctx,
+				 Idx bkref_node, Idx bkref_str_idx)
+     internal_function;
+static reg_errcode_t get_subexp_sub (re_match_context_t *mctx,
+				     const re_sub_match_top_t *sub_top,
+				     re_sub_match_last_t *sub_last,
+				     Idx bkref_node, Idx bkref_str)
+     internal_function;
+static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+			     Idx subexp_idx, int type) internal_function;
+static reg_errcode_t check_arrival (re_match_context_t *mctx,
+				    state_array_t *path, Idx top_node,
+				    Idx top_str, Idx last_node, Idx last_str,
+				    int type) internal_function;
+static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx,
+						   Idx str_idx,
+						   re_node_set *cur_nodes,
+						   re_node_set *next_nodes)
+     internal_function;
+static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa,
+					       re_node_set *cur_nodes,
+					       Idx ex_subexp, int type)
+     internal_function;
+static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa,
+						   re_node_set *dst_nodes,
+						   Idx target, Idx ex_subexp,
+						   int type) internal_function;
+static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx,
+					 re_node_set *cur_nodes, Idx cur_str,
+					 Idx subexp_num, int type)
+     internal_function;
+static bool build_trtable (const re_dfa_t *dfa,
+			   re_dfastate_t *state) internal_function;
+#ifdef RE_ENABLE_I18N
+static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
+				    const re_string_t *input, Idx idx)
+     internal_function;
+# ifdef _LIBC
+static unsigned int find_collation_sequence_value (const unsigned char *mbs,
+						   size_t name_len)
+     internal_function;
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
+				       const re_dfastate_t *state,
+				       re_node_set *states_node,
+				       bitset_t *states_ch) internal_function;
+static bool check_node_accept (const re_match_context_t *mctx,
+			       const re_token_t *node, Idx idx)
+     internal_function;
+static reg_errcode_t extend_buffers (re_match_context_t *mctx)
+     internal_function;
+
+/* Entry point for POSIX code.  */
+
+/* regexec searches for a given pattern, specified by PREG, in the
+   string STRING.
+
+   If NMATCH is zero or REG_NOSUB was set in the cflags argument to
+   `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
+   least NMATCH elements, and we set them to the offsets of the
+   corresponding matched substrings.
+
+   EFLAGS specifies `execution flags' which affect matching: if
+   REG_NOTBOL is set, then ^ does not match at the beginning of the
+   string; if REG_NOTEOL is set, then $ does not match at the end.
+
+   We return 0 if we find a match and REG_NOMATCH if not.  */
+
+int
+regexec (preg, string, nmatch, pmatch, eflags)
+    const regex_t *_Restrict_ preg;
+    const char *_Restrict_ string;
+    size_t nmatch;
+    regmatch_t pmatch[_Restrict_arr_];
+    int eflags;
+{
+  reg_errcode_t err;
+  Idx start, length;
+#ifdef _LIBC
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+#endif
+
+  if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
+    return REG_BADPAT;
+
+  if (eflags & REG_STARTEND)
+    {
+      start = pmatch[0].rm_so;
+      length = pmatch[0].rm_eo;
+    }
+  else
+    {
+      start = 0;
+      length = strlen (string);
+    }
+
+  __libc_lock_lock (dfa->lock);
+  if (preg->no_sub)
+    err = re_search_internal (preg, string, length, start, length,
+			      length, 0, NULL, eflags);
+  else
+    err = re_search_internal (preg, string, length, start, length,
+			      length, nmatch, pmatch, eflags);
+  __libc_lock_unlock (dfa->lock);
+  return err != REG_NOERROR;
+}
+
+#ifdef _LIBC
+# include <shlib-compat.h>
+versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+__typeof__ (__regexec) __compat_regexec;
+
+int
+attribute_compat_text_section
+__compat_regexec (const regex_t *_Restrict_ preg,
+		  const char *_Restrict_ string, size_t nmatch,
+		  regmatch_t pmatch[], int eflags)
+{
+  return regexec (preg, string, nmatch, pmatch,
+		  eflags & (REG_NOTBOL | REG_NOTEOL));
+}
+compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
+# endif
+#endif
+
+/* Entry points for GNU code.  */
+
+/* re_match, re_search, re_match_2, re_search_2
+
+   The former two functions operate on STRING with length LENGTH,
+   while the later two operate on concatenation of STRING1 and STRING2
+   with lengths LENGTH1 and LENGTH2, respectively.
+
+   re_match() matches the compiled pattern in BUFP against the string,
+   starting at index START.
+
+   re_search() first tries matching at index START, then it tries to match
+   starting from index START + 1, and so on.  The last start position tried
+   is START + RANGE.  (Thus RANGE = 0 forces re_search to operate the same
+   way as re_match().)
+
+   The parameter STOP of re_{match,search}_2 specifies that no match exceeding
+   the first STOP characters of the concatenation of the strings should be
+   concerned.
+
+   If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match
+   and all groups is stored in REGS.  (For the "_2" variants, the offsets are
+   computed relative to the concatenation, not relative to the individual
+   strings.)
+
+   On success, re_match* functions return the length of the match, re_search*
+   return the position of the start of the match.  Return value -1 means no
+   match was found and -2 indicates an internal error.  */
+
+regoff_t
+re_match (bufp, string, length, start, regs)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    Idx length, start;
+    struct re_registers *regs;
+{
+  return re_search_stub (bufp, string, length, start, 0, length, regs, true);
+}
+#ifdef _LIBC
+weak_alias (__re_match, re_match)
+#endif
+
+regoff_t
+re_search (bufp, string, length, start, range, regs)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    Idx length, start;
+    regoff_t range;
+    struct re_registers *regs;
+{
+  return re_search_stub (bufp, string, length, start, range, length, regs,
+			 false);
+}
+#ifdef _LIBC
+weak_alias (__re_search, re_search)
+#endif
+
+regoff_t
+re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    Idx length1, length2, start, stop;
+    struct re_registers *regs;
+{
+  return re_search_2_stub (bufp, string1, length1, string2, length2,
+			   start, 0, regs, stop, true);
+}
+#ifdef _LIBC
+weak_alias (__re_match_2, re_match_2)
+#endif
+
+regoff_t
+re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    Idx length1, length2, start, stop;
+    regoff_t range;
+    struct re_registers *regs;
+{
+  return re_search_2_stub (bufp, string1, length1, string2, length2,
+			   start, range, regs, stop, false);
+}
+#ifdef _LIBC
+weak_alias (__re_search_2, re_search_2)
+#endif
+
+static regoff_t
+internal_function
+re_search_2_stub (struct re_pattern_buffer *bufp,
+		  const char *string1, Idx length1,
+		  const char *string2, Idx length2,
+		  Idx start, regoff_t range, struct re_registers *regs,
+		  Idx stop, bool ret_len)
+{
+  const char *str;
+  regoff_t rval;
+  Idx len = length1 + length2;
+  char *s = NULL;
+
+  if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
+    return -2;
+
+  /* Concatenate the strings.  */
+  if (length2 > 0)
+    if (length1 > 0)
+      {
+	s = re_malloc (char, len);
+
+	if (BE (s == NULL, 0))
+	  return -2;
+#ifdef _LIBC
+	memcpy (__mempcpy (s, string1, length1), string2, length2);
+#else
+	memcpy (s, string1, length1);
+	memcpy (s + length1, string2, length2);
+#endif
+	str = s;
+      }
+    else
+      str = string2;
+  else
+    str = string1;
+
+  rval = re_search_stub (bufp, str, len, start, range, stop, regs,
+			 ret_len);
+  re_free (s);
+  return rval;
+}
+
+/* The parameters have the same meaning as those of re_search.
+   Additional parameters:
+   If RET_LEN is true the length of the match is returned (re_match style);
+   otherwise the position of the match is returned.  */
+
+static regoff_t
+internal_function
+re_search_stub (struct re_pattern_buffer *bufp,
+		const char *string, Idx length,
+		Idx start, regoff_t range, Idx stop, struct re_registers *regs,
+		bool ret_len)
+{
+  reg_errcode_t result;
+  regmatch_t *pmatch;
+  Idx nregs;
+  regoff_t rval;
+  int eflags = 0;
+#ifdef _LIBC
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+#endif
+  Idx last_start = start + range;
+
+  /* Check for out-of-range.  */
+  if (BE (start < 0 || start > length, 0))
+    return -1;
+  if (BE (length < last_start || (0 <= range && last_start < start), 0))
+    last_start = length;
+  else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+    last_start = 0;
+
+  __libc_lock_lock (dfa->lock);
+
+  eflags |= (bufp->not_bol) ? REG_NOTBOL : 0;
+  eflags |= (bufp->not_eol) ? REG_NOTEOL : 0;
+
+  /* Compile fastmap if we haven't yet.  */
+  if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate)
+    re_compile_fastmap (bufp);
+
+  if (BE (bufp->no_sub, 0))
+    regs = NULL;
+
+  /* We need at least 1 register.  */
+  if (regs == NULL)
+    nregs = 1;
+  else if (BE (bufp->regs_allocated == REGS_FIXED
+	       && regs->num_regs <= bufp->re_nsub, 0))
+    {
+      nregs = regs->num_regs;
+      if (BE (nregs < 1, 0))
+	{
+	  /* Nothing can be copied to regs.  */
+	  regs = NULL;
+	  nregs = 1;
+	}
+    }
+  else
+    nregs = bufp->re_nsub + 1;
+  pmatch = re_malloc (regmatch_t, nregs);
+  if (BE (pmatch == NULL, 0))
+    {
+      rval = -2;
+      goto out;
+    }
+
+  result = re_search_internal (bufp, string, length, start, last_start, stop,
+			       nregs, pmatch, eflags);
+
+  rval = 0;
+
+  /* I hope we needn't fill ther regs with -1's when no match was found.  */
+  if (result != REG_NOERROR)
+    rval = -1;
+  else if (regs != NULL)
+    {
+      /* If caller wants register contents data back, copy them.  */
+      bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs,
+					   bufp->regs_allocated);
+      if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0))
+	rval = -2;
+    }
+
+  if (BE (rval == 0, 1))
+    {
+      if (ret_len)
+	{
+	  assert (pmatch[0].rm_so == start);
+	  rval = pmatch[0].rm_eo - start;
+	}
+      else
+	rval = pmatch[0].rm_so;
+    }
+  re_free (pmatch);
+ out:
+  __libc_lock_unlock (dfa->lock);
+  return rval;
+}
+
+static unsigned int
+internal_function
+re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
+	      int regs_allocated)
+{
+  int rval = REGS_REALLOCATE;
+  Idx i;
+  Idx need_regs = nregs + 1;
+  /* We need one extra element beyond `num_regs' for the `-1' marker GNU code
+     uses.  */
+
+  /* Have the register data arrays been allocated?  */
+  if (regs_allocated == REGS_UNALLOCATED)
+    { /* No.  So allocate them with malloc.  */
+      regs->start = re_malloc (regoff_t, need_regs);
+      if (BE (regs->start == NULL, 0))
+	return REGS_UNALLOCATED;
+      regs->end = re_malloc (regoff_t, need_regs);
+      if (BE (regs->end == NULL, 0))
+	{
+	  re_free (regs->start);
+	  return REGS_UNALLOCATED;
+	}
+      regs->num_regs = need_regs;
+    }
+  else if (regs_allocated == REGS_REALLOCATE)
+    { /* Yes.  If we need more elements than were already
+	 allocated, reallocate them.  If we need fewer, just
+	 leave it alone.  */
+      if (BE (need_regs > regs->num_regs, 0))
+	{
+	  regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs);
+	  regoff_t *new_end;
+	  if (BE (new_start == NULL, 0))
+	    return REGS_UNALLOCATED;
+	  new_end = re_realloc (regs->end, regoff_t, need_regs);
+	  if (BE (new_end == NULL, 0))
+	    {
+	      re_free (new_start);
+	      return REGS_UNALLOCATED;
+	    }
+	  regs->start = new_start;
+	  regs->end = new_end;
+	  regs->num_regs = need_regs;
+	}
+    }
+  else
+    {
+      assert (regs_allocated == REGS_FIXED);
+      /* This function may not be called with REGS_FIXED and nregs too big.  */
+      assert (regs->num_regs >= nregs);
+      rval = REGS_FIXED;
+    }
+
+  /* Copy the regs.  */
+  for (i = 0; i < nregs; ++i)
+    {
+      regs->start[i] = pmatch[i].rm_so;
+      regs->end[i] = pmatch[i].rm_eo;
+    }
+  for ( ; i < regs->num_regs; ++i)
+    regs->start[i] = regs->end[i] = -1;
+
+  return rval;
+}
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using PATTERN_BUFFER and REGS will use
+   this memory for recording register information.  STARTS and ENDS
+   must be allocated using the malloc library routine, and must each
+   be at least NUM_REGS * sizeof (regoff_t) bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+
+void
+re_set_registers (bufp, regs, num_regs, starts, ends)
+    struct re_pattern_buffer *bufp;
+    struct re_registers *regs;
+    __re_size_t num_regs;
+    regoff_t *starts, *ends;
+{
+  if (num_regs)
+    {
+      bufp->regs_allocated = REGS_REALLOCATE;
+      regs->num_regs = num_regs;
+      regs->start = starts;
+      regs->end = ends;
+    }
+  else
+    {
+      bufp->regs_allocated = REGS_UNALLOCATED;
+      regs->num_regs = 0;
+      regs->start = regs->end = NULL;
+    }
+}
+#ifdef _LIBC
+weak_alias (__re_set_registers, re_set_registers)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library.  We don't define
+   them unless specifically requested.  */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+int
+# ifdef _LIBC
+weak_function
+# endif
+re_exec (s)
+     const char *s;
+{
+  return 0 == regexec (&re_comp_buf, s, 0, NULL, 0);
+}
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.  */
+
+/* Searches for a compiled pattern PREG in the string STRING, whose
+   length is LENGTH.  NMATCH, PMATCH, and EFLAGS have the same
+   meaning as with regexec.  LAST_START is START + RANGE, where
+   START and RANGE have the same meaning as with re_search.
+   Return REG_NOERROR if we find a match, and REG_NOMATCH if not,
+   otherwise return the error code.
+   Note: We assume front end functions already check ranges.
+   (0 <= LAST_START && LAST_START <= LENGTH)  */
+
+static reg_errcode_t
+internal_function
+re_search_internal (const regex_t *preg,
+		    const char *string, Idx length,
+		    Idx start, Idx last_start, Idx stop,
+		    size_t nmatch, regmatch_t pmatch[],
+		    int eflags)
+{
+  reg_errcode_t err;
+  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  Idx left_lim, right_lim;
+  int incr;
+  bool fl_longest_match;
+  int match_kind;
+  Idx match_first;
+  Idx match_last = REG_MISSING;
+  Idx extra_nmatch;
+  bool sb;
+  int ch;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+  re_match_context_t mctx = { .dfa = dfa };
+#else
+  re_match_context_t mctx;
+#endif
+  char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate
+		    && start != last_start && !preg->can_be_null)
+		   ? preg->fastmap : NULL);
+  RE_TRANSLATE_TYPE t = preg->translate;
+
+#if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
+  memset (&mctx, '\0', sizeof (re_match_context_t));
+  mctx.dfa = dfa;
+#endif
+
+  extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0;
+  nmatch -= extra_nmatch;
+
+  /* Check if the DFA haven't been compiled.  */
+  if (BE (preg->used == 0 || dfa->init_state == NULL
+	  || dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+	  || dfa->init_state_begbuf == NULL, 0))
+    return REG_NOMATCH;
+
+#ifdef DEBUG
+  /* We assume front-end functions already check them.  */
+  assert (0 <= last_start && last_start <= length);
+#endif
+
+  /* If initial states with non-begbuf contexts have no elements,
+     the regex must be anchored.  If preg->newline_anchor is set,
+     we'll never use init_state_nl, so do not check it.  */
+  if (dfa->init_state->nodes.nelem == 0
+      && dfa->init_state_word->nodes.nelem == 0
+      && (dfa->init_state_nl->nodes.nelem == 0
+	  || !preg->newline_anchor))
+    {
+      if (start != 0 && last_start != 0)
+        return REG_NOMATCH;
+      start = last_start = 0;
+    }
+
+  /* We must check the longest matching, if nmatch > 0.  */
+  fl_longest_match = (nmatch != 0 || dfa->nbackref);
+
+  err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
+			    preg->translate, preg->syntax & RE_ICASE, dfa);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+  mctx.input.stop = stop;
+  mctx.input.raw_stop = stop;
+  mctx.input.newline_anchor = preg->newline_anchor;
+
+  err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+
+  /* We will log all the DFA states through which the dfa pass,
+     if nmatch > 1, or this dfa has "multibyte node", which is a
+     back-reference or a node which can accept multibyte character or
+     multi character collating element.  */
+  if (nmatch > 1 || dfa->has_mb_node)
+    {
+      /* Avoid overflow.  */
+      if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= mctx.input.bufs_len, 0))
+	{
+	  err = REG_ESPACE;
+	  goto free_return;
+	}
+
+      mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1);
+      if (BE (mctx.state_log == NULL, 0))
+	{
+	  err = REG_ESPACE;
+	  goto free_return;
+	}
+    }
+  else
+    mctx.state_log = NULL;
+
+  match_first = start;
+  mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+			   : CONTEXT_NEWLINE | CONTEXT_BEGBUF;
+
+  /* Check incrementally whether of not the input string match.  */
+  incr = (last_start < start) ? -1 : 1;
+  left_lim = (last_start < start) ? last_start : start;
+  right_lim = (last_start < start) ? start : last_start;
+  sb = dfa->mb_cur_max == 1;
+  match_kind =
+    (fastmap
+     ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0)
+	| (start <= last_start ? 2 : 0)
+	| (t != NULL ? 1 : 0))
+     : 8);
+
+  for (;; match_first += incr)
+    {
+      err = REG_NOMATCH;
+      if (match_first < left_lim || right_lim < match_first)
+	goto free_return;
+
+      /* Advance as rapidly as possible through the string, until we
+	 find a plausible place to start matching.  This may be done
+	 with varying efficiency, so there are various possibilities:
+	 only the most common of them are specialized, in order to
+	 save on code size.  We use a switch statement for speed.  */
+      switch (match_kind)
+	{
+	case 8:
+	  /* No fastmap.  */
+	  break;
+
+	case 7:
+	  /* Fastmap with single-byte translation, match forward.  */
+	  while (BE (match_first < right_lim, 1)
+		 && !fastmap[t[(unsigned char) string[match_first]]])
+	    ++match_first;
+	  goto forward_match_found_start_or_reached_end;
+
+	case 6:
+	  /* Fastmap without translation, match forward.  */
+	  while (BE (match_first < right_lim, 1)
+		 && !fastmap[(unsigned char) string[match_first]])
+	    ++match_first;
+
+	forward_match_found_start_or_reached_end:
+	  if (BE (match_first == right_lim, 0))
+	    {
+	      ch = match_first >= length
+		       ? 0 : (unsigned char) string[match_first];
+	      if (!fastmap[t ? t[ch] : ch])
+		goto free_return;
+	    }
+	  break;
+
+	case 4:
+	case 5:
+	  /* Fastmap without multi-byte translation, match backwards.  */
+	  while (match_first >= left_lim)
+	    {
+	      ch = match_first >= length
+		       ? 0 : (unsigned char) string[match_first];
+	      if (fastmap[t ? t[ch] : ch])
+		break;
+	      --match_first;
+	    }
+	  if (match_first < left_lim)
+	    goto free_return;
+	  break;
+
+	default:
+	  /* In this case, we can't determine easily the current byte,
+	     since it might be a component byte of a multibyte
+	     character.  Then we use the constructed buffer instead.  */
+	  for (;;)
+	    {
+	      /* If MATCH_FIRST is out of the valid range, reconstruct the
+		 buffers.  */
+	      __re_size_t offset = match_first - mctx.input.raw_mbs_idx;
+	      if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0))
+		{
+		  err = re_string_reconstruct (&mctx.input, match_first,
+					       eflags);
+		  if (BE (err != REG_NOERROR, 0))
+		    goto free_return;
+
+		  offset = match_first - mctx.input.raw_mbs_idx;
+		}
+	      /* If MATCH_FIRST is out of the buffer, leave it as '\0'.
+		 Note that MATCH_FIRST must not be smaller than 0.  */
+	      ch = (match_first >= length
+		    ? 0 : re_string_byte_at (&mctx.input, offset));
+	      if (fastmap[ch])
+		break;
+	      match_first += incr;
+	      if (match_first < left_lim || match_first > right_lim)
+	        {
+	          err = REG_NOMATCH;
+	          goto free_return;
+	        }
+	    }
+	  break;
+	}
+
+      /* Reconstruct the buffers so that the matcher can assume that
+	 the matching starts from the beginning of the buffer.  */
+      err = re_string_reconstruct (&mctx.input, match_first, eflags);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+
+#ifdef RE_ENABLE_I18N
+     /* Don't consider this char as a possible match start if it part,
+	yet isn't the head, of a multibyte character.  */
+      if (!sb && !re_string_first_byte (&mctx.input, 0))
+	continue;
+#endif
+
+      /* It seems to be appropriate one, then use the matcher.  */
+      /* We assume that the matching starts from 0.  */
+      mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0;
+      match_last = check_matching (&mctx, fl_longest_match,
+				   start <= last_start ? &match_first : NULL);
+      if (match_last != REG_MISSING)
+	{
+	  if (BE (match_last == REG_ERROR, 0))
+	    {
+	      err = REG_ESPACE;
+	      goto free_return;
+	    }
+	  else
+	    {
+	      mctx.match_last = match_last;
+	      if ((!preg->no_sub && nmatch > 1) || dfa->nbackref)
+		{
+		  re_dfastate_t *pstate = mctx.state_log[match_last];
+		  mctx.last_node = check_halt_state_context (&mctx, pstate,
+							     match_last);
+		}
+	      if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match)
+		  || dfa->nbackref)
+		{
+		  err = prune_impossible_nodes (&mctx);
+		  if (err == REG_NOERROR)
+		    break;
+		  if (BE (err != REG_NOMATCH, 0))
+		    goto free_return;
+		  match_last = REG_MISSING;
+		}
+	      else
+		break; /* We found a match.  */
+	    }
+	}
+
+      match_ctx_clean (&mctx);
+    }
+
+#ifdef DEBUG
+  assert (match_last != REG_MISSING);
+  assert (err == REG_NOERROR);
+#endif
+
+  /* Set pmatch[] if we need.  */
+  if (nmatch > 0)
+    {
+      Idx reg_idx;
+
+      /* Initialize registers.  */
+      for (reg_idx = 1; reg_idx < nmatch; ++reg_idx)
+	pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1;
+
+      /* Set the points where matching start/end.  */
+      pmatch[0].rm_so = 0;
+      pmatch[0].rm_eo = mctx.match_last;
+      /* FIXME: This function should fail if mctx.match_last exceeds
+	 the maximum possible regoff_t value.  We need a new error
+	 code REG_OVERFLOW.  */
+
+      if (!preg->no_sub && nmatch > 1)
+	{
+	  err = set_regs (preg, &mctx, nmatch, pmatch,
+			  dfa->has_plural_match && dfa->nbackref > 0);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	}
+
+      /* At last, add the offset to the each registers, since we slided
+	 the buffers so that we could assume that the matching starts
+	 from 0.  */
+      for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+	if (pmatch[reg_idx].rm_so != -1)
+	  {
+#ifdef RE_ENABLE_I18N
+	    if (BE (mctx.input.offsets_needed != 0, 0))
+	      {
+		pmatch[reg_idx].rm_so =
+		  (pmatch[reg_idx].rm_so == mctx.input.valid_len
+		   ? mctx.input.valid_raw_len
+		   : mctx.input.offsets[pmatch[reg_idx].rm_so]);
+		pmatch[reg_idx].rm_eo =
+		  (pmatch[reg_idx].rm_eo == mctx.input.valid_len
+		   ? mctx.input.valid_raw_len
+		   : mctx.input.offsets[pmatch[reg_idx].rm_eo]);
+	      }
+#else
+	    assert (mctx.input.offsets_needed == 0);
+#endif
+	    pmatch[reg_idx].rm_so += match_first;
+	    pmatch[reg_idx].rm_eo += match_first;
+	  }
+      for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx)
+	{
+	  pmatch[nmatch + reg_idx].rm_so = -1;
+	  pmatch[nmatch + reg_idx].rm_eo = -1;
+	}
+
+      if (dfa->subexp_map)
+        for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++)
+          if (dfa->subexp_map[reg_idx] != reg_idx)
+            {
+              pmatch[reg_idx + 1].rm_so
+                = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so;
+              pmatch[reg_idx + 1].rm_eo
+                = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo;
+            }
+    }
+
+ free_return:
+  re_free (mctx.state_log);
+  if (dfa->nbackref)
+    match_ctx_free (&mctx);
+  re_string_destruct (&mctx.input);
+  return err;
+}
+
+static reg_errcode_t
+internal_function
+prune_impossible_nodes (re_match_context_t *mctx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx halt_node, match_last;
+  reg_errcode_t ret;
+  re_dfastate_t **sifted_states;
+  re_dfastate_t **lim_states = NULL;
+  re_sift_context_t sctx;
+#ifdef DEBUG
+  assert (mctx->state_log != NULL);
+#endif
+  match_last = mctx->match_last;
+  halt_node = mctx->last_node;
+
+  /* Avoid overflow.  */
+  if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= match_last, 0))
+    return REG_ESPACE;
+
+  sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
+  if (BE (sifted_states == NULL, 0))
+    {
+      ret = REG_ESPACE;
+      goto free_return;
+    }
+  if (dfa->nbackref)
+    {
+      lim_states = re_malloc (re_dfastate_t *, match_last + 1);
+      if (BE (lim_states == NULL, 0))
+	{
+	  ret = REG_ESPACE;
+	  goto free_return;
+	}
+      while (1)
+	{
+	  memset (lim_states, '\0',
+		  sizeof (re_dfastate_t *) * (match_last + 1));
+	  sift_ctx_init (&sctx, sifted_states, lim_states, halt_node,
+			 match_last);
+	  ret = sift_states_backward (mctx, &sctx);
+	  re_node_set_free (&sctx.limits);
+	  if (BE (ret != REG_NOERROR, 0))
+	      goto free_return;
+	  if (sifted_states[0] != NULL || lim_states[0] != NULL)
+	    break;
+	  do
+	    {
+	      --match_last;
+	      if (! REG_VALID_INDEX (match_last))
+		{
+		  ret = REG_NOMATCH;
+		  goto free_return;
+		}
+	    } while (mctx->state_log[match_last] == NULL
+		     || !mctx->state_log[match_last]->halt);
+	  halt_node = check_halt_state_context (mctx,
+						mctx->state_log[match_last],
+						match_last);
+	}
+      ret = merge_state_array (dfa, sifted_states, lim_states,
+			       match_last + 1);
+      re_free (lim_states);
+      lim_states = NULL;
+      if (BE (ret != REG_NOERROR, 0))
+	goto free_return;
+    }
+  else
+    {
+      sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last);
+      ret = sift_states_backward (mctx, &sctx);
+      re_node_set_free (&sctx.limits);
+      if (BE (ret != REG_NOERROR, 0))
+	goto free_return;
+    }
+  re_free (mctx->state_log);
+  mctx->state_log = sifted_states;
+  sifted_states = NULL;
+  mctx->last_node = halt_node;
+  mctx->match_last = match_last;
+  ret = REG_NOERROR;
+ free_return:
+  re_free (sifted_states);
+  re_free (lim_states);
+  return ret;
+}
+
+/* Acquire an initial state and return it.
+   We must select appropriate initial state depending on the context,
+   since initial states may have constraints like "\<", "^", etc..  */
+
+static _inline re_dfastate_t *
+__attribute ((always_inline)) internal_function
+acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
+			    Idx idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  if (dfa->init_state->has_constraint)
+    {
+      unsigned int context;
+      context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags);
+      if (IS_WORD_CONTEXT (context))
+	return dfa->init_state_word;
+      else if (IS_ORDINARY_CONTEXT (context))
+	return dfa->init_state;
+      else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context))
+	return dfa->init_state_begbuf;
+      else if (IS_NEWLINE_CONTEXT (context))
+	return dfa->init_state_nl;
+      else if (IS_BEGBUF_CONTEXT (context))
+	{
+	  /* It is relatively rare case, then calculate on demand.  */
+	  return re_acquire_state_context (err, dfa,
+					   dfa->init_state->entrance_nodes,
+					   context);
+	}
+      else
+	/* Must not happen?  */
+	return dfa->init_state;
+    }
+  else
+    return dfa->init_state;
+}
+
+/* Check whether the regular expression match input string INPUT or not,
+   and return the index where the matching end.  Return REG_MISSING if
+   there is no match, and return REG_ERROR in case of an error.
+   FL_LONGEST_MATCH means we want the POSIX longest matching.
+   If P_MATCH_FIRST is not NULL, and the match fails, it is set to the
+   next place where we may want to try matching.
+   Note that the matcher assume that the maching starts from the current
+   index of the buffer.  */
+
+static Idx
+internal_function
+check_matching (re_match_context_t *mctx, bool fl_longest_match,
+		Idx *p_match_first)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  Idx match = 0;
+  Idx match_last = REG_MISSING;
+  Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+  re_dfastate_t *cur_state;
+  bool at_init_state = p_match_first != NULL;
+  Idx next_start_idx = cur_str_idx;
+
+  err = REG_NOERROR;
+  cur_state = acquire_init_state_context (&err, mctx, cur_str_idx);
+  /* An initial state must not be NULL (invalid).  */
+  if (BE (cur_state == NULL, 0))
+    {
+      assert (err == REG_ESPACE);
+      return REG_ERROR;
+    }
+
+  if (mctx->state_log != NULL)
+    {
+      mctx->state_log[cur_str_idx] = cur_state;
+
+      /* Check OP_OPEN_SUBEXP in the initial state in case that we use them
+	 later.  E.g. Processing back references.  */
+      if (BE (dfa->nbackref, 0))
+	{
+	  at_init_state = false;
+	  err = check_subexp_matching_top (mctx, &cur_state->nodes, 0);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+
+	  if (cur_state->has_backref)
+	    {
+	      err = transit_state_bkref (mctx, &cur_state->nodes);
+	      if (BE (err != REG_NOERROR, 0))
+	        return err;
+	    }
+	}
+    }
+
+  /* If the RE accepts NULL string.  */
+  if (BE (cur_state->halt, 0))
+    {
+      if (!cur_state->has_constraint
+	  || check_halt_state_context (mctx, cur_state, cur_str_idx))
+	{
+	  if (!fl_longest_match)
+	    return cur_str_idx;
+	  else
+	    {
+	      match_last = cur_str_idx;
+	      match = 1;
+	    }
+	}
+    }
+
+  while (!re_string_eoi (&mctx->input))
+    {
+      re_dfastate_t *old_state = cur_state;
+      Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1;
+
+      if (BE (next_char_idx >= mctx->input.bufs_len, 0)
+          || (BE (next_char_idx >= mctx->input.valid_len, 0)
+              && mctx->input.valid_len < mctx->input.len))
+        {
+          err = extend_buffers (mctx);
+          if (BE (err != REG_NOERROR, 0))
+	    {
+	      assert (err == REG_ESPACE);
+	      return REG_ERROR;
+	    }
+        }
+
+      cur_state = transit_state (&err, mctx, cur_state);
+      if (mctx->state_log != NULL)
+	cur_state = merge_state_with_log (&err, mctx, cur_state);
+
+      if (cur_state == NULL)
+	{
+	  /* Reached the invalid state or an error.  Try to recover a valid
+	     state using the state log, if available and if we have not
+	     already found a valid (even if not the longest) match.  */
+	  if (BE (err != REG_NOERROR, 0))
+	    return REG_ERROR;
+
+	  if (mctx->state_log == NULL
+	      || (match && !fl_longest_match)
+	      || (cur_state = find_recover_state (&err, mctx)) == NULL)
+	    break;
+	}
+
+      if (BE (at_init_state, 0))
+	{
+	  if (old_state == cur_state)
+	    next_start_idx = next_char_idx;
+	  else
+	    at_init_state = false;
+	}
+
+      if (cur_state->halt)
+	{
+	  /* Reached a halt state.
+	     Check the halt state can satisfy the current context.  */
+	  if (!cur_state->has_constraint
+	      || check_halt_state_context (mctx, cur_state,
+					   re_string_cur_idx (&mctx->input)))
+	    {
+	      /* We found an appropriate halt state.  */
+	      match_last = re_string_cur_idx (&mctx->input);
+	      match = 1;
+
+	      /* We found a match, do not modify match_first below.  */
+	      p_match_first = NULL;
+	      if (!fl_longest_match)
+		break;
+	    }
+	}
+    }
+
+  if (p_match_first)
+    *p_match_first += next_start_idx;
+
+  return match_last;
+}
+
+/* Check NODE match the current context.  */
+
+static bool
+internal_function
+check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context)
+{
+  re_token_type_t type = dfa->nodes[node].type;
+  unsigned int constraint = dfa->nodes[node].constraint;
+  if (type != END_OF_RE)
+    return false;
+  if (!constraint)
+    return true;
+  if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context))
+    return false;
+  return true;
+}
+
+/* Check the halt state STATE match the current context.
+   Return 0 if not match, if the node, STATE has, is a halt node and
+   match the context, return the node.  */
+
+static Idx
+internal_function
+check_halt_state_context (const re_match_context_t *mctx,
+			  const re_dfastate_t *state, Idx idx)
+{
+  Idx i;
+  unsigned int context;
+#ifdef DEBUG
+  assert (state->halt);
+#endif
+  context = re_string_context_at (&mctx->input, idx, mctx->eflags);
+  for (i = 0; i < state->nodes.nelem; ++i)
+    if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context))
+      return state->nodes.elems[i];
+  return 0;
+}
+
+/* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA
+   corresponding to the DFA).
+   Return the destination node, and update EPS_VIA_NODES;
+   return REG_MISSING in case of errors.  */
+
+static Idx
+internal_function
+proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
+		   Idx *pidx, Idx node, re_node_set *eps_via_nodes,
+		   struct re_fail_stack_t *fs)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx i;
+  bool ok;
+  if (IS_EPSILON_NODE (dfa->nodes[node].type))
+    {
+      re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes;
+      re_node_set *edests = &dfa->edests[node];
+      Idx dest_node;
+      ok = re_node_set_insert (eps_via_nodes, node);
+      if (BE (! ok, 0))
+	return REG_ERROR;
+      /* Pick up a valid destination, or return REG_MISSING if none
+	 is found.  */
+      for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i)
+	{
+	  Idx candidate = edests->elems[i];
+	  if (!re_node_set_contains (cur_nodes, candidate))
+	    continue;
+          if (dest_node == REG_MISSING)
+	    dest_node = candidate;
+
+          else
+	    {
+	      /* In order to avoid infinite loop like "(a*)*", return the second
+	         epsilon-transition if the first was already considered.  */
+	      if (re_node_set_contains (eps_via_nodes, dest_node))
+	        return candidate;
+
+	      /* Otherwise, push the second epsilon-transition on the fail stack.  */
+	      else if (fs != NULL
+		       && push_fail_stack (fs, *pidx, candidate, nregs, regs,
+				           eps_via_nodes))
+		return REG_ERROR;
+
+	      /* We know we are going to exit.  */
+	      break;
+	    }
+	}
+      return dest_node;
+    }
+  else
+    {
+      Idx naccepted = 0;
+      re_token_type_t type = dfa->nodes[node].type;
+
+#ifdef RE_ENABLE_I18N
+      if (dfa->nodes[node].accept_mb)
+	naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx);
+      else
+#endif /* RE_ENABLE_I18N */
+      if (type == OP_BACK_REF)
+	{
+	  Idx subexp_idx = dfa->nodes[node].opr.idx + 1;
+	  naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
+	  if (fs != NULL)
+	    {
+	      if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
+		return REG_MISSING;
+	      else if (naccepted)
+		{
+		  char *buf = (char *) re_string_get_buffer (&mctx->input);
+		  if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
+			      naccepted) != 0)
+		    return REG_MISSING;
+		}
+	    }
+
+	  if (naccepted == 0)
+	    {
+	      Idx dest_node;
+	      ok = re_node_set_insert (eps_via_nodes, node);
+	      if (BE (! ok, 0))
+		return REG_ERROR;
+	      dest_node = dfa->edests[node].elems[0];
+	      if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+					dest_node))
+		return dest_node;
+	    }
+	}
+
+      if (naccepted != 0
+	  || check_node_accept (mctx, dfa->nodes + node, *pidx))
+	{
+	  Idx dest_node = dfa->nexts[node];
+	  *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted;
+	  if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL
+		     || !re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+					       dest_node)))
+	    return REG_MISSING;
+	  re_node_set_empty (eps_via_nodes);
+	  return dest_node;
+	}
+    }
+  return REG_MISSING;
+}
+
+static reg_errcode_t
+internal_function
+push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node,
+		 Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+  reg_errcode_t err;
+  Idx num = fs->num++;
+  if (fs->num == fs->alloc)
+    {
+      struct re_fail_stack_ent_t *new_array;
+      new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t)
+				       * fs->alloc * 2));
+      if (new_array == NULL)
+	return REG_ESPACE;
+      fs->alloc *= 2;
+      fs->stack = new_array;
+    }
+  fs->stack[num].idx = str_idx;
+  fs->stack[num].node = dest_node;
+  fs->stack[num].regs = re_malloc (regmatch_t, nregs);
+  if (fs->stack[num].regs == NULL)
+    return REG_ESPACE;
+  memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs);
+  err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes);
+  return err;
+}
+
+static Idx
+internal_function
+pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs,
+		regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+  Idx num = --fs->num;
+  assert (REG_VALID_INDEX (num));
+  *pidx = fs->stack[num].idx;
+  memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs);
+  re_node_set_free (eps_via_nodes);
+  re_free (fs->stack[num].regs);
+  *eps_via_nodes = fs->stack[num].eps_via_nodes;
+  return fs->stack[num].node;
+}
+
+/* Set the positions where the subexpressions are starts/ends to registers
+   PMATCH.
+   Note: We assume that pmatch[0] is already set, and
+   pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch.  */
+
+static reg_errcode_t
+internal_function
+set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
+	  regmatch_t *pmatch, bool fl_backtrack)
+{
+  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  Idx idx, cur_node;
+  re_node_set eps_via_nodes;
+  struct re_fail_stack_t *fs;
+  struct re_fail_stack_t fs_body = { 0, 2, NULL };
+  regmatch_t *prev_idx_match;
+  bool prev_idx_match_malloced = false;
+
+#ifdef DEBUG
+  assert (nmatch > 1);
+  assert (mctx->state_log != NULL);
+#endif
+  if (fl_backtrack)
+    {
+      fs = &fs_body;
+      fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc);
+      if (fs->stack == NULL)
+	return REG_ESPACE;
+    }
+  else
+    fs = NULL;
+
+  cur_node = dfa->init_node;
+  re_node_set_init_empty (&eps_via_nodes);
+
+  if (__libc_use_alloca (nmatch * sizeof (regmatch_t)))
+    prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t));
+  else
+    {
+      prev_idx_match = re_malloc (regmatch_t, nmatch);
+      if (prev_idx_match == NULL)
+	{
+	  free_fail_stack_return (fs);
+	  return REG_ESPACE;
+	}
+      prev_idx_match_malloced = true;
+    }
+  memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+
+  for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;)
+    {
+      update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch);
+
+      if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node)
+	{
+	  Idx reg_idx;
+	  if (fs)
+	    {
+	      for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+		if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1)
+		  break;
+	      if (reg_idx == nmatch)
+		{
+		  re_node_set_free (&eps_via_nodes);
+		  if (prev_idx_match_malloced)
+		    re_free (prev_idx_match);
+		  return free_fail_stack_return (fs);
+		}
+	      cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+					 &eps_via_nodes);
+	    }
+	  else
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      return REG_NOERROR;
+	    }
+	}
+
+      /* Proceed to next node.  */
+      cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
+				    &eps_via_nodes, fs);
+
+      if (BE (! REG_VALID_INDEX (cur_node), 0))
+	{
+	  if (BE (cur_node == REG_ERROR, 0))
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      free_fail_stack_return (fs);
+	      return REG_ESPACE;
+	    }
+	  if (fs)
+	    cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+				       &eps_via_nodes);
+	  else
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      return REG_NOMATCH;
+	    }
+	}
+    }
+  re_node_set_free (&eps_via_nodes);
+  if (prev_idx_match_malloced)
+    re_free (prev_idx_match);
+  return free_fail_stack_return (fs);
+}
+
+static reg_errcode_t
+internal_function
+free_fail_stack_return (struct re_fail_stack_t *fs)
+{
+  if (fs)
+    {
+      Idx fs_idx;
+      for (fs_idx = 0; fs_idx < fs->num; ++fs_idx)
+	{
+	  re_node_set_free (&fs->stack[fs_idx].eps_via_nodes);
+	  re_free (fs->stack[fs_idx].regs);
+	}
+      re_free (fs->stack);
+    }
+  return REG_NOERROR;
+}
+
+static void
+internal_function
+update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+	     regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch)
+{
+  int type = dfa->nodes[cur_node].type;
+  if (type == OP_OPEN_SUBEXP)
+    {
+      Idx reg_num = dfa->nodes[cur_node].opr.idx + 1;
+
+      /* We are at the first node of this sub expression.  */
+      if (reg_num < nmatch)
+	{
+	  pmatch[reg_num].rm_so = cur_idx;
+	  pmatch[reg_num].rm_eo = -1;
+	}
+    }
+  else if (type == OP_CLOSE_SUBEXP)
+    {
+      Idx reg_num = dfa->nodes[cur_node].opr.idx + 1;
+      if (reg_num < nmatch)
+	{
+	  /* We are at the last node of this sub expression.  */
+	  if (pmatch[reg_num].rm_so < cur_idx)
+	    {
+	      pmatch[reg_num].rm_eo = cur_idx;
+	      /* This is a non-empty match or we are not inside an optional
+		 subexpression.  Accept this right away.  */
+	      memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+	    }
+	  else
+	    {
+	      if (dfa->nodes[cur_node].opt_subexp
+		  && prev_idx_match[reg_num].rm_so != -1)
+		/* We transited through an empty match for an optional
+		   subexpression, like (a?)*, and this is not the subexp's
+		   first match.  Copy back the old content of the registers
+		   so that matches of an inner subexpression are undone as
+		   well, like in ((a?))*.  */
+		memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch);
+	      else
+		/* We completed a subexpression, but it may be part of
+		   an optional one, so do not update PREV_IDX_MATCH.  */
+		pmatch[reg_num].rm_eo = cur_idx;
+	    }
+	}
+    }
+}
+
+/* This function checks the STATE_LOG from the SCTX->last_str_idx to 0
+   and sift the nodes in each states according to the following rules.
+   Updated state_log will be wrote to STATE_LOG.
+
+   Rules: We throw away the Node `a' in the STATE_LOG[STR_IDX] if...
+     1. When STR_IDX == MATCH_LAST(the last index in the state_log):
+	If `a' isn't the LAST_NODE and `a' can't epsilon transit to
+	the LAST_NODE, we throw away the node `a'.
+     2. When 0 <= STR_IDX < MATCH_LAST and `a' accepts
+	string `s' and transit to `b':
+	i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw
+	   away the node `a'.
+	ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is
+	    thrown away, we throw away the node `a'.
+     3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b':
+	i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the
+	   node `a'.
+	ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away,
+	    we throw away the node `a'.  */
+
+#define STATE_NODE_CONTAINS(state,node) \
+  ((state) != NULL && re_node_set_contains (&(state)->nodes, node))
+
+static reg_errcode_t
+internal_function
+sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
+{
+  reg_errcode_t err;
+  int null_cnt = 0;
+  Idx str_idx = sctx->last_str_idx;
+  re_node_set cur_dest;
+
+#ifdef DEBUG
+  assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL);
+#endif
+
+  /* Build sifted state_log[str_idx].  It has the nodes which can epsilon
+     transit to the last_node and the last_node itself.  */
+  err = re_node_set_init_1 (&cur_dest, sctx->last_node);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+
+  /* Then check each states in the state_log.  */
+  while (str_idx > 0)
+    {
+      /* Update counters.  */
+      null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0;
+      if (null_cnt > mctx->max_mb_elem_len)
+	{
+	  memset (sctx->sifted_states, '\0',
+		  sizeof (re_dfastate_t *) * str_idx);
+	  re_node_set_free (&cur_dest);
+	  return REG_NOERROR;
+	}
+      re_node_set_empty (&cur_dest);
+      --str_idx;
+
+      if (mctx->state_log[str_idx])
+	{
+	  err = build_sifted_states (mctx, sctx, str_idx, &cur_dest);
+          if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	}
+
+      /* Add all the nodes which satisfy the following conditions:
+	 - It can epsilon transit to a node in CUR_DEST.
+	 - It is in CUR_SRC.
+	 And update state_log.  */
+      err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+    }
+  err = REG_NOERROR;
+ free_return:
+  re_node_set_free (&cur_dest);
+  return err;
+}
+
+static reg_errcode_t
+internal_function
+build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		     Idx str_idx, re_node_set *cur_dest)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes;
+  Idx i;
+
+  /* Then build the next sifted state.
+     We build the next sifted state on `cur_dest', and update
+     `sifted_states[str_idx]' with `cur_dest'.
+     Note:
+     `cur_dest' is the sifted state from `state_log[str_idx + 1]'.
+     `cur_src' points the node_set of the old `state_log[str_idx]'
+     (with the epsilon nodes pre-filtered out).  */
+  for (i = 0; i < cur_src->nelem; i++)
+    {
+      Idx prev_node = cur_src->elems[i];
+      int naccepted = 0;
+      bool ok;
+
+#ifdef DEBUG
+      re_token_type_t type = dfa->nodes[prev_node].type;
+      assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+      /* If the node may accept `multi byte'.  */
+      if (dfa->nodes[prev_node].accept_mb)
+	naccepted = sift_states_iter_mb (mctx, sctx, prev_node,
+					 str_idx, sctx->last_str_idx);
+#endif /* RE_ENABLE_I18N */
+
+      /* We don't check backreferences here.
+	 See update_cur_sifted_state().  */
+      if (!naccepted
+	  && check_node_accept (mctx, dfa->nodes + prev_node, str_idx)
+	  && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1],
+				  dfa->nexts[prev_node]))
+	naccepted = 1;
+
+      if (naccepted == 0)
+	continue;
+
+      if (sctx->limits.nelem)
+	{
+	  Idx to_idx = str_idx + naccepted;
+	  if (check_dst_limits (mctx, &sctx->limits,
+				dfa->nexts[prev_node], to_idx,
+				prev_node, str_idx))
+	    continue;
+	}
+      ok = re_node_set_insert (cur_dest, prev_node);
+      if (BE (! ok, 0))
+	return REG_ESPACE;
+    }
+
+  return REG_NOERROR;
+}
+
+/* Helper functions.  */
+
+static reg_errcode_t
+internal_function
+clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
+{
+  Idx top = mctx->state_log_top;
+
+  if (next_state_log_idx >= mctx->input.bufs_len
+      || (next_state_log_idx >= mctx->input.valid_len
+	  && mctx->input.valid_len < mctx->input.len))
+    {
+      reg_errcode_t err;
+      err = extend_buffers (mctx);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  if (top < next_state_log_idx)
+    {
+      memset (mctx->state_log + top + 1, '\0',
+	      sizeof (re_dfastate_t *) * (next_state_log_idx - top));
+      mctx->state_log_top = next_state_log_idx;
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
+		   re_dfastate_t **src, Idx num)
+{
+  Idx st_idx;
+  reg_errcode_t err;
+  for (st_idx = 0; st_idx < num; ++st_idx)
+    {
+      if (dst[st_idx] == NULL)
+	dst[st_idx] = src[st_idx];
+      else if (src[st_idx] != NULL)
+	{
+	  re_node_set merged_set;
+	  err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes,
+					&src[st_idx]->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	  dst[st_idx] = re_acquire_state (&err, dfa, &merged_set);
+	  re_node_set_free (&merged_set);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+update_cur_sifted_state (const re_match_context_t *mctx,
+			 re_sift_context_t *sctx, Idx str_idx,
+			 re_node_set *dest_nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err = REG_NOERROR;
+  const re_node_set *candidates;
+  candidates = ((mctx->state_log[str_idx] == NULL) ? NULL
+		: &mctx->state_log[str_idx]->nodes);
+
+  if (dest_nodes->nelem == 0)
+    sctx->sifted_states[str_idx] = NULL;
+  else
+    {
+      if (candidates)
+	{
+	  /* At first, add the nodes which can epsilon transit to a node in
+	     DEST_NODE.  */
+	  err = add_epsilon_src_nodes (dfa, dest_nodes, candidates);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+
+	  /* Then, check the limitations in the current sift_context.  */
+	  if (sctx->limits.nelem)
+	    {
+	      err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits,
+					 mctx->bkref_ents, str_idx);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	}
+
+      sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  if (candidates && mctx->state_log[str_idx]->has_backref)
+    {
+      err = sift_states_bkref (mctx, sctx, str_idx, candidates);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes,
+		       const re_node_set *candidates)
+{
+  reg_errcode_t err = REG_NOERROR;
+  Idx i;
+
+  re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  if (!state->inveclosure.alloc)
+    {
+      err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem);
+      if (BE (err != REG_NOERROR, 0))
+        return REG_ESPACE;
+      for (i = 0; i < dest_nodes->nelem; i++)
+        re_node_set_merge (&state->inveclosure,
+			   dfa->inveclosures + dest_nodes->elems[i]);
+    }
+  return re_node_set_add_intersect (dest_nodes, candidates,
+				    &state->inveclosure);
+}
+
+static reg_errcode_t
+internal_function
+sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
+		       const re_node_set *candidates)
+{
+    Idx ecl_idx;
+    reg_errcode_t err;
+    re_node_set *inv_eclosure = dfa->inveclosures + node;
+    re_node_set except_nodes;
+    re_node_set_init_empty (&except_nodes);
+    for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+      {
+	Idx cur_node = inv_eclosure->elems[ecl_idx];
+	if (cur_node == node)
+	  continue;
+	if (IS_EPSILON_NODE (dfa->nodes[cur_node].type))
+	  {
+	    Idx edst1 = dfa->edests[cur_node].elems[0];
+	    Idx edst2 = ((dfa->edests[cur_node].nelem > 1)
+			 ? dfa->edests[cur_node].elems[1] : REG_MISSING);
+	    if ((!re_node_set_contains (inv_eclosure, edst1)
+		 && re_node_set_contains (dest_nodes, edst1))
+		|| (REG_VALID_NONZERO_INDEX (edst2)
+		    && !re_node_set_contains (inv_eclosure, edst2)
+		    && re_node_set_contains (dest_nodes, edst2)))
+	      {
+		err = re_node_set_add_intersect (&except_nodes, candidates,
+						 dfa->inveclosures + cur_node);
+		if (BE (err != REG_NOERROR, 0))
+		  {
+		    re_node_set_free (&except_nodes);
+		    return err;
+		  }
+	      }
+	  }
+      }
+    for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+      {
+	Idx cur_node = inv_eclosure->elems[ecl_idx];
+	if (!re_node_set_contains (&except_nodes, cur_node))
+	  {
+	    Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1;
+	    re_node_set_remove_at (dest_nodes, idx);
+	  }
+      }
+    re_node_set_free (&except_nodes);
+    return REG_NOERROR;
+}
+
+static bool
+internal_function
+check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits,
+		  Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  Idx lim_idx, src_pos, dst_pos;
+
+  Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx);
+  Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx);
+  for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+    {
+      Idx subexp_idx;
+      struct re_backref_cache_entry *ent;
+      ent = mctx->bkref_ents + limits->elems[lim_idx];
+      subexp_idx = dfa->nodes[ent->node].opr.idx;
+
+      dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+					   subexp_idx, dst_node, dst_idx,
+					   dst_bkref_idx);
+      src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+					   subexp_idx, src_node, src_idx,
+					   src_bkref_idx);
+
+      /* In case of:
+	 <src> <dst> ( <subexp> )
+	 ( <subexp> ) <src> <dst>
+	 ( <subexp1> <src> <subexp2> <dst> <subexp3> )  */
+      if (src_pos == dst_pos)
+	continue; /* This is unrelated limitation.  */
+      else
+	return true;
+    }
+  return false;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
+			     Idx subexp_idx, Idx from_node, Idx bkref_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  const re_node_set *eclosures = dfa->eclosures + from_node;
+  Idx node_idx;
+
+  /* Else, we are on the boundary: examine the nodes on the epsilon
+     closure.  */
+  for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx)
+    {
+      Idx node = eclosures->elems[node_idx];
+      switch (dfa->nodes[node].type)
+	{
+	case OP_BACK_REF:
+	  if (bkref_idx != REG_MISSING)
+	    {
+	      struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx;
+	      do
+	        {
+		  Idx dst;
+		  int cpos;
+
+		  if (ent->node != node)
+		    continue;
+
+		  if (subexp_idx < BITSET_WORD_BITS
+		      && !(ent->eps_reachable_subexps_map
+			   & ((bitset_word_t) 1 << subexp_idx)))
+		    continue;
+
+		  /* Recurse trying to reach the OP_OPEN_SUBEXP and
+		     OP_CLOSE_SUBEXP cases below.  But, if the
+		     destination node is the same node as the source
+		     node, don't recurse because it would cause an
+		     infinite loop: a regex that exhibits this behavior
+		     is ()\1*\1*  */
+		  dst = dfa->edests[node].elems[0];
+		  if (dst == from_node)
+		    {
+		      if (boundaries & 1)
+		        return -1;
+		      else /* if (boundaries & 2) */
+		        return 0;
+		    }
+
+		  cpos =
+		    check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+						 dst, bkref_idx);
+		  if (cpos == -1 /* && (boundaries & 1) */)
+		    return -1;
+		  if (cpos == 0 && (boundaries & 2))
+		    return 0;
+
+		  if (subexp_idx < BITSET_WORD_BITS)
+		    ent->eps_reachable_subexps_map
+		      &= ~((bitset_word_t) 1 << subexp_idx);
+	        }
+	      while (ent++->more);
+	    }
+	  break;
+
+	case OP_OPEN_SUBEXP:
+	  if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx)
+	    return -1;
+	  break;
+
+	case OP_CLOSE_SUBEXP:
+	  if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx)
+	    return 0;
+	  break;
+
+	default:
+	    break;
+	}
+    }
+
+  return (boundaries & 2) ? 1 : 0;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit,
+			   Idx subexp_idx, Idx from_node, Idx str_idx,
+			   Idx bkref_idx)
+{
+  struct re_backref_cache_entry *lim = mctx->bkref_ents + limit;
+  int boundaries;
+
+  /* If we are outside the range of the subexpression, return -1 or 1.  */
+  if (str_idx < lim->subexp_from)
+    return -1;
+
+  if (lim->subexp_to < str_idx)
+    return 1;
+
+  /* If we are within the subexpression, return 0.  */
+  boundaries = (str_idx == lim->subexp_from);
+  boundaries |= (str_idx == lim->subexp_to) << 1;
+  if (boundaries == 0)
+    return 0;
+
+  /* Else, examine epsilon closure.  */
+  return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+				      from_node, bkref_idx);
+}
+
+/* Check the limitations of sub expressions LIMITS, and remove the nodes
+   which are against limitations from DEST_NODES. */
+
+static reg_errcode_t
+internal_function
+check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
+		     const re_node_set *candidates, re_node_set *limits,
+		     struct re_backref_cache_entry *bkref_ents, Idx str_idx)
+{
+  reg_errcode_t err;
+  Idx node_idx, lim_idx;
+
+  for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+    {
+      Idx subexp_idx;
+      struct re_backref_cache_entry *ent;
+      ent = bkref_ents + limits->elems[lim_idx];
+
+      if (str_idx <= ent->subexp_from || ent->str_idx < str_idx)
+	continue; /* This is unrelated limitation.  */
+
+      subexp_idx = dfa->nodes[ent->node].opr.idx;
+      if (ent->subexp_to == str_idx)
+	{
+	  Idx ops_node = REG_MISSING;
+	  Idx cls_node = REG_MISSING;
+	  for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	    {
+	      Idx node = dest_nodes->elems[node_idx];
+	      re_token_type_t type = dfa->nodes[node].type;
+	      if (type == OP_OPEN_SUBEXP
+		  && subexp_idx == dfa->nodes[node].opr.idx)
+		ops_node = node;
+	      else if (type == OP_CLOSE_SUBEXP
+		       && subexp_idx == dfa->nodes[node].opr.idx)
+		cls_node = node;
+	    }
+
+	  /* Check the
diff --git a/win32/gl/stdbool.h b/win32/gl/stdbool.h
new file mode 100644
index 0000000..5037df8
--- /dev/null
+++ b/win32/gl/stdbool.h
@@ -0,0 +1,120 @@
+/* Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
+   Written by Bruno Haible <haible at clisp.cons.org>, 2001.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _GL_STDBOOL_H
+#define _GL_STDBOOL_H
+
+/* ISO C 99 <stdbool.h> for platforms that lack it.  */
+
+/* Usage suggestions:
+
+   Programs that use <stdbool.h> should be aware of some limitations
+   and standards compliance issues.
+
+   Standards compliance:
+
+       - <stdbool.h> must be #included before 'bool', 'false', 'true'
+         can be used.
+
+       - You cannot assume that sizeof (bool) == 1.
+
+       - Programs should not undefine the macros bool, true, and false,
+         as C99 lists that as an "obsolescent feature".
+
+   Limitations of this substitute, when used in a C89 environment:
+
+       - <stdbool.h> must be #included before the '_Bool' type can be used.
+
+       - You cannot assume that _Bool is a typedef; it might be a macro.
+
+       - Bit-fields of type 'bool' are not supported.  Portable code
+         should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+
+       - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+         performed in such a way that every nonzero value gets converted
+         to 'true', and zero gets converted to 'false'.  This doesn't work
+         with this substitute.  With this substitute, only the values 0 and 1
+         give the expected result when converted to _Bool' or 'bool'.
+
+   Also, it is suggested that programs use 'bool' rather than '_Bool';
+   this isn't required, but 'bool' is more common.  */
+
+
+/* 7.16. Boolean type and values */
+
+/* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
+   definitions below, but temporarily we have to #undef them.  */
+#ifdef __BEOS__
+# include <OS.h> /* defines bool but not _Bool */
+# undef false
+# undef true
+#endif
+
+/* For the sake of symbolic names in gdb, we define true and false as
+   enum constants, not only as macros.
+   It is tempting to write
+      typedef enum { false = 0, true = 1 } _Bool;
+   so that gdb prints values of type 'bool' symbolically. But if we do
+   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
+   enum; this ensures that '_Bool' promotes to 'int'.  */
+#if defined __cplusplus || defined __BEOS__
+  /* A compiler known to have 'bool'.  */
+  /* If the compiler already has both 'bool' and '_Bool', we can assume they
+     are the same types.  */
+/*# if !@HAVE__BOOL@*/
+# if !HAVE__BOOL
+typedef bool _Bool;
+# endif
+#else
+# if !defined __GNUC__
+   /* If @HAVE__BOOL@:
+        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+        the built-in _Bool type is used.  See
+          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+        Similar bugs are likely with other compilers as well; this file
+        wouldn't be used if <stdbool.h> was working.
+        So we override the _Bool type.
+      If !@HAVE__BOOL@:
+        Need to define _Bool ourselves. As 'signed char' or as an enum type?
+        Use of a typedef, with SunPRO C, leads to a stupid
+          "warning: _Bool is a keyword in ISO C99".
+        Use of an enum type, with IRIX cc, leads to a stupid
+          "warning(1185): enumerated type mixed with another type".
+        The only benefit of the enum type, debuggability, is not important
+        with these compilers.  So use 'signed char' and no typedef.  */
+#  define _Bool signed char
+enum { false = 0, true = 1 };
+# else
+   /* With this compiler, trust the _Bool type if the compiler has it.  */
+/*#  if !@HAVE__BOOL@*/
+# if !HAVE__BOOL
+typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+#  endif
+# endif
+#endif
+#define bool _Bool
+
+/* The other macros must be usable in preprocessor directives.  */
+#define false 0
+#define true 1
+#define __bool_true_false_are_defined 1
+
+#endif /* _GL_STDBOOL_H */
diff --git a/win32/gl/stdint.h b/win32/gl/stdint.h
new file mode 100644
index 0000000..8ba9062
--- /dev/null
+++ b/win32/gl/stdint.h
@@ -0,0 +1,799 @@
+/*  A portable stdint.h
+ ****************************************************************************
+ *  BSD License:
+ ****************************************************************************
+ *
+ *  Copyright (c) 2005-2007 Paul Hsieh
+ *  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *  3. The name of the author may not be used to endorse or promote products
+ *     derived from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ *  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ *  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************
+ *
+ *  Version 0.1.11
+ *
+ *  The ANSI C standard committee, for the C99 standard, specified the
+ *  inclusion of a new standard include file called stdint.h.  This is
+ *  a very useful and long desired include file which contains several
+ *  very precise definitions for integer scalar types that is
+ *  critically important for making portable several classes of
+ *  applications including cryptography, hashing, variable length
+ *  integer libraries and so on.  But for most developers its likely
+ *  useful just for programming sanity.
+ *
+ *  The problem is that most compiler vendors have decided not to
+ *  implement the C99 standard, and the next C++ language standard
+ *  (which has a lot more mindshare these days) will be a long time in
+ *  coming and its unknown whether or not it will include stdint.h or
+ *  how much adoption it will have.  Either way, it will be a long time
+ *  before all compilers come with a stdint.h and it also does nothing
+ *  for the extremely large number of compilers available today which
+ *  do not include this file, or anything comparable to it.
+ *
+ *  So that's what this file is all about.  Its an attempt to build a
+ *  single universal include file that works on as many platforms as
+ *  possible to deliver what stdint.h is supposed to.  A few things
+ *  that should be noted about this file:
+ *
+ *    1) It is not guaranteed to be portable and/or present an identical
+ *       interface on all platforms.  The extreme variability of the
+ *       ANSI C standard makes this an impossibility right from the
+ *       very get go. Its really only meant to be useful for the vast
+ *       majority of platforms that possess the capability of
+ *       implementing usefully and precisely defined, standard sized
+ *       integer scalars.  Systems which are not intrinsically 2s
+ *       complement may produce invalid constants.
+ *
+ *    2) There is an unavoidable use of non-reserved symbols.
+ *
+ *    3) Other standard include files are invoked.
+ *
+ *    4) This file may come in conflict with future platforms that do
+ *       include stdint.h.  The hope is that one or the other can be
+ *       used with no real difference.
+ *
+ *    5) In the current verison, if your platform can't represent
+ *       int32_t, int16_t and int8_t, it just dumps out with a compiler
+ *       error.
+ *
+ *    6) 64 bit integers may or may not be defined.  Test for their
+ *       presence with the test: #ifdef INT64_MAX or #ifdef UINT64_MAX.
+ *       Note that this is different from the C99 specification which
+ *       requires the existence of 64 bit support in the compiler.  If
+ *       this is not defined for your platform, yet it is capable of
+ *       dealing with 64 bits then it is because this file has not yet
+ *       been extended to cover all of your system's capabilities.
+ *
+ *    7) (u)intptr_t may or may not be defined.  Test for its presence
+ *       with the test: #ifdef PTRDIFF_MAX.  If this is not defined
+ *       for your platform, then it is because this file has not yet
+ *       been extended to cover all of your system's capabilities, not
+ *       because its optional.
+ *
+ *    8) The following might not been defined even if your platform is
+ *       capable of defining it:
+ *
+ *       WCHAR_MIN
+ *       WCHAR_MAX
+ *       (u)int64_t
+ *       PTRDIFF_MIN
+ *       PTRDIFF_MAX
+ *       (u)intptr_t
+ *
+ *    9) The following have not been defined:
+ *
+ *       WINT_MIN
+ *       WINT_MAX
+ *
+ *   10) The criteria for defining (u)int_least(*)_t isn't clear,
+ *       except for systems which don't have a type that precisely
+ *       defined 8, 16, or 32 bit types (which this include file does
+ *       not support anyways). Default definitions have been given.
+ *
+ *   11) The criteria for defining (u)int_fast(*)_t isn't something I
+ *       would trust to any particular compiler vendor or the ANSI C
+ *       committee.  It is well known that "compatible systems" are
+ *       commonly created that have very different performance
+ *       characteristics from the systems they are compatible with,
+ *       especially those whose vendors make both the compiler and the
+ *       system.  Default definitions have been given, but its strongly
+ *       recommended that users never use these definitions for any
+ *       reason (they do *NOT* deliver any serious guarantee of
+ *       improved performance -- not in this file, nor any vendor's
+ *       stdint.h).
+ *
+ *   12) The following macros:
+ *
+ *       PRINTF_INTMAX_MODIFIER
+ *       PRINTF_INT64_MODIFIER
+ *       PRINTF_INT32_MODIFIER
+ *       PRINTF_INT16_MODIFIER
+ *       PRINTF_LEAST64_MODIFIER
+ *       PRINTF_LEAST32_MODIFIER
+ *       PRINTF_LEAST16_MODIFIER
+ *       PRINTF_INTPTR_MODIFIER
+ *
+ *       are strings which have been defined as the modifiers required
+ *       for the "d", "u" and "x" printf formats to correctly output
+ *       (u)intmax_t, (u)int64_t, (u)int32_t, (u)int16_t, (u)least64_t,
+ *       (u)least32_t, (u)least16_t and (u)intptr_t types respectively.
+ *       PRINTF_INTPTR_MODIFIER is not defined for some systems which
+ *       provide their own stdint.h.  PRINTF_INT64_MODIFIER is not
+ *       defined if INT64_MAX is not defined.  These are an extension
+ *       beyond what C99 specifies must be in stdint.h.
+ *
+ *       In addition, the following macros are defined:
+ *
+ *       PRINTF_INTMAX_HEX_WIDTH
+ *       PRINTF_INT64_HEX_WIDTH
+ *       PRINTF_INT32_HEX_WIDTH
+ *       PRINTF_INT16_HEX_WIDTH
+ *       PRINTF_INT8_HEX_WIDTH
+ *       PRINTF_INTMAX_DEC_WIDTH
+ *       PRINTF_INT64_DEC_WIDTH
+ *       PRINTF_INT32_DEC_WIDTH
+ *       PRINTF_INT16_DEC_WIDTH
+ *       PRINTF_INT8_DEC_WIDTH
+ *
+ *       Which specifies the maximum number of characters required to
+ *       print the number of that type in either hexadecimal or decimal.
+ *       These are an extension beyond what C99 specifies must be in
+ *       stdint.h.
+ *
+ *  Compilers tested (all with 0 warnings at their highest respective
+ *  settings): Borland Turbo C 2.0, WATCOM C/C++ 11.0 (16 bits and 32
+ *  bits), Microsoft Visual C++ 6.0 (32 bit), Microsoft Visual Studio
+ *  .net (VC7), Intel C++ 4.0, GNU gcc v3.3.3
+ *
+ *  This file should be considered a work in progress.  Suggestions for
+ *  improvements, especially those which increase coverage are strongly
+ *  encouraged.
+ *
+ *  Acknowledgements
+ *
+ *  The following people have made significant contributions to the
+ *  development and testing of this file:
+ *
+ *  Chris Howie
+ *  John Steele Scott
+ *  Dave Thorup
+ *
+ */
+
+#include <stddef.h>
+#include <limits.h>
+#include <signal.h>
+
+/*
+ *  For gcc with _STDINT_H, fill in the PRINTF_INT*_MODIFIER macros, and
+ *  do nothing else.  On the Mac OS X version of gcc this is _STDINT_H_.
+ */
+
+#if ((defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined (__WATCOMC__) && (defined (_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) )) && !defined (_PSTDINT_H_INCLUDED)
+#include <stdint.h>
+#define _PSTDINT_H_INCLUDED
+# ifndef PRINTF_INT64_MODIFIER
+#  define PRINTF_INT64_MODIFIER "ll"
+# endif
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER "l"
+# endif
+# ifndef PRINTF_INT16_MODIFIER
+#  define PRINTF_INT16_MODIFIER "h"
+# endif
+# ifndef PRINTF_INTMAX_MODIFIER
+#  define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER
+# endif
+# ifndef PRINTF_INT64_HEX_WIDTH
+#  define PRINTF_INT64_HEX_WIDTH "16"
+# endif
+# ifndef PRINTF_INT32_HEX_WIDTH
+#  define PRINTF_INT32_HEX_WIDTH "8"
+# endif
+# ifndef PRINTF_INT16_HEX_WIDTH
+#  define PRINTF_INT16_HEX_WIDTH "4"
+# endif
+# ifndef PRINTF_INT8_HEX_WIDTH
+#  define PRINTF_INT8_HEX_WIDTH "2"
+# endif
+# ifndef PRINTF_INT64_DEC_WIDTH
+#  define PRINTF_INT64_DEC_WIDTH "20"
+# endif
+# ifndef PRINTF_INT32_DEC_WIDTH
+#  define PRINTF_INT32_DEC_WIDTH "10"
+# endif
+# ifndef PRINTF_INT16_DEC_WIDTH
+#  define PRINTF_INT16_DEC_WIDTH "5"
+# endif
+# ifndef PRINTF_INT8_DEC_WIDTH
+#  define PRINTF_INT8_DEC_WIDTH "3"
+# endif
+# ifndef PRINTF_INTMAX_HEX_WIDTH
+#  define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT64_HEX_WIDTH
+# endif
+# ifndef PRINTF_INTMAX_DEC_WIDTH
+#  define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT64_DEC_WIDTH
+# endif
+
+/*
+ *  Something really weird is going on with Open Watcom.  Just pull some of
+ *  these duplicated definitions from Open Watcom's stdint.h file for now.
+ */
+
+# if defined (__WATCOMC__) && __WATCOMC__ >= 1250
+#  if !defined (INT64_C)
+#   define INT64_C(x)   (x + (INT64_MAX - INT64_MAX))
+#  endif
+#  if !defined (UINT64_C)
+#   define UINT64_C(x)  (x + (UINT64_MAX - UINT64_MAX))
+#  endif
+#  if !defined (INT32_C)
+#   define INT32_C(x)   (x + (INT32_MAX - INT32_MAX))
+#  endif
+#  if !defined (UINT32_C)
+#   define UINT32_C(x)  (x + (UINT32_MAX - UINT32_MAX))
+#  endif
+#  if !defined (INT16_C)
+#   define INT16_C(x)   (x)
+#  endif
+#  if !defined (UINT16_C)
+#   define UINT16_C(x)  (x)
+#  endif
+#  if !defined (INT8_C)
+#   define INT8_C(x)   (x)
+#  endif
+#  if !defined (UINT8_C)
+#   define UINT8_C(x)  (x)
+#  endif
+#  if !defined (UINT64_MAX)
+#   define UINT64_MAX  18446744073709551615ULL
+#  endif
+#  if !defined (INT64_MAX)
+#   define INT64_MAX  9223372036854775807LL
+#  endif
+#  if !defined (UINT32_MAX)
+#   define UINT32_MAX  4294967295UL
+#  endif
+#  if !defined (INT32_MAX)
+#   define INT32_MAX  2147483647L
+#  endif
+#  if !defined (INTMAX_MAX)
+#   define INTMAX_MAX INT64_MAX
+#  endif
+#  if !defined (INTMAX_MIN)
+#   define INTMAX_MIN INT64_MIN
+#  endif
+# endif
+#endif
+
+#ifndef _PSTDINT_H_INCLUDED
+#define _PSTDINT_H_INCLUDED
+
+#ifndef SIZE_MAX
+# define SIZE_MAX (~(size_t)0)
+#endif
+
+/*
+ *  Deduce the type assignments from limits.h under the assumption that
+ *  integer sizes in bits are powers of 2, and follow the ANSI
+ *  definitions.
+ */
+
+#ifndef UINT8_MAX
+# define UINT8_MAX 0xff
+#endif
+#ifndef uint8_t
+# if (UCHAR_MAX == UINT8_MAX) || defined (S_SPLINT_S)
+    typedef unsigned char uint8_t;
+#   define UINT8_C(v) ((uint8_t) v)
+# else
+#   error "Platform not supported"
+# endif
+#endif
+
+#ifndef INT8_MAX
+# define INT8_MAX 0x7f
+#endif
+#ifndef INT8_MIN
+# define INT8_MIN INT8_C(0x80)
+#endif
+#ifndef int8_t
+# if (SCHAR_MAX == INT8_MAX) || defined (S_SPLINT_S)
+    typedef signed char int8_t;
+#   define INT8_C(v) ((int8_t) v)
+# else
+#   error "Platform not supported"
+# endif
+#endif
+
+#ifndef UINT16_MAX
+# define UINT16_MAX 0xffff
+#endif
+#ifndef uint16_t
+#if (UINT_MAX == UINT16_MAX) || defined (S_SPLINT_S)
+  typedef unsigned int uint16_t;
+# ifndef PRINTF_INT16_MODIFIER
+#  define PRINTF_INT16_MODIFIER ""
+# endif
+# define UINT16_C(v) ((uint16_t) (v))
+#elif (USHRT_MAX == UINT16_MAX)
+  typedef unsigned short uint16_t;
+# define UINT16_C(v) ((uint16_t) (v))
+# ifndef PRINTF_INT16_MODIFIER
+#  define PRINTF_INT16_MODIFIER "h"
+# endif
+#else
+#error "Platform not supported"
+#endif
+#endif
+
+#ifndef INT16_MAX
+# define INT16_MAX 0x7fff
+#endif
+#ifndef INT16_MIN
+# define INT16_MIN INT16_C(0x8000)
+#endif
+#ifndef int16_t
+#if (INT_MAX == INT16_MAX) || defined (S_SPLINT_S)
+  typedef signed int int16_t;
+# define INT16_C(v) ((int16_t) (v))
+# ifndef PRINTF_INT16_MODIFIER
+#  define PRINTF_INT16_MODIFIER ""
+# endif
+#elif (SHRT_MAX == INT16_MAX)
+  typedef signed short int16_t;
+# define INT16_C(v) ((int16_t) (v))
+# ifndef PRINTF_INT16_MODIFIER
+#  define PRINTF_INT16_MODIFIER "h"
+# endif
+#else
+#error "Platform not supported"
+#endif
+#endif
+
+#ifndef UINT32_MAX
+# define UINT32_MAX (0xffffffffUL)
+#endif
+#ifndef uint32_t
+#if (ULONG_MAX == UINT32_MAX) || defined (S_SPLINT_S)
+  typedef unsigned long uint32_t;
+# define UINT32_C(v) v ## UL
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER "l"
+# endif
+#elif (UINT_MAX == UINT32_MAX)
+  typedef unsigned int uint32_t;
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER ""
+# endif
+# define UINT32_C(v) v ## U
+#elif (USHRT_MAX == UINT32_MAX)
+  typedef unsigned short uint32_t;
+# define UINT32_C(v) ((unsigned short) (v))
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER ""
+# endif
+#else
+#error "Platform not supported"
+#endif
+#endif
+
+#ifndef INT32_MAX
+# define INT32_MAX (0x7fffffffL)
+#endif
+#ifndef INT32_MIN
+# define INT32_MIN INT32_C(0x80000000)
+#endif
+#ifndef int32_t
+#if (LONG_MAX == INT32_MAX) || defined (S_SPLINT_S)
+  typedef signed long int32_t;
+# define INT32_C(v) v ## L
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER "l"
+# endif
+#elif (INT_MAX == INT32_MAX)
+  typedef signed int int32_t;
+# define INT32_C(v) v
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER ""
+# endif
+#elif (SHRT_MAX == INT32_MAX)
+  typedef signed short int32_t;
+# define INT32_C(v) ((short) (v))
+# ifndef PRINTF_INT32_MODIFIER
+#  define PRINTF_INT32_MODIFIER ""
+# endif
+#else
+#error "Platform not supported"
+#endif
+#endif
+
+/*
+ *  The macro stdint_int64_defined is temporarily used to record
+ *  whether or not 64 integer support is available.  It must be
+ *  defined for any 64 integer extensions for new platforms that are
+ *  added.
+ */
+
+#undef stdint_int64_defined
+#if (defined(__STDC__) && defined(__STDC_VERSION__)) || defined (S_SPLINT_S)
+# if (__STDC__ && __STDC_VERSION >= 199901L) || defined (S_SPLINT_S)
+#  define stdint_int64_defined
+   typedef long long int64_t;
+   typedef unsigned long long uint64_t;
+#  define UINT64_C(v) v ## ULL
+#  define  INT64_C(v) v ## LL
+#  ifndef PRINTF_INT64_MODIFIER
+#   define PRINTF_INT64_MODIFIER "ll"
+#  endif
+# endif
+#endif
+
+#if !defined (stdint_int64_defined)
+# if defined(__GNUC__)
+#  define stdint_int64_defined
+   __extension__ typedef long long int64_t;
+   __extension__ typedef unsigned long long uint64_t;
+#  define UINT64_C(v) v ## ULL
+#  define  INT64_C(v) v ## LL
+#  ifndef PRINTF_INT64_MODIFIER
+#   define PRINTF_INT64_MODIFIER "ll"
+#  endif
+# elif defined(__MWERKS__) || defined (__SUNPRO_C) || defined (__SUNPRO_CC) || defined (__APPLE_CC__) || defined (_LONG_LONG) || defined (_CRAYC) || defined (S_SPLINT_S)
+#  define stdint_int64_defined
+   typedef long long int64_t;
+   typedef unsigned long long uint64_t;
+#  define UINT64_C(v) v ## ULL
+#  define  INT64_C(v) v ## LL
+#  ifndef PRINTF_INT64_MODIFIER
+#   define PRINTF_INT64_MODIFIER "ll"
+#  endif
+# elif (defined(__WATCOMC__) && defined(__WATCOM_INT64__)) || (defined(_MSC_VER) && _INTEGRAL_MAX_BITS >= 64) || (defined (__BORLANDC__) && __BORLANDC__ > 0x460) || defined (__alpha) || defined (__DECC)
+#  define stdint_int64_defined
+   typedef __int64 int64_t;
+   typedef unsigned __int64 uint64_t;
+#  define UINT64_C(v) v ## UI64
+#  define  INT64_C(v) v ## I64
+#  ifndef PRINTF_INT64_MODIFIER
+#   define PRINTF_INT64_MODIFIER "I64"
+#  endif
+# endif
+#endif
+
+#if !defined (LONG_LONG_MAX) && defined (INT64_C)
+# define LONG_LONG_MAX INT64_C (9223372036854775807)
+#endif
+#ifndef ULONG_LONG_MAX
+# define ULONG_LONG_MAX UINT64_C (18446744073709551615)
+#endif
+
+#if !defined (INT64_MAX) && defined (INT64_C)
+# define INT64_MAX INT64_C (9223372036854775807)
+#endif
+#if !defined (INT64_MIN) && defined (INT64_C)
+# define INT64_MIN INT64_C (-9223372036854775808)
+#endif
+#if !defined (UINT64_MAX) && defined (INT64_C)
+# define UINT64_MAX UINT64_C (18446744073709551615)
+#endif
+
+/*
+ *  Width of hexadecimal for number field.
+ */
+
+#ifndef PRINTF_INT64_HEX_WIDTH
+# define PRINTF_INT64_HEX_WIDTH "16"
+#endif
+#ifndef PRINTF_INT32_HEX_WIDTH
+# define PRINTF_INT32_HEX_WIDTH "8"
+#endif
+#ifndef PRINTF_INT16_HEX_WIDTH
+# define PRINTF_INT16_HEX_WIDTH "4"
+#endif
+#ifndef PRINTF_INT8_HEX_WIDTH
+# define PRINTF_INT8_HEX_WIDTH "2"
+#endif
+
+#ifndef PRINTF_INT64_DEC_WIDTH
+# define PRINTF_INT64_DEC_WIDTH "20"
+#endif
+#ifndef PRINTF_INT32_DEC_WIDTH
+# define PRINTF_INT32_DEC_WIDTH "10"
+#endif
+#ifndef PRINTF_INT16_DEC_WIDTH
+# define PRINTF_INT16_DEC_WIDTH "5"
+#endif
+#ifndef PRINTF_INT8_DEC_WIDTH
+# define PRINTF_INT8_DEC_WIDTH "3"
+#endif
+
+/*
+ *  Ok, lets not worry about 128 bit integers for now.  Moore's law says
+ *  we don't need to worry about that until about 2040 at which point
+ *  we'll have bigger things to worry about.
+ */
+
+#ifdef stdint_int64_defined
+  typedef int64_t intmax_t;
+  typedef uint64_t uintmax_t;
+# define  INTMAX_MAX   INT64_MAX
+# define  INTMAX_MIN   INT64_MIN
+# define UINTMAX_MAX  UINT64_MAX
+# define UINTMAX_C(v) UINT64_C(v)
+# define  INTMAX_C(v)  INT64_C(v)
+# ifndef PRINTF_INTMAX_MODIFIER
+#   define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER
+# endif
+# ifndef PRINTF_INTMAX_HEX_WIDTH
+#  define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT64_HEX_WIDTH
+# endif
+# ifndef PRINTF_INTMAX_DEC_WIDTH
+#  define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT64_DEC_WIDTH
+# endif
+#else
+  typedef int32_t intmax_t;
+  typedef uint32_t uintmax_t;
+# define  INTMAX_MAX   INT32_MAX
+# define UINTMAX_MAX  UINT32_MAX
+# define UINTMAX_C(v) UINT32_C(v)
+# define  INTMAX_C(v)  INT32_C(v)
+# ifndef PRINTF_INTMAX_MODIFIER
+#   define PRINTF_INTMAX_MODIFIER PRINTF_INT32_MODIFIER
+# endif
+# ifndef PRINTF_INTMAX_HEX_WIDTH
+#  define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT32_HEX_WIDTH
+# endif
+# ifndef PRINTF_INTMAX_DEC_WIDTH
+#  define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT32_DEC_WIDTH
+# endif
+#endif
+
+/*
+ *  Because this file currently only supports platforms which have
+ *  precise powers of 2 as bit sizes for the default integers, the
+ *  least definitions are all trivial.  Its possible that a future
+ *  version of this file could have different definitions.
+ */
+
+#ifndef stdint_least_defined
+  typedef   int8_t   int_least8_t;
+  typedef  uint8_t  uint_least8_t;
+  typedef  int16_t  int_least16_t;
+  typedef uint16_t uint_least16_t;
+  typedef  int32_t  int_least32_t;
+  typedef uint32_t uint_least32_t;
+# define PRINTF_LEAST32_MODIFIER PRINTF_INT32_MODIFIER
+# define PRINTF_LEAST16_MODIFIER PRINTF_INT16_MODIFIER
+# define  UINT_LEAST8_MAX  UINT8_MAX
+# define   INT_LEAST8_MAX   INT8_MAX
+# define UINT_LEAST16_MAX UINT16_MAX
+# define  INT_LEAST16_MAX  INT16_MAX
+# define UINT_LEAST32_MAX UINT32_MAX
+# define  INT_LEAST32_MAX  INT32_MAX
+# define   INT_LEAST8_MIN   INT8_MIN
+# define  INT_LEAST16_MIN  INT16_MIN
+# define  INT_LEAST32_MIN  INT32_MIN
+# ifdef stdint_int64_defined
+    typedef  int64_t  int_least64_t;
+    typedef uint64_t uint_least64_t;
+#   define PRINTF_LEAST64_MODIFIER PRINTF_INT64_MODIFIER
+#   define UINT_LEAST64_MAX UINT64_MAX
+#   define  INT_LEAST64_MAX  INT64_MAX
+#   define  INT_LEAST64_MIN  INT64_MIN
+# endif
+#endif
+#undef stdint_least_defined
+
+/*
+ *  The ANSI C committee pretending to know or specify anything about
+ *  performance is the epitome of misguided arrogance.  The mandate of
+ *  this file is to *ONLY* ever support that absolute minimum
+ *  definition of the fast integer types, for compatibility purposes.
+ *  No extensions, and no attempt to suggest what may or may not be a
+ *  faster integer type will ever be made in this file.  Developers are
+ *  warned to stay away from these types when using this or any other
+ *  stdint.h.
+ */
+
+typedef   int_least8_t   int_fast8_t;
+typedef  uint_least8_t  uint_fast8_t;
+typedef  int_least16_t  int_fast16_t;
+typedef uint_least16_t uint_fast16_t;
+typedef  int_least32_t  int_fast32_t;
+typedef uint_least32_t uint_fast32_t;
+#define  UINT_FAST8_MAX  UINT_LEAST8_MAX
+#define   INT_FAST8_MAX   INT_LEAST8_MAX
+#define UINT_FAST16_MAX UINT_LEAST16_MAX
+#define  INT_FAST16_MAX  INT_LEAST16_MAX
+#define UINT_FAST32_MAX UINT_LEAST32_MAX
+#define  INT_FAST32_MAX  INT_LEAST32_MAX
+#define   INT_FAST8_MIN   INT_LEAST8_MIN
+#define  INT_FAST16_MIN  INT_LEAST16_MIN
+#define  INT_FAST32_MIN  INT_LEAST32_MIN
+#ifdef stdint_int64_defined
+  typedef  int_least64_t  int_fast64_t;
+  typedef uint_least64_t uint_fast64_t;
+# define UINT_FAST64_MAX UINT_LEAST64_MAX
+# define  INT_FAST64_MAX  INT_LEAST64_MAX
+# define  INT_FAST64_MIN  INT_LEAST64_MIN
+#endif
+
+#undef stdint_int64_defined
+
+/*
+ *  Whatever piecemeal, per compiler thing we can do about the wchar_t
+ *  type limits.
+ */
+
+#if defined(__WATCOMC__) || defined(_MSC_VER) || defined (__GNUC__)
+# include <wchar.h>
+# ifndef WCHAR_MIN
+#  define WCHAR_MIN 0
+# endif
+# ifndef WCHAR_MAX
+#  define WCHAR_MAX ((wchar_t)-1)
+# endif
+#endif
+
+/*
+ *  Whatever piecemeal, per compiler/platform thing we can do about the
+ *  (u)intptr_t types and limits.
+ */
+
+#if defined (_MSC_VER) && defined (_UINTPTR_T_DEFINED)
+# define STDINT_H_UINTPTR_T_DEFINED
+#endif
+
+#ifndef STDINT_H_UINTPTR_T_DEFINED
+# if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (_WIN64)
+#  define stdint_intptr_bits 64
+# elif defined (__WATCOMC__) || defined (__TURBOC__)
+#  if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
+#    define stdint_intptr_bits 16
+#  else
+#    define stdint_intptr_bits 32
+#  endif
+# elif defined (__i386__) || defined (_WIN32) || defined (WIN32)
+#  define stdint_intptr_bits 32
+# elif defined (__INTEL_COMPILER)
+/* TODO -- what will Intel do about x86-64? */
+# endif
+
+# ifdef stdint_intptr_bits
+#  define stdint_intptr_glue3_i(a,b,c)  a##b##c
+#  define stdint_intptr_glue3(a,b,c)    stdint_intptr_glue3_i(a,b,c)
+#  ifndef PRINTF_INTPTR_MODIFIER
+#    define PRINTF_INTPTR_MODIFIER      stdint_intptr_glue3(PRINTF_INT,stdint_intptr_bits,_MODIFIER)
+#  endif
+#  ifndef PTRDIFF_MAX
+#    define PTRDIFF_MAX                 stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX)
+#  endif
+#  ifndef PTRDIFF_MIN
+#    define PTRDIFF_MIN                 stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN)
+#  endif
+#  ifndef UINTPTR_MAX
+#    define UINTPTR_MAX                 stdint_intptr_glue3(UINT,stdint_intptr_bits,_MAX)
+#  endif
+#  ifndef INTPTR_MAX
+#    define INTPTR_MAX                  stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX)
+#  endif
+#  ifndef INTPTR_MIN
+#    define INTPTR_MIN                  stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN)
+#  endif
+#  ifndef INTPTR_C
+#    define INTPTR_C(x)                 stdint_intptr_glue3(INT,stdint_intptr_bits,_C)(x)
+#  endif
+#  ifndef UINTPTR_C
+#    define UINTPTR_C(x)                stdint_intptr_glue3(UINT,stdint_intptr_bits,_C)(x)
+#  endif
+  typedef stdint_intptr_glue3(uint,stdint_intptr_bits,_t) uintptr_t;
+  typedef stdint_intptr_glue3( int,stdint_intptr_bits,_t)  intptr_t;
+# else
+/* TODO -- This following is likely wrong for some platforms, and does
+   nothing for the definition of uintptr_t. */
+  typedef ptrdiff_t intptr_t;
+# endif
+# define STDINT_H_UINTPTR_T_DEFINED
+#endif
+
+/*
+ *  Assumes sig_atomic_t is signed and we have a 2s complement machine.
+ */
+
+#ifndef SIG_ATOMIC_MAX
+# define SIG_ATOMIC_MAX ((((sig_atomic_t) 1) << (sizeof (sig_atomic_t)*CHAR_BIT-1)) - 1)
+#endif
+
+#endif
+
+#if defined (__TEST_PSTDINT_FOR_CORRECTNESS)
+
+/*
+ *  Please compile with the maximum warning settings to make sure macros are not
+ *  defined more than once.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define glue3_aux(x,y,z) x ## y ## z
+#define glue3(x,y,z) glue3_aux(x,y,z)
+
+#define DECLU(bits) glue3(uint,bits,_t) glue3(u,bits,=) glue3(UINT,bits,_C) (0);
+#define DECLI(bits) glue3(int,bits,_t) glue3(i,bits,=) glue3(INT,bits,_C) (0);
+
+#define DECL(us,bits) glue3(DECL,us,) (bits)
+
+#define TESTUMAX(bits) glue3(u,bits,=) glue3(~,u,bits); if (glue3(UINT,bits,_MAX) glue3(!=,u,bits)) printf ("Something wrong with UINT%d_MAX\n", bits)
+
+int main () {
+	DECL(I,8)
+	DECL(U,8)
+	DECL(I,16)
+	DECL(U,16)
+	DECL(I,32)
+	DECL(U,32)
+#ifdef INT64_MAX
+	DECL(I,64)
+	DECL(U,64)
+#endif
+	intmax_t imax = INTMAX_C(0);
+	uintmax_t umax = UINTMAX_C(0);
+	char str0[256], str1[256];
+
+	sprintf (str0, "%d %x\n", 0, ~0);
+
+	sprintf (str1, "%d %x\n",  i8, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with i8 : %s\n", str1);
+	sprintf (str1, "%u %x\n",  u8, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with u8 : %s\n", str1);
+	sprintf (str1, "%d %x\n",  i16, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with i16 : %s\n", str1);
+	sprintf (str1, "%u %x\n",  u16, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with u16 : %s\n", str1);
+	sprintf (str1, "%" PRINTF_INT32_MODIFIER "d %x\n",  i32, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with i32 : %s\n", str1);
+	sprintf (str1, "%" PRINTF_INT32_MODIFIER "u %x\n",  u32, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with u32 : %s\n", str1);
+#ifdef INT64_MAX
+	sprintf (str1, "%" PRINTF_INT64_MODIFIER "d %x\n",  i64, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with i64 : %s\n", str1);
+#endif
+	sprintf (str1, "%" PRINTF_INTMAX_MODIFIER "d %x\n",  imax, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with imax : %s\n", str1);
+	sprintf (str1, "%" PRINTF_INTMAX_MODIFIER "u %x\n",  umax, ~0);
+	if (0 != strcmp (str0, str1)) printf ("Something wrong with umax : %s\n", str1);
+
+	TESTUMAX(8);
+	TESTUMAX(16);
+	TESTUMAX(32);
+#ifdef INT64_MAX
+	TESTUMAX(64);
+#endif
+
+	return EXIT_SUCCESS;
+}
+
+#endif
diff --git a/win32/gl/strcase.h b/win32/gl/strcase.h
new file mode 100644
index 0000000..27a2b55
--- /dev/null
+++ b/win32/gl/strcase.h
@@ -0,0 +1,46 @@
+/* Case-insensitive string comparison functions.
+   Copyright (C) 1995-1996, 2001, 2003, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifndef _STRCASE_H
+#define _STRCASE_H
+
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.
+   Note: This function may, in multibyte locales, return 0 for strings of
+   different lengths!  */
+    extern int strcasecmp(const char *s1, const char *s2);
+
+/* Compare no more than N characters of strings S1 and S2, ignoring case,
+   returning less than, equal to or greater than zero if S1 is
+   lexicographically less than, equal to or greater than S2.
+   Note: This function cannot work correctly in multibyte locales.  */
+    extern int strncasecmp(const char *s1, const char *s2, size_t n);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif                          /* _STRCASE_H */
diff --git a/win32/gl/strcasecmp.c b/win32/gl/strcasecmp.c
new file mode 100644
index 0000000..e812444
--- /dev/null
+++ b/win32/gl/strcasecmp.c
@@ -0,0 +1,100 @@
+/* Case-insensitive string comparison function.
+   Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno at clisp.org>, 2005,
+   based on earlier glibc code.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification.  */
+#include "strcase.h"
+
+#include <ctype.h>
+#include <limits.h>
+
+#if HAVE_MBRTOWC
+# include "mbuiter.h"
+#endif
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.
+   Note: This function may, in multibyte locales, return 0 for strings of
+   different lengths!  */
+int strcasecmp(const char *s1, const char *s2)
+{
+    if (s1 == s2)
+        return 0;
+
+    /* Be careful not to look at the entire extent of s1 or s2 until needed.
+       This is useful because when two strings differ, the difference is
+       most often already in the very few first characters.  */
+#if HAVE_MBRTOWC
+    if (MB_CUR_MAX > 1) {
+        mbui_iterator_t iter1;
+        mbui_iterator_t iter2;
+
+        mbui_init(iter1, s1);
+        mbui_init(iter2, s2);
+
+        while (mbui_avail(iter1) && mbui_avail(iter2)) {
+            int cmp = mb_casecmp(mbui_cur(iter1), mbui_cur(iter2));
+
+            if (cmp != 0)
+                return cmp;
+
+            mbui_advance(iter1);
+            mbui_advance(iter2);
+        }
+        if (mbui_avail(iter1))
+            /* s2 terminated before s1.  */
+            return 1;
+        if (mbui_avail(iter2))
+            /* s1 terminated before s2.  */
+            return -1;
+        return 0;
+    } else
+#endif
+    {
+        const unsigned char *p1 = (const unsigned char *) s1;
+        const unsigned char *p2 = (const unsigned char *) s2;
+        unsigned char c1, c2;
+
+        do {
+            c1 = TOLOWER(*p1);
+            c2 = TOLOWER(*p2);
+
+            if (c1 == '\0')
+                break;
+
+            ++p1;
+            ++p2;
+        }
+        while (c1 == c2);
+
+        if (UCHAR_MAX <= INT_MAX)
+            return c1 - c2;
+        else
+            /* On machines where 'char' and 'int' are types of the same size, the
+               difference of two 'unsigned char' values - including the sign bit -
+               doesn't fit in an 'int'.  */
+            return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+    }
+}
diff --git a/win32/gl/strncasecmp.c b/win32/gl/strncasecmp.c
new file mode 100644
index 0000000..3e3b954
--- /dev/null
+++ b/win32/gl/strncasecmp.c
@@ -0,0 +1,63 @@
+/* strncasecmp.c -- case insensitive string comparator
+   Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification.  */
+#include "strcase.h"
+
+#include <ctype.h>
+#include <limits.h>
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* Compare no more than N bytes of strings S1 and S2,
+   ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less
+   than, equal to or greater than S2.  */
+
+int strncasecmp(const char *s1, const char *s2, size_t n)
+{
+    register const unsigned char *p1 = (const unsigned char *) s1;
+    register const unsigned char *p2 = (const unsigned char *) s2;
+    unsigned char c1, c2;
+
+    if (p1 == p2 || n == 0)
+        return 0;
+
+    do {
+        c1 = TOLOWER(*p1);
+        c2 = TOLOWER(*p2);
+
+        if (--n == 0 || c1 == '\0')
+            break;
+
+        ++p1;
+        ++p2;
+    }
+    while (c1 == c2);
+
+    if (UCHAR_MAX <= INT_MAX)
+        return c1 - c2;
+    else
+        /* On machines where 'char' and 'int' are types of the same size, the
+           difference of two 'unsigned char' values - including the sign bit -
+           doesn't fit in an 'int'.  */
+        return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
diff --git a/win32/gl/strnlen1.c b/win32/gl/strnlen1.c
new file mode 100644
index 0000000..54c9fe9
--- /dev/null
+++ b/win32/gl/strnlen1.c
@@ -0,0 +1,38 @@
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Library General Public License as published
+   by the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification.  */
+#include "strnlen1.h"
+
+#include <string.h>
+
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   If no '\0' terminator is found in that many characters, return MAXLEN.  */
+/* This is the same as strnlen (string, maxlen - 1) + 1.  */
+size_t strnlen1(const char *string, size_t maxlen)
+{
+    const char *end = memchr(string, '\0', maxlen);
+    if (end != NULL)
+        return end - string + 1;
+    else
+        return maxlen;
+}
diff --git a/win32/gl/strnlen1.h b/win32/gl/strnlen1.h
new file mode 100644
index 0000000..5498f31
--- /dev/null
+++ b/win32/gl/strnlen1.h
@@ -0,0 +1,39 @@
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Library General Public License as published
+   by the Free Software Foundation; either version 2.1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+#ifndef _STRNLEN1_H
+#define _STRNLEN1_H
+
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+   If no '\0' terminator is found in that many characters, return MAXLEN.  */
+/* This is the same as strnlen (string, maxlen - 1) + 1.  */
+    extern size_t strnlen1(const char *string, size_t maxlen);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif                          /* _STRNLEN1_H */
diff --git a/xdr-datatypes.h b/xdr-datatypes.h
deleted file mode 100644
index 9167595..0000000
--- a/xdr-datatypes.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* xdr-datatypes-config.h.  Generated from xdr-datatypes-config.h.in by configure.  */
-
-/*
-  Determine at compile-time the sizes of various XDR datatypes. This uses
-  symbols defined by configure (See configure.in). pcw 08/13/07
-*/
-
-#ifndef __XDR_DATATYPES__
-#define __XDR_DATATYPES__
-
-#ifdef WIN32
-#include <rpc.h>
-#include <winsock2.h>
-#include <xdr.h>
-#else
-#include <rpc/types.h>
-#include <netinet/in.h>
-#include <rpc/xdr.h>
-#endif
-
-
-#define XDR_INT32 xdr_int32_t
-#define XDR_UINT32 xdr_u_int32_t
-
-#define XDR_INT16 xdr_int16_t
-#define XDR_UINT16 xdr_u_int16_t
-
-#define XDR_FLOAT64 xdr_double
-#define XDR_FLOAT32 xdr_float
-
-#endif /* __XDR_DATATYPES__ */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/libdap.git



More information about the debian-science-commits mailing list