$Id: INSTALL,v 1.48 1997/06/16 14:15:17 steve Exp $

Instructions on how to build and install netcdf-3.3.  If you don't 
understand them, then PLEASE, PLEASE, PLEASE find someone who does.
:-)

Read the README file to understand what this release is all about.

You will need about 6 Mbytes of free space to unpack, build, and run the
tests.

If you wish to build from source on a Win32 platform, there
are some different instructions. Obtain
ftp://ftp.unidata.ucar.edu/dist/ftp/pub/netcdf/contrib/win32/maks.zip,
unpack it in the parent directory of this one, and read WIN32_INSTALL.

Select and specify an appropriate build environment.  You will need a
Standard C compiler (if you don't have one, then you probably won't be
able to build this package).  Set the environment variables CPPFLAGS,
CC, CFLAGS, FC, FFLAGS, CXX, and CXXFLAGS (and perhaps LIBS) to
represent that environment.  The section marked "TESTED SYSTEMS" below
contains a list of systems on which we have tried to build this package,
the setting we used, and additional, important commentary (USE IT!).
Feel free to expand this list.

Go to the top-level source directory (i.e. the directory containing this
INSTALL file).

Decide on where you want to install this package.  This will be used
as the --prefix= argument to the configure script below.  The default
installation prefix is "..", which will install the package's files
in ../bin, ../lib, ../man, etc. -- relative to the top-level source
directory.

Execute the configure script:

    % ./configure [--prefix=_whatever_you_decided]

The square brackets above merely indicate that the "prefix"
specification is optional: do not type them.

The configure script will examine your computer system -- checking for
attributes that are relevant to building the netCDF package.  It will
print to standard output the checks that it makes and the results that
it finds.  (It is a good idea to redirect this output and standard
error to a file -- in case something goes wrong.)

