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

20040510: Installing NetCDF 3.5.1 under Cygwin on Windows 2000



Jack,

>Date: Mon, 10 May 2004 11:55:15 -0500
>From: Jack Williams <address@hidden>
>Organization: Limnological Research Center
>To: Steve Emmerson <address@hidden>
>Subject: Re: 20040503: Installing NetCDF 3.5.1 under Cygwin on Windows 2000

The above message contained the following:

> >         A.  Replace the rule for targets "ncgentab.c" and "ncgentab.h"
> >             with the following
> >
> >                 bison -y -d ncgen.y
> >                 mv y.tab.c ncgentab.c
> >                 mv y.tab.h ncgentab.h
...
> Steps 1 & 2 were straightforward. 
> For step 3, I used "flex -l" in place of lex.  I replaced two instances 
> of $(yacc) with "bison -y" and two instances of  $(lex) with " flex -l" 
> with I also replaced. 

Interesting.  My flex(1) doesn't have a "-l" option.  It shouldn't
hurt.

> During step 4, I get the following error message... 
> 
> $ make
> Warning: ncgentab.c is out-of-date with respect to ncgen.y
> Warning: It should be recreated via yacc on an OSF/1 system
> gcc -c -O -I../libsrc -I.  -Df2cFortran ncgentab.c
> gcc: ncgentab.c: No such file or directory
> gcc: no input files
> make: *** [ncgentab.o] Error 1
>
> Not sure why Make isn't successfully creating ncgentab.c.  It does 
> appear to create ncgenyy.c successfully...  The modified and original 
> Makefiles are attached. 

You needed to REPLACE THE ENTIRE RULE for the "ncgentab.c" and
"ncgentab.h" targets, i.e., change

        ncgentab.c \
        ncgentab.h:     ncgen.y ncgenyy.c ncgen.h
                @case `uname` in \
                OSF1) \
                    echo 1>&2 "(expect 1 shift/reduce conflict)"; \
                    set -x; \
                    bison -y -d ncgen.y; \
                    cat y.tab.c >ncgentab.c && rm y.tab.c; \
                    cat y.tab.h >ncgentab.h && rm y.tab.h; \
                    set +x; \
                    ;; \
                *)  echo 1>&2 "Warning: $@ is out-of-date with respect to 
ncgen.y"; \
                    echo 1>&2 "Warning: It should be recreated via $(yacc)" \
                        "on an OSF/1 system"; \
                    : set -x; \
                    :  bison -y -d ncgen.y; \
                    : mv y.tab.c ncgentab.c; \
                    : mv y.tab.h ncgentab.h; \
                  : set +x; \
                    ;; \
                esac

to

        ncgentab.c \
        ncgentab.h:     ncgen.y ncgenyy.c ncgen.h
                bison -y -d ncgen.y
                mv y.tab.c ncgentab.c
                mv y.tab.h ncgentab.h

Replace the rule, remove the files "ncgentab.c" and "ncgentab.h", and
try again.

> Thanks,
> Jack
> 
> -- 
> 
> **NEW CONTACT INFORMATION (8/21/03)**
> Jack Williams (address@hidden)
> Limnological Research Center
> Dept. of Geology and Geophysical Sciences
> 310 Pillsbury Drive SE
> 108 Pillsbury Hall
> Minneapolis, MN  55455-0219
> +1-612-626-0401 (office)
> +1-612-625-3819 (fax)
...

Regards,
Steve Emmerson