PAVE is available on GitHub from <https://github.com/cjcoats/pave-3.0>. To install a copy of this source code from GitHub, go to the directory under which do the installation (the default is ${HOME}/apps/; to use another directory, you'll have to make a few edits, as described in the next section.) and then do the commandgit clone https://github.com/cjcoats/pave-3.0This will create and populate a directory pave-3.0 with sub-directories bin, include, info, lib, man, maps, share, and src, as well as files pave-3.0/AAREADME, pave-3.0/COPYRIGHT, pave-3.0/GPL.txt, and pave-3.0/INSTALL.Note that this release also contains program arc2mcidas used for converting map-formats from ARC format to the MCIDAS format used by PAVE.
The Git-hub distribution contain (ideally) all the resources necessary to run on a current 64-bit x86 Linux system. These resources are built "as statically a possible", so that the executables should run on most systems unchanged. All that will be necessary is to "twiddle" a few directory paths ini various files.Suppose you've installed pave-3.0 under directory FOO as above (where FOO is not ${HOME}/apps/), creating directory FOO/pave-3.0. Let us call the resulting directory PAVE_DIR. You will need to edit the following files so that the value of shell-variable
PAVE_DIR
is now the correct FOO/pave-3.0pave-3.0/bin/ASSIGNS.cshIf your system does not have the rxvt terminal application, you will wish to change the definition of
pave-3.0/bin/PAVE.csh
pave-3.0/bin/pave
pave-3.0/src/Makeinclude
TERMINAL
in pave-3.0/bin/pave to another terminal application, such as xterm. If you're doing PAVE development, you may wish to change the definition ofDEBUGGER
from ddd to some other debugger such as gdbg or kdbg. Note that ASSIGNS.debug.csh and pave-3.0/src/Makeinclude.debug set up the execution environment and the build environment for a debug-compiled PAVE executable.If you source pave-3.0/bin/ASSIGNS.csh, it will put the pave-wrapper script pave in your
PATH
, so that you may run it from anywhere you like without having to specify its full file-system path. (This is not _necessary_ of course, and there are tricks with alias to do the same sort of thing...)If you get "shared library" errors on your system, you may need to recompile PAVE (below); if you're using a completely different compiler system (e.g., using Intel compilers), you may need to re-build/re-install the external libraries and then re-compile everything (also below).
This will be done under directory pave-3.0/src. PAVE normally ships with a fairly-complete set of libraries, which will be found in the pave-3.0/lib directory (as well as a few "extras" that turn up when you build and install these external packages:libBLT.aThese libraries are also built for the Linux2_x86_64gfort_medium compiler-and-memory-model used for the PAVE executable, so should not need to be re-built unless you change the memory model, etc., or unless you're running on an ancient (e.g., RedHat5) system. If you do, you will need to rebuild and install the libraries first; as described in the section below.
libX11-xcb.a
libX11.a
libXm.a
libXt.a
libioapi.a
libnetcdf.a
libplplotftk.a
libproj.a
libtcl.a
libtk.a
File pave-3.0/src/Makeinclude contains the definitions used by make in order to build the PAVE executable for your system. It is currently set up to use the GNU gcc/g++/gfortran compiler set, to assume that I/O API 3.2 is installed under ${HOME}/ioapi-3.2 and also built for Linux2_x86_64gfort_medium compiler-and-memory-model, and to build under directory
PAVE_DIR
= ${HOME}/apps/pave-3.0. Files Makeinclude.template and Makeinclude.debug are configuration-controlled templates which can be copied to Makeinclude and then customized for your intended installation:If you are building PAVE for some different compiler-set, you will need first to do the matching Models-3 I/O API build (and netCDF build), copy or link the libioapi.a and libnetcdf*.a to pave-3.0/lib, and then use the I/O API's corresponding Makeinclude.$BIN to provide the definitions used in your pave-3.0/src/Makeinclude. Also set make-variable
- Make sure that I/O API version 3.2 is built for the binary compile-type you will be using.
- In particular, make sure the definitions are correct for
BUILD
,PAVE_DIR
,IOSRC
, andIOLIB
.- It is entirely possible that your system may have X-windows libraries libX11.[so a], libXt.[so a] libXm.[so a] (most possibly in shared object ".so" form). If so you may want to modify the definition of
EXTLIBS
to use them.- Your edition of the C++ compiler g++ will somewhere have a backwards directory, so that C++ programs can use (backwards-compatible) C-style include-files. Find this directory
find /usr/include -name backwardsand modifyCXXSTUFF
accordingly.BUILD
to theBIN
used for the I/O API build. Then in directory pave-3.0/src do the commands make dirs followed by make. Or for PAVE only (and not arc2mcidas), cd pave-3.0/src/pave; make dirs; make. If this fails, you will probably need to build the external libraries (see section below) and then come back and re-compile.
Directory pave-3.0/external_libs originally contains two scripts, untar.csh and buildinstall.csh, and a directory tars that contains bzip2'ed tar-files for the external libraries used.untar.csh will uncompress/untar all of the packages under the pave-3.0/external_libs directory.
In the resulting pave-3.0/external_libs/blt2.4z/src/bltTree.c, we need to fix a bug: the preprocessor definitions for
START_LOGSIZE
andMAX_LIST_VALUES
from lines 104 and following need to be moved ahead of the#if (SIZEOF_VOID_P == 8)
, to line 98. (This is a bug-fix for 64-bit medium memory model.)buildinstall.csh will attempt to build and install all of the resulting libraries, or it may be used as a template giving instructions how to configure, build, and install individual libraries. It begins with a number of setenv definitions for directories and for use by GNU configure. You will need to edit these definitions to match your intended build, as well as the I/O API build you intend to use.
These are followed by a sequence of commands that build that package and install it under pave-3.0/bin, pave-3.0/lib, etc:
cd <package-directory> configure <options> make make install <possible extra commands...>performed in dependency-order (e.g., tk depends upon tcl, so that tcl is built and installed first).The build for plplot-5.3.1 fails on my system, but only after successfully building plrender, plserver, and pltcl, that will be copied to pave-3.0/bin.
Note that this will have the effect of building not only the libraries needed by PAVE, but also a number of other libraries and programs (including, for example, even the Motif Window Manger, mwm). That's the way the GNU configure script works :-)
Note also that we are using an older netcdf-3.6.3 version, since for more current netCDF C and Fortran 4.4.x, we had troubles getting configure to work for a medium-memory-model build -- configure claimed it couldn't figure out how many bytes were required by a medium-memoryu-model C pointer ;-( If you can fix this for a more current netCDF C and Fortran (such as 4.4 or later), I would enjoy hearing about it, and updating PAVE accordingly.
Return To PAVE Users Guide
$Id: index.html 77 2018-01-18 15:29:37Z coats $