3.10 Contributing to NetCDF Source Code Development
Most users will not be interested in working directly with the netCDF
source code. Rather, they will write programs which call netCDF
functions, and delve no further. However some intrepid users may wish
to dig into the netCDF code to study it, to try and spot bugs, or to
make modifications for their own purposes.
To work with the netCDF source code, several extra utilities are
required to fully build everything from source. If you are going to
modify the netCDF source code, you will need some or all of the
following Unix tools.
m4
- Macro processing language used heavily in libsrc, nc_test. Generates
(in these cases) C code from m4 source. Version 1.4 works fine with
release 3.5.1 through 3.6.2.
flex and yacc
- Used in ncgen directory to parse CDL files. Generates C files from .y
and .l files. You only need to use this to modify ncgen's understanding of
CDL grammar.
makeinfo
- Generates all documentation formats (except man pages) from texinfo
source. I'm using makeinfo version 4.8, as of release 3.6.2. If you
have trouble with makeinfo, upgrade to this version and try again. You
only need makeinfo if you want to modify the documentation.
tex
- Knuth's venerable typesetting system. The version I am running (for
netCDF release 3.6.2) is TeX 3.141592 (Web2C 7.5.4). I have found that
some recent installations of TeX will not build the netCDF
documentation - it's not clear to me why.
The user generally will just want to download the latest version of
netCDF documents at the netCDF website. http://www.unidata.ucar.edu/software/netcdf/docs.
autoconf
- Generates the configure script. Version 2.59 or later is required.
automake
- Since version 3.6.2 of netCDF, automake is used to generate the
Makefile.in files needed by the configure script to build the
Makefiles.
libtool
- Since version 3.6.2 of netCDF, libtool is used to help generate shared
libraries platforms which support them. Version 2.1a of libtool is
required.
sed
- This text processing tool is used to process some of the netCDF
examples before they are included in the tutorial. This is only needed
to build the documentation, which the user generally will not need to
do.
NetCDF has a large and enterprising user community, and a long history
of accepting user modifications into the netCDF code base. Examples
include the 64-bit offset format, and the F90 API.
All suggested changes and additions to netCDF code can be sent to
support@unidata.ucar.edu.