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

20000725: netcdf-perl build problem using perl 5.6: `na' undeclared



Rob,

[Sorry for taking so long to respond.  We had to install perl 5.6 on our
systems in order to reproduce your problem.]

> From: Rob Cermak <address@hidden>
> Subject: netcdfperl 1.2. installation problem
> Organization: Rutgers
> Keywords: 200007191256.e6JCu3T00248 netCDF Perl

The above message contained the following:

> I have a repeat of the problem reported in the support email (20000329
> from Patrick O'Leary.   I followed the suggestions in that email
> and the variables still come up with "na" instead of Perl_na.
> 
> Any suggestions?
> 
> [root@wx root]# perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration:
...
> [root@wx src]# make
> cd perl && /usr/local/bin/perl Makefile.PL
> Checking if your kit is complete...
> Looks good
> Writing Makefile for NetCDF
> make[1]: Entering directory `/data/src/hdf/netcdf-perl-1.2/src'
> make[2]: Entering directory `/data/src/hdf/netcdf-perl-1.2/src'
> 
> making `dynamic' in directory /data/src/hdf/netcdf-perl-1.2/src/perl
> 
> make[3]: Entering directory `/data/src/hdf/netcdf-perl-1.2/src/perl'
> /usr/local/bin/perl -I/usr/local/lib/perl5/5.6.0/sun4-solaris
> -I/usr/local/lib/perl5/5.6.0 /usr/local/lib/perl5/5.6.0/ExtUtils/xsubpp
> -typemap /usr/local/lib/perl5/5.6.0/ExtUtils/typemap NetCDF.xs >
> NetCDF.xsc && mv NetCDF.xsc NetCDF.c
> Please specify prototyping behavior for NetCDF.xs (see perlxs manual)
> cc -c -I/usr/local/netcdf/include -fno-strict-aliasing
> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O
> -DVERSION=\"1.2\" -DXS_VERSION=\"1.2\" -fPIC
> -I/usr/local/lib/perl5/5.6.0/sun4-solaris/CORE  NetCDF.c
> NetCDF.xs: In function `pv_data':
> NetCDF.xs:823: `na' undeclared (first use in this function)
> NetCDF.xs:823: (Each undeclared identifier is reported only once
> NetCDF.xs:823: for each function it appears in.)
> NetCDF.xs: In function `XS_NetCDF_attput':
> NetCDF.xs:2251: `na' undeclared (first use in this function)
...

The netcdf-perl package is a perl extension module and it looks like the
rules for writing them have recently changed.  Fortunately, the perl
package has a backward-compatibility option, which we'll use until I can
port the netcdf-perl code itself.

Try the following:

    1.  Go to the top-level, netcdf-perl source directory.

    2.  Execute the command "make distclean".

    3.  Replace the file "Makefile.in" with the enclosed version.

    4.  Proceed with building and installing the netcdf-perl package as
        before (i.e. execute "configure", "make", etc.).

Please let me know if this helps.

Regards,
Steve Emmerson   <http://www.unidata.ucar.edu>

--------Replacement "Makefile.in"
# $Id: Makefile.in,v 1.9 1999/01/12 22:40:15 steve Exp $

.POSIX:

PACKAGE         = netcdf-perl
perl            = @PERL@
perl_srcdir     = @PERL_SRCDIR@
SUBDIRS         = port
SUBDIR_TARGETS  = \
                  perl/dynamic perl/perl \
                  perl/test \
                  perl/install perl/inst_perl \
                  perl/clean perl/realclean

PERL_MANDIR     = @PERL_MANDIR@
MANUALS         = netCDFPerl.1
MANIFEST        = \
                  COPYRIGHT \
                  CUSTOMIZE \
                  HISTORY \
                  INSTALL \
                  Makefile.in \
                  README \
                  VERSION \
                  aclocal.m4 \
                  configure \
                  configure.in \
                  perl/MANIFEST \
                  perl/Makefile.PL.in \
                  perl/NetCDF.pm \
                  perl/NetCDF.xs \
                  perl/test.pl \
                  netCDFPerl.1
GARBAGE         = *.nc

all:
        @$(MAKE) $(MFLAGS) decision \
            DYNAMIC_GOAL=perl/dynamic STATIC_GOAL=perl/perl
        test ! -f perl/so_locations || chmod a+w perl/so_locations

test:
        @case `uname -s` in \
            ULTRIX) \
                $(MAKE) $(MFLAGS) perl/perl; \
                perl/perl -I perl perl/test.pl; \
                ;; \
            *) \
                $(MAKE) $(MFLAGS) perl/test; \
                ;; \
        esac

install:        FORCE
        @$(MAKE) $(MFLAGS) decision \
            DYNAMIC_GOAL=perl/install STATIC_GOAL=perl/inst_perl
        $(MAKE) $(MFLAGS) installed_manuals MANDIR=$(PERL_MANDIR)

clean:          perl/clean
        rm -f perl/perl

realclean:      perl/clean
        rm -f perl/perl

perl/dynamic \
perl/perl \
perl/test \
perl/install \
perl/inst_perl \
perl/clean \
perl/realclean: perl/Makefile

perl/Makefile:  perl/Makefile.PL
        cd perl && $(perl) Makefile.PL POLLUTE=1

decision:       FORCE
        @case `uname -s` in \
            ULTRIX) \
                $(MAKE) $(MFLAGS) $(STATIC_GOAL); \
                ;; \
            *) \
                $(MAKE) $(MFLAGS) $(DYNAMIC_GOAL); \
                ;; \
        esac

perl/perl:      FORCE

include port/master.mk