[ncl-install] v5.1.1: make fails due to macro substitution.

Mary Haley haley at ucar.edu
Mon Nov 9 17:28:07 MST 2009


Hi David,

You can get around the substitution by putting single ticks around  
the '-L/soft/local/hdf-eos/hdf-eos-2.14/hdfeos/lib/linux' in your  
$NCARG/config/LINUX or $NCARG/config/Site.local file, wherever it is.

However, did you see the HDF-EOS build instructions:

   http://www.ncl.ucar.edu/Download/build_from_src.shtml#HDFEOS2

These instructions suggest moving the "libhdfeos.a" file to another  
directory.

I see that you are linking directly to the external libraries in the  
directories that they live in the original source code directory.  
This might cause problems later with finding include files.  It's  
better to install all this external software to one single set of  
directories, like /usr/local/{lib,include,bin} so then you only need  
to have:

   -L/usr/local/lib -I/usr/local/include

on your compile line for all external software packages.

--Mary

On Nov 9, 2009, at 4:54 PM, David Brown wrote:

> I am doing a build for a Redhat (4) Linux cluster.  A previously
> installed package has "linux" in its path (e.g. hdfeos/lib/linux).  
> I do
> not believe this was an install decision as I see other architecture
> references (e.g. Mac) in the same lib folder. The above lib path is
> specified during "configure", but the associated top level Makefile  
> file
> has "1" substituted where "linux" is encountered in the lib path (i.e.
> hdfeos/lib/1).
>
> If I change this back to "linux" and run  "make",  I receive the
> following error:
>
> pgCC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/usr/local/ 
> include -O
> -Wl,--export-dynamic   -o ncl Ncl.o io.o NclHLUObj.o scanner.
> o parser.o MathFuncs.o NclTypedouble.o NclTypefloat.o
> ...
>
> -L../../.././ni/src/lib/nfp -lnfp -L../../.././ni/src/lib/nfpfort
> -lnfpfort -L../../.././ni/src/lib/hlu -lhlu
> -L../../.././ncarg2d/src/libncarg -lncarg
> ...
> -L/soft/local/hdf/hdf-4.2r3/lib
> -L/soft/local/hdf-eos/hdf-eos-2.14/hdfeos/lib/1   // This "1" was
> entered as "linux" as indicated above.
> ...
> -L../../.././external/lapack -llapack_ncl -L../../.././external/blas
> -lblas_ncl -lX11 -pgf90libs -lm  -ldl
> /usr/bin/ld: cannot find -lhdfeos
> make[3]: *** [ncl] Error 2
> make[3]: Leaving directory `/soft/local/ncl-5.1.1/ni/src/ncl'
>
> The associated "/soft/local/ncl-5.1.1/ni/src/ncl/Makefile" does not
> exist before the call to "make". After the call to "make" and the  
> above
> error occurs, the above Makefile is present and has the incorrect
> 'hdfeos' path. Furthermore, the top level makefile again has the
> incorrect path.
>
> This is the make call that is being executed:
>
>    make me Makefiles clean includes depend all
>
> There are multiple Makefile files affected by the substitution. As far
> as foiling the substitution through the usage of quoted paths, the
> "configure" tool does not accept such paths and the "make" process
> appears to be rewriting the Makefile files.
>
>
> Does anyone know of a way of preventing this substitution from taking
> place?
>
> Thanks in advance.
>
> David
>
>
>
> _______________________________________________
> ncl-install mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-install



More information about the ncl-install mailing list