
Installing the NetCDF handler software for the OPeNDAP server.

Updated for Version 3.10.4 (23 April 2014)

---------------------------------------------------------------------------

BUILDING THE SOFTWARE
REQUIREMENTS
NOTES

---------------------------------------------------------------------------

BUILDING THE SOFTWARE

0) Please skim REQUIREMENTS and NOTES sections of this file before reporting
   problems. Thanks.

1) Type `./configure' at the system prompt. On some systems you may have to
   type `sh configure.' If you want this part of the server to install
   someplace other than /usr/local/bin, use --prefix to change the prefix
   from the default "/use/local/."
   
1a) Building/linking with the netcdf 4 API (which optionally uses HDF5) 
   should be automatic. If you think something's amiss look for output from 
   configure near the end of it's run that mentions 'nc-config'. Is it the
   one for your copy of the netcdf 4 library? If not, try using the 
   --with-netcdf options (./configure --help). Also be wary of having both
   the netcdf 3 and 4 API libraries; unless you're sure which one configure
   will find, build using --with-netcdf. If you are building this handler
   with netcdf 4 built using hdf5, you should see the hdf5 library linked
   into the handler. In most cases, this is all automatic...

2) Type `make' to build the server module/handler

3) Install the server component in $prefix by running `make install.'
   This will also add the new nc.conf file to the $prefix/etc/bes/modules
   directory. The BES configuration file bes.conf will automatically
   load any module configuration files in that directory. The nc.conf
   file contains fileout_netcdf specific configurations for use with the
   BES Framework. This includes some parameters that used to be in the
   bes.conf file, such as the TypeMatch parameter for finding your
   files.

4) For many installations, you must arrange for your operating system to find
   the shared libraries installed by default in $prefix/lib. Do this by
   either setting an environment variable such as LD_LIBRARY_PATH or by
   editing /etc/ld.so.conf. Different operating systems handle this in
   different ways.

Building from Our SVN Repository

  If you are building from a SVN checkout, run 'autoreconf --verbose'
  before './configure; make'. If you try to run autoconf, et c., by
  hand and wind up with build files that don't work, use 'autoreconf
  --install --force --verbose'. Once autoreconf has made the configure
  and Makefile.in files, do ./configure; make; make install as
  outlined above.

REQUIREMENTS

  o You need the libdap library version 3.11.0 to build and install this
    software. If you're using Linux, this means either building from source
    or using the libdap and libdap-devel RPM packages.

  o If you're planning on using this with the OPeNDAP 4 Data Server (Hyrax),
    you'll need version 3.9.0 of the BES software. Make sure to build that 
    first.

  o You also need a recent copy of netCDF. We've tested this server
    with netcdf version 3.6.3 and 4.1.2, although any recent version
    should work fine. If the configure script cannot find your copy of
    libnetcdf, use the --with-netcdf options to tell it where to look
    (see configure --help).
   
  o If the build will fails because of problems linking with the netcdf
    library, you may need to build the library from source and force the 
    compiler/linker to use the option '-fPIC' (poisition Independet Code).

  o You should have gcc/g++ 3.3.x or greater. You'll also need to get
    the stdc++ library that matches the compiler (whatever version).
    NB: gcc 2.8.x and earlier *won't* build the software. We're
    working on modifying the software so that it will build with a
    variety of compilers. As of 01/22/03 we have built the code using
    Microsoft's Visual C++ 6.0 and GNU gcc/++ 3.2.1, 3.3, 3.4 and 4.0.
    This code has also been built on OSX 10.9 using Apple LLVM version
    5.1 (clang-503.0.40) (based on LLVM 3.4svn).

NOTES

  o DEBUGGING AIDS

    - The OPeNDAP libdap library includes the following debugging aids that
      may be of help to you in developing new applications.

    - DBG: simple program instrumentation -- see the file debug.h distributed
      with libdap (which is installed in the libdap header directory; use
      'config-libdap --cflags' and look at the value if -I).

    - DBG2: more elaborate program instrumentation -- by convention this is
      used for output that is half a page or more, while DEBUG is used for
      single line output.

    - To build with program instrumentation use `--enable-debug=<level>'
      where <level> is 1 or 2.
