NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

[netcdfgroup] hdf5 dependency of libnetcdf

Hi there
when compiling netCDF with HDF5 backend it is quite a pain to tell users
they need to also link to libhdf5 and libhdf5_hl. The attached patch to
libsrc4/Makefile.am tells libtool to produce a dynamic library which
automatically links to the required dependencies. So a user only needs
to link to libnetcdf and the linker resolves the dependencies for
libhdf5 and friends. I have also attached a script which reruns all the
autotools in the correct order to rebuild the build system. This file is
taken from the gimp project. I hope someone else finds this patch useful
and I'd be delighted if it went into the netCDF library.
Regards
magnus

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

Attachment: autogen.sh
Description: application/shellscript

--- ../netcdf-4.0-vanilla/libsrc4/Makefile.am   2008-06-09 17:32:46.000000000 
+0100
+++ libsrc4/Makefile.am 2009-06-02 16:57:39.032942353 +0100
@@ -19,19 +19,16 @@
 # If the user specified a root location for HDF5, use it.
 if USE_HDF5_DIR
 AM_CPPFLAGS += -I@HDF5DIR@/include
-AM_LDFLAGS += -L@HDF5DIR@/lib
 endif
 
 # If the user specified a root location for ZLIB, use it.
 if USE_ZLIB_DIR
 AM_CPPFLAGS += -I@ZLIBDIR@/include
-AM_LDFLAGS += -L@ZLIBDIR@/lib
 endif
 
 # If the user specified a root location for SZLIB, use it.
 if USE_SZLIB_DIR
 AM_CPPFLAGS += -I@SZLIBDIR@/include
-AM_LDFLAGS += -L@SZLIBDIR@/lib
 endif
 
 # Tell automake that netcdf.h is a header file we want to install.
@@ -63,6 +60,10 @@
 TST_V2 = tst_v2 
 endif
 
+# add the HDF5 libraries
+libnetcdf_la_LIBADD += -lhdf5_hl -lhdf5
+libnetcdf_la_LDFLAGS = -L@HDF5DIR@/lib -L@ZLIBDIR@/lib -L@SZLIBDIR@/lib
+
 # Netcdf-4 source.
 libnetcdf_la_SOURCES = nc4attr.c nc4internal.c nc4var.c netcdf3.h      \
 nc4dim.c nc4internal.h ncfunc.c nc4file.c netcdf.h error.c error.h     \
@@ -80,7 +81,7 @@
 
 endif # !BUILD_SEPARATE_FORTRAN
 # These linker flags specify libtool version info.
-libnetcdf_la_LDFLAGS = -version-number 5:0:0
+libnetcdf_la_LDFLAGS += -version-number 5:0:0
 
 # These programs are all built for make check in this directory.
 my_tests = tst_h_files tst_h_atts tst_h_atts2 tst_h_vars tst_h_vars2   \
@@ -103,7 +104,7 @@
 # sort out the MAX_INT problem. - Ed)
 
 # These linker flags will be applied to all test program compiles.
-LDADD = ${lib_LTLIBRARIES} -lhdf5_hl -lhdf5
+LDADD = ${lib_LTLIBRARIES} 
 
 # This header is used by all test programs.
 noinst_HEADERS = nc_tests.h
  • 2009 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: