Comments on building GrADS from source

Patrice Dumas pertusus at FREE.FR
Fri Oct 28 04:13:49 EDT 2005


> It's not that mysterious why it doesn't work - the libdap API has
> apparently changed.  The gadods sources are trying to load header
> files from libdap that don't exist in libdap 3.5.2.

There are other changes too. The interface to Lists seems to have changed
as you said, so I commented out everything that is related with the List
class, but now there is another difference in the API, as request_das() and
request_dds() and request_data() seems to have changed interface:

For request_dds:

gaConnect.cc: In constructor 'gaConnect::gaConnect(std::string, bool, bool, std::string, std::string)':
gaConnect.cc:39: error: no matching function for call to 'gaConnect::request_dds()'
/usr/include/libdap/Connect.h:205: note: candidates are: virtual void Connect::request_dds(DDS&, std::string)
/usr/include/libdap/Connect.h:225: note:                 bool Connect::request_dds(bool, const std::string&)

For request_das:

gaConnect.cc:40: error: no matching function for call to 'gaConnect::request_das()'
/usr/include/libdap/Connect.h:201: note: candidates are: virtual void Connect::request_das(DAS&)
/usr/include/libdap/Connect.h:237: note:                 bool Connect::request_das(bool, const std::string&)

And request_data:

gaConnect.cc: In member function 'gaReports* gaConnect::getReports(GADODS_STN_QUERY*)':
gaConnect.cc:375: error: no matching function for call to 'gaConnect::request_data(std::string)'
/usr/include/libdap/Connect.h:210: note: candidates are: virtual void Connect::request_data(DataDDS&, std::string)
/usr/include/libdap/Connect.h:231: note:                 DDS* Connect::request_data(std::string, bool, bool, const std::string&)

> gadods
> libdap 3.5.2
> libnc-dap 3.5.2
> libwww 5.4.0
> rx 1.5

libwww and librx aren't needed anymore with libdap 3.5.2, but libxml2 and
curl are required. They are needed by the autoconf macros supplied with
grads which are tailored for an older libdap version. In the macros I
proposed, this requirement is dropped and they should detect old dods (I used
the grads checks) up to 3.5.2 (although I only tested 3.4 and 3.5).

The most problematic issue is between gadods/libdap 3.5.2 because of the API
changes. I'll ask on the dods-tech mailing list, maybe others faced that API
changes, too.

And there is also the issue of backward compatibility with the dods library
used in grads. I don't know how easy it is to find out which API is used
at compile time.

--
Pat



More information about the gradsusr mailing list