408 Using Standard Tools to Package and Distribute Scientific Software C and Fortran Libraries: A Demonstration with the General Purpose Timing Library (GPTL)

Tuesday, 8 January 2019
Hall 4 (Phoenix Convention Center - West and North Buildings)
Edward J. Hartnett, NOAA, Boulder, CO
Manuscript (147.8 kB)

Handout (243.5 kB)

Important scientific C and Fortran software are frequently distributed without use of the standard GNU tools, autoconf, automake, and libtool. This results in considerable wasted effort for the distributors of the software, as they struggle to achieve portability with home-rolled methods. It also wastes the time of all software installers, which have to struggle to correctly build the software. In this poster I demonstrate the conversion of a scientific software package, the General Purpose Timing Library (GPTL) from a home-rolled build system to a standard build. This results in an order of magnitude decrease in build system complexity, measured by lines of code, and an increase in build system features for the user, including automatic shared library builds, standard configure options, and standard make options, as well as increased portability and ease of use. In this poster I demonstrate the ease with which a C/Fortran library may be converted to autoconf/automake/libtool, including discussion of interfacing to a C library in a portable way from Fortran code. As demonstrated by major scientific software packages like netCDF and HDF5, these tools can be used very effectively to package software portably, even software that is built and run on High Performance Computing (HPC) systems.
- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner