[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #DMW-679093]: Unable to run make check



Gaby,

> Right, it kind of seemed that way from the makefile which basically
> maps F90 to FC, I’ve tried to manually edit the make files and set
> FCFLAGS_f90 = FCFLAGS and has_f90=yes and at some point in the
> compile I get

Please don't manually edit the Makefiles (which must be generated 
by the configure script), because that is not necessary, and we can't 
support it.

> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
>  file: .libs/libnetcdff.a(module_netcdf_nc_data.o) has no symbols
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
>  file: .libs/libnetcdff.a(module_netcdf_nf_data.o) has no symbols
  ...

After changing an environment variable that affects the build, you
have to either start from a fresh source distribution or at least run
"make clean", before running configure and make again. From the above,
it appears that you're seeing results of leaving previously built
objects in the source directories without running configure or running
make again without regenerating the Makefiles that the environment
variables would affect.

We know the configure scripts and Makefiles they generate work,
because we have tested them on many platforms including Mac OSX, we
know other users have built from them successfully, and we know
package management systems, such as MacPorts and homebrew, have
successfully built (and make freely available) netCDF-C and
netCDF-Fortran libraries from them with the configure scripts we
distribute.

> So what is implied and what you’re saying is that fortran90 is no longer
> supported? Or that it is automatically supported and just appears not to
> be from the fc-config results?

Fortran-90 is automatically supported, if the configure script can
find a compiler for it, and similarly with Fortran-2003 and
Fortran-2008.  When I said the use of F90 is not what's documented, I
meant the environment variable "F90" for the configure script instead
of "FC", which is what is documented.  As it says in the instructions
for building the netCDF-Forrtran API:

  The configure script will try to determine suitable Fortran and C
  compilers for building netCDF Fortran, but you can instead specify
  them with the FC and CC environment variables, if needed.

For example, you should be able to use:

  CC=/sw/bin/gcc
  FC=/sw/bin/gfortran

to get Fortran-90 support if your installed gfortran is compatible
with your installed gcc and both installations are correctly
configured. 

> If the former I’ll need to let our people know if they ever intend to
> upgrade the packages, and we should probably upgrade to FTN 2003.

That's not necessary, netCDF-Fortran supports Fortran-90 and also
takes advantage of Fortran-2003 features such as C interoperability
if the compiler supports it (and recent versions of gfortran do).

If you would carefully follow the instructions here:

  http://www.unidata.ucar.edu/netcdf/docs/building_netcdf_fortran.html

from a freshly unpacked tarball, and if something goes wrong, send us
the config.log, we'll try to get this straightened out. But we can't
support any changes you make to the configure script or generated
Makefiles.

Another alternative you could try is building the netCDF-Fortran
library using "cmake" instead of configure, although that hasn't been
tested as well as the configure method, so is considered
experimental. Directions for that method of building are under the
"4.3.3-rc3 Released 2015-01-14" header here:

  https://github.com/Unidata/netcdf-c/blob/v4.3.3.1/RELEASE_NOTES.md

but I would recommend trying to get the currently well documented
autoconf build working instead.

--Russ


  

Russ Rew                                         UCAR Unidata Program
address@hidden                      http://www.unidata.ucar.edu



Ticket Details
===================
Ticket ID: DMW-679093
Department: Support netCDF
Priority: Normal
Status: Closed