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

19990917: McIDAS make failure on RedHat Linux 5.2



>From: Erick Lorenz (address@hidden) <address@hidden>
>Organization: UC Davis
>Keywords: 199909172327.RAA00921 McIDAS-X Linux

Erick,

>I am resending this message because I just discovered that the machine
>that I was sending it from is not running sendmail and therefore
>probably cannot receive your answer if you just use "reply"

OK.

>I am trying to build McIDAS on a new Linux 5.2 host.  I think I have
>followed all the instructions and side issues but when I:
>
>       make mcx
>
>It fails.  The last few lines of the make log are as follows:
>-------------------------------------------
>  compile      wnvblk.for:             done
>  ./mccomp -O -vendor -I. -I../netcdf/libsrc -c woablk.for
>  cd /tmp/Mu2743
>  ln -s /home/mcidas/mcidas7.6/src/woablk.f .
>  ln -s /home/mcidas/mcidas7.6/src/hex80.inc .
>  ln -s /home/mcidas/mcidas7.6/src/syscon.inc .
>  ln -s /home/mcidas/mcidas7.6/src/sysnav.inc .
>  mcfc -c -O woablk.f
>  woablk.f:
>     woablk:
>  mv woablk.o /home/mcidas/mcidas7.6/src
>  compile      woablk.for:             done
>  ./mcar libmcidas.a dblg.o dnvblk.o indexx.o nvsyd.o rblg.o wblg.o
>  wnvblk.o
>  woablk.o
>  update       libmcidas.a:            done
>  ./convdlm mdxgra.dlm
>  ./mclog: ./convdlm: No such file or directory
>  convdlm      mdxgra.dlm:             FAILED
>-------------------------------------------
>Which suggest that the file convdlm does not exist and indeed I cannot
>find such a file in ~mcidas/mcidas7.6/src.
>Near the beginning of the log file there are the lines:
>------------------------------------------
>  ./mccomp -O -vendor -I. -I../netcdf/libsrc -c convdlmc.c
>  gcc -c -O -ansi -D_GNU_SOURCE -I/usr/X11R6/include -O -I.
>  -I../netcdf/libsrc convdlmc.c
>  compile convdlmc.c:             done
>  ./mccomp -O -vendor -I. -I../netcdf/libsrc -c convdlmf.f
>  mcfc -c -O convdlmf.f
>  convdlmf.f:
>     convdlm:
>     nchars:
>     len_trim:
>  compile convdlmf.f:             done
>  ./mccomp -O -s -vendor -o convdlm convdlmc.o convdlmf.o
>  mcfc -s -O -o convdlm convdlmc.o convdlmf.o -L/usr/local/lib
>  -L/usr/X11R6/lib -lf2c -ldl -lm
>  /usr/lib/libf2c.so: undefined reference to `MAIN__'
>  link    convdlm:                done
>-----------------------------------------
>Which seem to suggest that convdlm should have been created so I don't
>know why it isn't there.
>
>I don't know if it is related but I wasn't sure from the "Linux Users
>Pre-make Instrudtions" whether it was necessary for me to run
>tclconfig first.  I have actually tried it both ways with the same
>results.
>
>What do you suggest?

You missed the part in Notes and Warnings that related to gcc/f2c users.
(this includes all Linux users):

Since building McIDAS on Linux requires use of gcc and f2c, Linux users
should also review the notes for gcc/f2c Users.

gcc/f2c Users

For all Supported Platforms, McIDAS-X 7.60 is configured to be able to use a
combination of the GNU gcc and AT&T f2c utilities. In previous releases, one
also needed the Perl script fort77, but that has been replaced by the Bourne
shell script mcfc that is bundled with McIDAS-X.

To use gcc/f2c, one must: 

     use a version of gcc greater than or equal to 2.7.3 
     use a version of f2c released on or after August 1997 
     use the static f2c library, libf2c.a, when linking

     You need to link against the static f2c library, libf2c.a, since the shared
     version does not contain the needed entry point MAIN__.

     after your distribution is unpacked edit mcidas7.6/src/makefile and:

         change:
         VENDOR= -vendor

         to:
         VENDOR= 

One way to insure use of libf2c.a is illustrated in the following: 

As root: 

     Type: ln -s /usr/lib/libf2c.a /usr/local/lib/libf2c.a

As mcidas: 

Define the environment variable LD_LIBRARY_PATH so that the
/user/local/lib directory is searched before others when programs are linked.
For C-shell users, LD_LIBRARY_PATH would be set in .cshrc: 

     Type: cd /home/mcidas

     Edit .chsrc and add:

     setenv LD_LIBRARY_PATH /usr/local/lib:/lib:/usr/lib

After modifying .cshrc, make sure to make the changes active in your session: 

     Type: source .cshrc

>Thank you

After you setup the link of libf2c.a from /usr/lib to /usr/local/lib and
set the LD_LIBRARY_PATH environment variable for the user 'mcidas', your
build should proceed with out problems.

Tom Yoksas