The configure script will also create the file "config.log", which will
contain error messages from the utilities that the configure script uses
in examining the attributes of your system.  Because such an examination
can result in errors, it is *expected* that "config.log" will contain
error messages.  Therefore, such messages do not necessarily indicate a
problem (a better indicator would be failure of the subsequent "make").
One exception, however, is an error message in "config.log" that
indicates that a compiler could not be executed (not that it failed,
mind you, but rather that it couldn't be started).  This indicates a
severe problem in your compilation environment -- one that you must
fix.  If you don't understand what the problem is, then seek out a local
expert who might.

Run "make".  This will build one or more netCDF libraries.  It will
build the basic netCDF library libsrc/libnetcdf.a.  If you have a
FORTRAN compiler, then the FORTRAN interface will be included in this
library.  If you have a C++ compiler, then the C++ interface will be
built into the library cxx/libnetcdf_c++.a.  This will also build the
netCDF utilities ncgen(1) and ncdump(1).

Run "make test" to verify the build.  This will build and run
"libsrc/t_nc", a simple "blunder test".  It will also build and run the
programs "nctest" and "nc_test", which test the version 2 and version 3
C interfaces, respectively.  If you have a FORTRAN compiler, then this
will also run the programs "ftest" and "nf_test", which test the version
2 and version 3 FORTRAN interfaces, respectively.

Run "make install".  Try linking your applications.  Let us know if
you have problems (see REPORTING PROBLEMS below).  Let us know how much
faster it is.  Update your applications to the new interface.  Write
new applications using the new interface.  Port the library to other
platforms.  Share data.

***********************************************************************
PORTING NOTES:

The configure and build system should work on any system which has a
modern "sh" shell, "make", and so on.  The configure and build system
is less portable than the "C" code itself, however. You may run into
problems with the "include" syntax in the Makefiles. You can use GNU
make to overcome this, or simply manually include the specified files
after running configure.

If you can't run "configure", you will need to create libsrc/ncconfig.h
and fortran/nfconfig.inc. Start with libsrc/ncconfig.in and
fortran/nfconfig.in and set the defines as appropriate for your
system.

Operating system dependency is isolated in the "ncio" module.  We
provide two versions. posixio.c uses POSIX system calls like "open()",
"read()" and "write(). ffio.c uses a special library available on CRAY
systems. You could create others which used Macintosh or VMS system
calls. The program "t_ncio.c" can be used as a simple test of this
layer.

Numerical representation dependency is isolated in the "ncx" module.  As
supplied, ncx.m4 (ncx.c) supports IEEE floating point representation,
VAX floating point, and CRAY floating point. BIG_ENDIAN vs LITTLE_ENDIAN
is handled, as well as various sizes of "int", "short", and "long".  We
assume, however, that a "char" is eight bits.

There is a separate implementation of the ncx interface available as
ncx_cray.c which contains optimizations for CRAY vector architectures.
Move the generic ncx.c out of the way and rename ncx_cray.c to ncx.c
to use this module. By default, this module does not use the IEG2CRAY
and CRAY2IEG library calls. When compiled with aggressive inlining and
optimization, it provides equivalent functionality with comparable
speed and clearer error semantics. If you wish to use the IEG library
functions, compile this module with -DUSE_IEG.

***********************************************************************
TESTED SYSTEMS:

The following are sets of settings that we've used to build netCDF-3 on
various systems -- plus commentary.  Take your pick if there is more
than one set of settings for a particular system (for execution speed,
choose the "-DNDEBUG" and "-O" set; for debugging, choose the "-g" set).

If you don't find your environment listed here, then try URL
<http://www.unidata.ucar.edu/packages/netcdf/other-builds.html> for 
reports of successfull builds of this package in environments that we
did not or could not try.

AIX 4.2 (imogene or gale) 2 4 000109423500
    CPPFLAGS=
    CC=xlc
    CFLAGS=-g
    FC=xlf
    FFLAGS=-g
    CXX=xlC

    --------

    CPPFLAGS=-DNDEBUG
    CC=xlc
    CFLAGS=-O
    FC=xlf
    FFLAGS=-O
    CXX=xlC

BSD/OS emo 2.1 i386	# Note: release 2.1
    NOTE: Use the GNU make(1) utility (gmake(1)) rather than
    /usr/bin/make to build the package.  The latter utility doesn't
    support the "include" syntax used in the makefiles.

    CPPFLAGS=-Df2cFortran	# "-Df2cFortran" is necessary if fort77(1)
				# is used as the FORTRAN "compiler".
    CC=/usr/bin/cc
    CFLAGS=-g
    FC=/usr/local/bin/fort77	# actually an f2c(1)-using script
    FFLAGS='-g -w'

BSD/OS emo 3.0 i386	# Note: release 3.0
    NOTE: Use the GNU make(1) utility (gmake(1)) rather than
    /usr/bin/make to build the package.  The latter utility doesn't
    support the "include" syntax used in the makefiles.

    --------

    CPPFLAGS='-DNDEBUG -Df2cFortran'	# "-Df2cFortran" is necessary if
					# fort77(1) is used as the FORTRAN 
					# "compiler".
    CC=/usr/bin/cc
    CFLAGS=-O
    FC=fort77				# actually an f2c(1)-using script
    FFLAGS='-O -w -Nx400'		# "-Nx400" allows fortran/netcdf.inc 
					# to have many EXTERNAL statements
    CXX=/usr/bin/c++			# actually gcc version 2.7.2.1
    CXX=/usr/bin/g++			# version 2.7.2.1

    --------

    CPPFLAGS='-DNDEBUG -Df2cFortran'	# "-Df2cFortran" is necessary if the
					# FORTRAN "compiler" is fort77(1).
    CC=/usr/bin/cc
    CFLAGS=-O
    FC=/usr/local/bin/fort77		# actually an f2c(1)-using script
    FFLAGS='-O -w -Nx400'		# "-Nx400" allows fortran/netcdf.inc
					# to have many EXTERNAL statements
    CXX=/usr/bin/g++			# version 2.7.2.1

HP-UX robin A.09.05 A 9000/715 2010262449 two-user license
    CC=/bin/c89
    CFLAGS=
    FC=/usr/bin/fort77
    FFLAGS=-w
    CXX=/usr/bin/CC

    --------

    CPPFLAGS=-DNDEBUG
    CC=/bin/c89
    CFLAGS=-O
    FC=/usr/bin/fort77
    FFLAGS='-O -w'
    CXX=/usr/bin/CC

IRIX slim 5.3 11091811 IP20
    CPPFLAGS=
    CC=/bin/cc
    CFLAGS=-g
    FC=/bin/f77
    FFLAGS=-g
    CXX=/bin/CC

    --------

    CPPFLAGS=-DNDEBUG
    CC=/bin/cc
    CFLAGS=-O
    FC=/bin/f77
    FFLAGS=-O
    CXX=/bin/CC

IRIX chevy 6.2 03131015 IP22

	IRIX f90 Note: On IRIX 6.x platforms with version 7 compilers,
	the f90 compiler accepts 'integer*1', while f77
	accepts both 'integer*1' and 'byte'. Using
	FC=f90 forces the configure script to select 'integer*1'.
	The resulting *.inc files and test configurations will then
	work with either compiler.

    --------

    CPPFLAGS=
    CC=/bin/c89
    CFLAGS=-g
    FC=/bin/f77
    FFLAGS=-g
    CXX=/bin/CC

    --------

    CC=/bin/cc -n32
    CFLAGS=-O -DNDEBUG
    FC=/bin/f77 -n32
    FFLAGS=-O
    CXX=/bin/CC

    --------

    CPPFLAG=-DNDEBUG
    CC=/bin/c89
    CFLAGS=-O
    FC=/bin/f77
    FFLAGS=-O
    CXX=/bin/CC

IRIX64 binnie 6.2 03131016 IP26

	See IRIX f90 Note above.

    --------

    CPPFLAGS=
    CC=/bin/cc 
    CFLAGS="-g -woff 1110,1167"	# warnings 1110 & 1167 are lex(1)-induced
    FC=/bin/f77
    FFLAGS=-g
    CXX=/bin/CC

    --------

    CC=/bin/cc -64
    CFLAGS="-O -woff 1110,1167"	# warnings 1110 & 1167 are lex(1)-induced
    CPPFLAGS=-DNDEBUG
    FC=/bin/f77 -64
    FFLAGS=-O
    CXX=/bin/CC

    --------

    CPPFLAGS=-DNDEBUG
    CC=/bin/cc
    CFLAGS="-O -woff 1110,1167"	# warnings 1110 & 1167 are lex(1)-induced
    FC=/bin/f77
    FFLAGS=-O
    CXX=/bin/CC

Linux sunshine 2.0.27 #1 Sat Dec 21 23:44:11 EST 1996 i586
    CPPFLAGS=-Df2cFortran	# "-Df2cFortran" is necessary if the FORTRAN
				# "compiler" is fort77(1).
    CC=/usr/bin/cc		# actually gcc version 2.7.2.1
    CFLAGS=-g
    FC=/usr/bin/fort77		# actually an f2c(1)-using script
    FFLAGS='-g -Nx400 -w'	# "-Nx400" allows fortran/netcdf.inc to
				# have many EXTERNAL statements
    CXX=/usr/bin/c++		# actually gcc version 2.7.2.1

    --------

    CPPFLAGS='-DNDEBUG -Df2cFortran'	# "-Df2cFortran" is necessary if
					# the FORTRAN "compiler" is fort77(1).
    CC=/usr/bin/cc		# actually gcc version 2.7.2.1
    CFLAGS=-O
    FC=/usr/bin/fort77		# actually an f2c(1)-using script
    FFLAGS='-O -Nx400 -w'	# "-Nx400" allows fortran/netcdf.inc to
				# have many EXTERNAL statements
    CXX=/usr/bin/c++		# actually gcc version 2.7.2.1

    If you get errors similar to the following:

	... undefined reference to `GLOBAL_OFFSET_TABLE_'

    then your gcc(1) compiler probably doesn't support ELF binaries --
    though your kernel does.  Try gcc(1) version 2.7.2 or later.

OSF1 ernie V4.0 564 alpha
    CPPFLAGS=
    CC=/bin/c89
    CFLAGS=-g
    FC=/bin/f77
    FFLAGS=-g
    CXX=/bin/cxx

    --------

    CPPFLAGS=-DNDEBUG
    CC=/bin/c89
    CFLAGS=-O
    FC=/bin/f77
    FFLAGS=-O
    CXX=/bin/cxx

SunOS gummo 4.1.4 9 sun4m
	# SunOS 4 will complain bitterly due to its hosed (non ANSI) 
	# <string.h>. This is harmless. May be suppressed by CFLAGS=-w .
    CPPFLAGS=-DNDEBUG	# Because the SunOS 4 assert() macro is non ANSI,
			# always compile the library -DNDEBUG on these systems.
    CC=acc		# SC3.0.1
    CFLAGS=-g
    FC=f77		# SC3.0.1
    FFLAGS='-g -w'
    CXX=CC		# SC3.0.1

    --------

    CPPFLAGS=-DNDEBUG	# Because the SunOS 4 assert() macro is non ANSI,
			# always compile the library -DNDEBUG on these systems.
    CC=acc		# SC3.0.1
    CFLAGS='-O -temp=.'	# Insufficient room in "/tmp/" for temporary files
			# => we use current directory.  You might be OK.
    FC=f77		# SC3.0.1
    FFLAGS='-O -w -temp=.'
			# Insufficient room in "/tmp/" for temporary files
			# => we use current directory.  You might be OK.
    CXX=CC		# SC3.0.1
    LIBS=-ldl		# For some reason our linker needed to be told
			# to use the dynamic-link library.  This shouldn't
			# have occurred and might not be necessary outside 
			# the Unidata Program Center.

    --------

    CPPFLAGS=-DNDEBUG
    CC=gcc		# version 2.7.2
    CFLAGS=-g
    FC=f77		# SC3.0.1
    FFLAGS='-g -w'
    CXX=
    LIBS='-L/usr/lang/SC3.0.1/lib -lansi'	# To obtain memmove().  Given
			# this dependency, one might be better off using
			# acc(1) instead of gcc(1).

SunOS meeker 4.1.3 3 sun4m
	# SunOS 4 will complain bitterly due to its hosed (non ANSI) 
	# <string.h>. This is harmless. May be suppressed by CFLAGS=-w .
    CC=acc		# acc: SC3.0.1 7/13/94
    CPPFLAGS=-DNDEBUG	# Because the SunOS 4 assert() macro is non ANSI,
			# always compile the library -DNDEBUG on these systems.
    CFLAGS=-O
    FFLAGS='-O -w'
	796.8u 240.6s 19:45 87% 0+2780k 839+7664io 2445pf+0w
    CFLAGS=-O4
    FFLAGS='-O4 -w'
	1728.8u 290.5s 36:46 91% 0+3896k 988+8896io 5034pf+0w

SunOS laraine 5.5 Generic_103093-07 sun4m
    CPPFLAGS=
    CC=/opt/SUNWspro/bin/c89
    CFLAGS=-g
    FC=/opt/SUNWspro/bin/f77
    FFLAGS='-g -erroff=WDECL_LOCAL_NOTUSED'	# "-erroff=..." turns
						# off an ignorable warning.
						# Your compiler may differ.
    CXX=/opt/SUNWspro/bin/CC

    --------

    CPPFLAGS=-DNDEBUG
    CC=/opt/SUNWspro/bin/c89
    CFLAGS=-O
    FC=/opt/SUNWspro/bin/f77
    FFLAGS='-O -erroff=WDECL_LOCAL_NOTUSED'	# "-erroff=..." turns
						# off an ignorable warning.
						# Your compiler may differ.
    CXX=/opt/SUNWspro/bin/CC

    --------

    CPPFLAGS=
    CC=/opt/SUNWspro/bin/c89
    CFLAGS=-g
    FPP=fpp				# necessary for correct preprocessing
    FPPFLAGS=-D__SUNPRO_F90		# necessary for correct preprocessing
    COMPILE_F=				# necessary for correct preprocessing
    FC=/opt/SUNWspro/bin/f90		# SC4.2 Fortran 90 compiler 1.2
    FFLAGS='-g -w'			# "-w" disables an ignorable warning.
    CXX=/opt/SUNWspro/bin/CC

SunOS wcfields 5.5 Generic_103093-07 sun4m sparc SUNW,SPARCstation-10
    CPPFLAGS=-DNDEBUG
    CC=cc		# cc: WorkShop Compilers 4.2 15 Oct 1996 C 4.2
    CFLAGS=-O

    --------

    CFLAGS=-g
    CC='cc -v -errtags -xtransition -Xa'
			# Passes dbx(1)'s "check -all"

sn1036 (UNICOS) shavano 8.0.4 har.7 CRAY Y-MP

    [READ ALL OF THE FOLLOWING]

    Before proceeding with make(1), manually copy the file
    "libsrc/ncx_cray.c" to file "libsrc/ncx.c".  See the commentary at
    the top of this file for more information.

    In the following, the "-i64" and "-dp" options are necessary in
    order to make FORTRAN INTEGER and DOUBLE PRECISION datatypes
    equivalent to C "int" and "double", respectively.

    The "-Wp-F" option in the following causes the FORTRAN compiler to
    1) do its own preprocessing of *.F files rather than use a separate
    utility; and 2) substitute macros in code as well as in conditional
    compilation directives (which is necessary).

    --------

    CPPFLAGS=
    CC=/opt/ctl/bin/c89
    CFLAGS=-g
    FC=/opt/ctl/bin/f90
    FFLAGS='-g -i64 -dp -Wp-F'
    CXX=		# We don't have the requisite compiler /usr/bin/CC.
    CXXFLAGS='-h char'	# If we did, this option would probably be 
			# necessary due to a bug in the C++ compiler.

    --------

    CPPFLAGS=-DNDEBUG
    CC=/opt/ctl/bin/c89
    CFLAGS=-O3
    FC=/opt/ctl/bin/f90
    FFLAGS='-O3 -i64 -dp -Wp-F'
    CXX=		# We don't have the requisite compiler /usr/bin/CC.
    CXXFLAGS='-h char'	# If we did, this option would probably be 
			# necessary due to a bug in the C++ compiler.

        If you use the above "-O3" option, then you should know that
        the "inline3" optimization of file "libsrc/putget.c" chokes the
        compiler.  Therefore, you MUST compile this file manually
        after executing the configure script: drop into the libsrc/
        directory and execute the following command:

	    make putget.o CPPFLAGS=-DNDEBUG CFLAGS='-h inline2 -h scalar3'

        Then change back to the parent directory and proceed normally
        with the "make" command.

sn9607 (UNICOS) ouray 9.2.0.03 roo.16 CRAY J90

    [READ ALL OF THE FOLLOWING]

    In the following, the "-i64" and "-dp" options are necessary in
    order to make FORTRAN INTEGER and DOUBLE PRECISION datatypes
    equivalent to C "int" and "double", respectively.

    The "-F" option in the following causes the FORTRAN compiler to
    1) do its own preprocessing of *.F files rather than use a separate
    utility; and 2) substitute macros in code as well as in conditional
    compilation directives (which is necessary).

    Before executing make(1), manually copy the file "libsrc/ncx_cray.c"
    to file "libsrc/ncx.c".  See the commentary at the top of this file
    for more information.

    --------

    # The following requires about 46.3 MB for the source build-and-test
    # directory hierarchy, and about 6.8 MB for the installation
    # directory hierarchy.
    CPPFLAGS=
    CC=/opt/ctl/bin/cc
    CFLAGS=-g
    FC=/opt/ctl/bin/f90
    FFLAGS='-g -F -i64 -dp'	# "-F" enables macro substitution in code.
				# "-i64" enables INTEGER/int equivalence.
				# "-dp" enables DOUBLEPRECISION/double
				#     equivalence.
    CXX=/opt/ctl/bin/CC
    CXXFLAGS='-h char'		# necessary due to a bug in the C++ compiler

    --------

    CPPFLAGS=-DNDEBUG
    CC=/opt/ctl/bin/cc
    CFLAGS=-O3
    FC=/opt/ctl/bin/f90
    FFLAGS='-O3 -F -i64 -dp'	# "-F" enables macro substitution in code
				# "-i64" enables INTEGER/int equivalence
				# "-dp" enables DOUBLEPRECISION/double
				#     equivalence.
    CXX=/opt/ctl/bin/CC
    CXXFLAGS='-h char'		# necessary due to a bug in the C++ compiler

        If you use the above "-O3" option, then you should know that
        the compiler hangs trying to "inline3" optimize the files
        "libsrc/attr.c" and "libsrc/putget.c".  Therefore, you MUST
        compile these files manually after executing the configure
        script: drop into the libsrc/ directory and execute the
        following command:

	    make attr.o putget.o CPPFLAGS=-DNDEBUG CFLAGS=-O2

        This command may take a while (e.g. 830 seconds).  Then, change
        back to the parent directory and proceed normally with the
        "make" command.

sn7203 t90 9.1.0.1 gfd.11 CRAY TS
Fri Jun  6 16:05:37 MDT 1997 (glenn)

	Be _sure_ to use ncx_cray.c for this machine.
	
    CC=c89
    CFLAGS=-O3 (-g works too)
    FC=f90
    FFLAGS='-g -i64 -dp -Wp-F' # -O3 works as well as -g; -Wp-F needed for cpp
    CXX=""
	
	'C' compiler chokes on libsrc/attr.c and libsrc/putget.c
	at -O3 optimization. Precompile at -O2:
		cd libsrc; c89 -c -O2 -I.  -DNDEBUG attr.c
		cd libsrc; c89 -c -O2 -I.  -DNDEBUG putget.c

	The C compiler issues some warnings:
		cc-7212 c89: ... Variable "xx" is used before it is defined.
	We believe these are unfounded. Since the only appear with 
	optimisation, they may be due to the compiler's inlining strategy.


sn6602 t3e 1.4.1.50 unicosmk CRAY T3E
Tue Jun  3 12:00:27 MDT 1997 (glenn)

	Don't use ncx_cray.c for this machine.
	(TODO: figure out why. Hypothesis: different
	address structure.)

    CC=c89
    CFLAGS=-O3	# -g tested as well
    FC=f90
    FFLAGS='-g -F' # -F is the same as -Wp-F?, -i64 is default, -dp irrelevant
    CXX=""
	'C' compiler chokes on libsrc/putget.c
		c89 -c -O3 -I.  -DNDEBUG putget.c
		cc-7951 c89: LIMIT File = putget.c, Line = 6477
  		Insufficient memory is available for compiler to continue.
	Precompile libsrc/putget.c at -O2:
		cd libsrc; c89 -c -O2 -I.  -DNDEBUG putget.c


sn4031 antero 9.0.2bjC har.6 CRAY C90
    CC=c89
    CPPFLAGS=-DNDEBUG
    CFLAGS=-O
    FC=f90
    FFLAGS='-F -dp -O2'	# -F is equiv to old -Wp-F
    CXX=""

sn4031 antero 9.0.2bjC har.6 CRAY C90 TARGET cray-t3d
Thu Jun  5 13:06:00 MDT 1997
  
    Using ncx.c (ncx.m4) NOT ncx_cray.c. (Same as t3e?)

    Have /mpp/bin at the head of your PATH.

    Set this environment variable so that the configure script
    (and tests) will be run on the t3d.
    	TARGET=cray-t3d

    Set this environment variable so that the configure script
    (and tests) will be run on a single processor of the t3d.
    	MPP_NPES=1

    CC=c89
    CPPFLAGS=-DNDEBUG
    CFLAGS=-O
    FC=f90
    FFLAGS='-g -dp -Wp-F' # "-Wp-F" or "-F" enables macro substitution in code.
    CXX=""


SUPER-UX unix 6.2  SX-4 (sx4.hstc.necsyl.com)
    /home/cust/ncar1/netcdf-3.3beta/{lib,lib_float2}
    CC=cc -Xa
    CPPFLAGS=-DNDEBUG
    CFLAGS=-h2
    LIBS=-lm -li77sx
	    
	The addition of -li77sx to LIBS is only needed to resolve
	the symbol f_rtdt during
	"checking FORTRAN-type equivalent to C..."
	tests in in configure. It could probably be manually removed
	from macros.make without adverse effect.

	TODO: 28 failures in nc_test. Hypothesis: cpp problem
	sets up improper ranges.

	TODO: nf_test
	253 Invalid operation PROG=test_nf_get_vara_int ELN=13706(860098f0)

	TODO: ncgen -f test failed: Alignment problem?
		(I see this on t3e, too)
<               bears:acs = -40s ;
---
>               bears:acs = -1s ;
35c35
<   "le" ;
---
>   "le " ;
38,39c38,39
<   1, 2, 3,
<   4, 5, 6 ;
---
>   0, 1, 0,
>   2, 0, 3 ;
57c57
<  l = 10, 9, 8 ;
---
>  l = 0, 10, 0 ;

	
    Cray compatibility options:
    CC=cc
    CFLAGS=-hfloat2 -hint64 -h2
    FFLAGS=-float2 -Wl -int64
    LIBS=-lm -li77sx
	
	The addition of -li77sx to LIBS is only needed to resolve
	the symbol f_rtdt during
	"checking FORTRAN-type equivalent to C..."
	tests in in configure. It could probably be manually removed
	from macros.make without adverse effect.
	
	There is no need to build ncgen(1) and ncdump(1) in this Cray
	compatibility fashion.  If you do, ncgen must be linked -ll.
	The diff's performed in the ncdump and ncgen tests will come
	with minor differences.

	Lots of output from nf_test; t_nc, nctest, nc_test, ftest okay.
	There are SX specific hacks in nc_test and ncx.m4 to deal with
	the broken C preprocessor.


ULTRIX curly 4.5 0 RISC
    CPPFLAGS=
    CC=gcc		# gcc version 2.7.2
    CFLAGS=-g
    FC=/usr/bin/f77
    FFLAGS='-g -fpe1'	# "-fpe1" is necessary to allow the netCDF
			# package to return NC_ERANGE rather than generate
			# SIGFPE (which would terminate the program)
    CXX=g++		# version 2.7.2
    LIBS=/usr/local/gnu/lib/gcc-lib/mips-dec-ultrix4.5/2.7.2/libgcc.a
			# LIBS is needed because even FORTRAN programs
			# will references the GNU C library due to CC=gcc

    --------

    CPPFLAGS=-DNDEBUG
    CC=gcc              # gcc version 2.7.2
    CFLAGS=-O
    FC=/usr/bin/f77
    FFLAGS='-O -fpe1'	# "-fpe1" is necessary to allow the netCDF
			# package to return NC_ERANGE rather than generate
			# SIGFPE (which would terminate the program)
    CXX=g++		# version 2.7.2
    LIBS=/usr/local/gnu/lib/gcc-lib/mips-dec-ultrix4.5/2.7.2/libgcc.a
			# LIBS is needed because even FORTRAN programs
			# will references the GNU C library due to CC=gcc

ULTRIX milton 4.4 0 VAX
    CPPFLAGS=
    CC=gcc		# gcc version 2.7.2
    CFLAGS=-g
    FC=			# The FORTRAN interface can't be built because the
			# f77(1) compiler can't handle underscores in names 
			# and doesn't support exclamation points as comment
			# delimiters.  Try g77(1)?
    CXX=g++		# g++ version 2.7.2

    --------

    CC=gcc		# gcc version 2.7.2
    CPPFLAGS=-DNDEBUG
    CFLAGS=-O		# If you use this option, then you will have to
			# *manually* compile libsrc/ncx.c
    FC=			# The FORTRAN interface can't be built because the
			# f77(1) compiler can't handle underscores in names 
			# and doesn't support exclamation points as comment
			# delimiters.  Try g77(1)?
    CXX=g++		# g++ version 2.7.2

        If you use gcc(1) with the "-O" option in CFLAGS, then gcc(1)'s
        optimizer will probably corrupt the structure layouts in
        "libsrc/ncx.c".  The symptom of this is that "libsrc/t_nc"
        fails during the "make test".  Thus, you will probably have to
        manually compile the file "libsrc/ncx.c" -- without the "-O"
        option -- before executing the "make".  For example:

	    $ ./configure
	    ...
	    $ cd libsrc
	    $ make ncx.o CFLAGS=
	    ...
	    $ cd ..
	    $ make
	    ...

    It appears that, if you need to build the netCDF-3 FORTRAN interface
    on a VAX ULTRIX system, we're afraid you're on your own (we couldn't
    do it).  You might try using the GNU FORTRAN compiler g77(1) instead
    of the native FORTRAN compiler.  We are happy to advise in this
    effort but would be unwilling, at this time, to modify the code
    solely to support this (now ancient) system.

UNIX_SV sx4iox 4.2MP 1.release.1023.06:17 R4000 r4000 (sx4iox.hstc.necsyl.com)
    /home/d51djp/netcdf-3.3a
    CPPFLAGS=-DNDEBUG
    CFLAGS=-O
    (cd fortran; ln -s irix5.m4 unix_sv.m4)
	    nc_test has 74 failures, problems with extremal values.

***********************************************************************
Other platforms verified at 3.1a (an earlier version):

NeXT Computer, Inc. version cc-216.obj~13, gcc version 2.2.2
(M68K, NeXTStep 3.1)
	CFLAGS = -g
	CC = cc -Wall -D_POSIX_SOURCE
   Problems with put,get_uchar in nc_test due to bugs in this
old version of gcc. Can be safely ignored?

***********************************************************************
IF PROBLEMS OCCUR:

If you have problems with the installation, then please try the
following first:

    1.  Re-read and understand all of this INSTALL document --
	especially any examples and commentary relevant to your system.

    2.  Go to the top-level source directory (the directory containing 
        this file).

    3.  Remove the file "config.cache" if it exists.

    4.  Re-execute the configure script.  Redirect its standard output
	and standard error to a file.  If this step fails, then stop
	here.

    5.  Execute the command "make clean".

    6.  Execute the command "make".  Redirect its standard output and
	standard error to a file.  If this step fails, then stop here.

    7.  Execute the command "make test".  Redirect its standard output
	and standard error to a file.

If you still can't build this package, then please send a description of
the problem together with the following to <support@unidata.ucar.edu>:

    1.  The standard output of the command "uname -a".

    2.  The contents of the file VERSION, which is in the top-level
	source directory.

    3.  The standard output and error output of the configure script
	(step 4 above).

    4.  The absolute pathnames of all compilers (C, FORTRAN, C++) used
        in the build process (use the type(1) or which(1) utility to
        determine this).

    5.  The contents of the file "config.log", which is in the top-level
	source directory.

    6.  The standard output and error output of the command "make" (step
	6 above).

    7.  The standard output and error output of the command "make test"
	(step 7 above).

