[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