Previous: Additional Porting Notes, Up: Building and Installing NetCDF on Unix Systems


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.