Re: broken installation

From: Rick Grubin (grubin AT XXXXXX)
Date: Thu Apr 22 2004 - 14:14:33 MDT

  • Next message: Enils Bashi: "can ncarg be used with apache?"

    Hi Glen,

    > I'm trying to install ncarg-4.3.1 from source, but the install process
    > seems to be broken. I run the configure script, and specify these
    > directories:
    >
    > /home/aqm/i386/ncarg/bin
    > /home/aqm/i386/ncarg/lib
    > /home/aqm/i386/ncarg/include
    > /home/aqm/i386/ncarg/man
    >
    > But then when I make everything it ends up installing things to
    > /home/aqm/1/ncarg instead. I redid everything, and noticed that inside
    > the makefile it listed /home/aqm/1/ncarg for everything instead of
    > /home/aqm/i386/ncarg. So I changed the makefile, ran make everything
    > again, and it still installed everything to /home/aqm/1/ncarg. And then
    > somehow the makefile had gotten changed back so that everything pointed
    > to /home/aqm/1/ncarg. So something's buggy somewhere, but I can't
    > figure out where. So if someone could lend a hand here I'd appriciate it.

    A confusing problem, to be sure. It turns out that nothing is actually
    broken -- the problem arises due to an accidentally unfortunate choice of
    directory path. Your choice of "i386" in the path to NCARG directories
    brings about a conflict when the C preprocessor -- cpp -- is used to parse
    text and create a Makefile.

    The configure script for NCARG ("Configure") makes use of various external
    tools to do its job -- locally created tools ("ymkmf" and "ymake" and
    "ymake-filter") and system tools ("cpp") for creating necessary Makefile
    files.

    The problem arises when the path you have entered for the NCARG
    installation -- /home/aqm/i386/ncarg/{bin,lib,include,man} -- is passed to
    the C preprocessor ("cpp -traditional ..."). The cpp does quite a bit of
    pattern matching and text processing; when it comes across the path you've
    specified, with the "i386" in it, a particular pattern is matched, and
    thus a "true" value (or, more literally, the value "1") is substituted.

    It turns out that any pattern in the set "i{3,4,5,6}86" will cause the
    same behavior, on that type of machine -- a host that uses the x86 chipset
    and is recognised as such by many tools. You'll get the same result on a
    Sparc host, using the pattern "sparc" in a directory specification, too.

    The solution is to not use a patter that matches the output of
        "uname -{i,m,o,p,s}"
    in the NCARG directory specifications. The software tools used to
    construct the necessary Makefile information relies on that information,
    and the tools dutifully do their job -- with unintended consequences!

    -Rick.

    --
    Rick Grubin                     Visualization + Enabling Technologies
    Scientific Computing Division   National Center for Atmospheric Research   
    grubin AT unknown                 303.497.1832
    

    _______________________________________________ ncarg-talk mailing list ncarg-talk AT unknown http://mailman.ucar.edu/mailman/listinfo/ncarg-talk



    This archive was generated by hypermail 2b29 : Thu Apr 22 2004 - 14:04:08 MDT