Sie sind auf Seite 1von 11

How to Install MB-System Using the Configure Script

The configure script has been generated using the autoconf package. The
current configure script does not resolve all of the flags and locations needed to
build MB-System on all platforms, but does allow for flexible installation and
generation and use of shared libraries without requiring interactive editing.
These improvements make MB-System distributions much more amenable to
inclusion in package manager systems like Debian and Fink. We hope to improve
the configure script so that less intervention is required.

The basic steps for building MB-System using the configure script are:

1. Move to the top of the MB-System distribution directory:

cd mbsystem-5.4.2176
2. Run the configure script to generate the Makefile files throughout the
distribution directory structure. The command line options for configure are
discussed below.

[...pre-options...]./configure [...options...]
3. Run the make utility to build the software within the source distribution.
make
4. Run the make utility with the install option to install the software within the
target location that was specified while running configure. This step copies the
libraries, programs, scripts, manual pages, and web pages to the target
destinations.
make install
The configure script is intended to discern the enviroment, locate prerequisite
packages, and construct the makefiles with a minimum of user intervention. In
practice, users generally need to set at least some options when using the
configure script in order to successfully build, install, and run MB-System. If
NetCDF and GMT installations cannot be located, MB-System cannot be built. If
FFTW3, Motif, or OpenGL cannot be found MB-System will be built, but without
the applications that depend on these packages.

Depending on how user permissions are set on your system and where the
package is to be installed, it may be necessary to execute some or all of the
above commands with superuser privileges. On older styles of Unix and Linux,
this was typically accomplished by using the su command to become root, or
superuser, a step that requires knowing the root password for the system.
Following a successful invocation of su in a command shell, all commands have
superuser privileges. On MacOsX and other "modern" flavors of Unix and Linux,
it's more common to use the sudo command in front of other commands in order
to execute them with superuser privileges. An administrator password is required
for the first instance of sudo, but not for subsequent instances (at least for a
period of time, typically five minutes). In this case, the commands become:

sudo ./configure
sudo make
sudo make install
The default destination is /usr/local, and so one should find the MB-System
executable programs and scripts in /usr/local/bin, the shared libraries in
/usr/local/lib, the manual pages in /usr/local/man, and the projection and Levitus
databases accessed by MB-System in /usr/local/share/mbsystem. However, one
can control the installation destination of the configure script on the command
line by using a "--prefix" argument. For example, to install MB-System into
/Users/caress/sandbox/mbsystem, you can use:

sudo ./configure \
--prefix=/Users/caress/sandbox/mbsystem
The complete list of configure's installation location options is:

--prefix
files.

This is the common installation prefix for all


If exec_prefix is defined to a different

value, prefix
is used only for architecture-independent
files.
[Default: /usr/local]
--exec_prefix
dependent files.

The installation prefix for architecture-

By default it's the same as prefix. You


should avoid
installing anything directly to exec_prefix.
However,
the default value for directories
containing
architecture-dependent files should be
relative to
exec_prefix.
[Default: ${prefix} ==> /usr/local]
--datarootdir
architecture

The root of the directory tree for read-only


-independent data files.
[Default: ${exec_prefix}/share ==>

/usr/local/share]
--bindir
users run.

The directory for installing executables that


[Default: ${exec_prefix}/bin ==>

/usr/local/bin]
--libdir

The directory for installing object code libraries.


[Default: ${exec_prefix}/lib ==>

/usr/local/lib]
--includedir

The directory for installing C header files.


[Default: ${exec_prefix}/include ==>

/usr/local/include]
MB-System depends on librarys from a number of different packages, including
NetCDF, GMT, FFTW3, X11, and Motif. Sometimes a user will have more than one
installation of a package available, and specifying which is used is desirable.
Also, unfortunately the configure script does not always successfully find all
needed packages. Consequently, the configure script allows users to set the
locations on the command line when necessary. The configure command line
options controlling the locations of prerequisites are:

--with-netcdf-lib

Location of NetCDF libs

--with-netcdf-include

Location of NetCDF headers

--with-gmt-lib

Location of GMT libs

--with-gmt-include Location of GMT headers


--with-fftw-lib

Location of FFTW3 libs (optional)

--with-fftw-include Location of FFTW3 headers (optional)


--with-motif-lib

Location of Motif libs (optional)

--with-motif-include

Location of Motif headers (optional)

--with-opengl-lib

Location of OpenGL libs (optional)

--with-opengl-include

Location of OpenGL headers (optional)

--with-otps-dir

Location of OTPS installation (optional)

The MB-System distribution includes the source code for the GSF and the PROJ4
packages. By default, the configure script seeks to build the GSF library as
libmbgsf and seeks to link with a libproj built external to MB-System. Configure
accepts commands to build MB-System without GSF or to use the included PROJ4
source.

--without-gsf

Build without including or supporting GSF


The default is to build the bundled
gsf library as libmbgsf and link with it

--enable-bundledproj

Build using bundled proj package - the


default is to link with libproj

Note that specification of FFTW3, Motif, and OpenGL is optional. If the configure
script does not find these packages and the user does not specify their locations,
then some MB-System programs will not be built. Lack of FFTW3 means that
mbsegypsd is not built. No OpenGL results in the visualization programs
mbgrdviz and mbeditviz not being built. Lack of Motif means that no graphical
programs of any type are built.

Mac OS X
Many MacOsX users have their NetCDF, GMT, FFTW3, and OpenMotif installations
through the Fink package manager, which installs packages in /sw. The configure
script fails to find packages in /sw, and so the user must explicitly specify those
packages. The OTPS tide modeling software used by mbotps is not packaged in
Fink, and so must be manually installed by a user if mbotps is to work correctly.

Installation of MB-System on a Mac running MacOsX 10.9 will likely use a


configure command that looks something like:

sudo CFLAGS="-I/opt/X11/include -L/opt/X11/lib" \


./configure \
--with-netcdf-include=/sw/include \
--with-netcdf-lib=/sw/lib \
--with-gmt-include=/sw/include \
--with-gmt-lib=/sw/lib \
--with-proj-include=/sw/include \
--with-proj-lib=/sw/lib \
--with-fftw-include=/sw/include \
--with-fftw-lib=/sw/lib \
--with-motif-include=/sw/include \
--with-motif-lib=/sw/lib \
--with-otps-dir=/usr/local/tides/OTPS2
As shown here, one can also add to the commands seen by the compiler
("CFLAGS") and linker ("LDFLAGS") if desired or necessary by prefacing the
configure command with arguments setting the environment variables CFLAGS
and LDFLAGS. Here the current location of X11 header files and libraries must be
specified because the new (to MacOsX) location of X11 in /opt is not known to
the configure script. Another example is that in order to compile MB-System for
user with a debugger, all compiler commands must include the "-g" argument.
So, to enable use of the gdb debugger, the configure command becomes:

sudo CFLAGS="-g -I/opt/X11/include -L/opt/X11/lib" \


./configure \
--with-netcdf-include=/sw/include \
--with-netcdf-lib=/sw/lib \
--with-gmt-include=/sw/include \
--with-gmt-lib=/sw/lib \

--with-proj-include=/sw/include \
--with-proj-lib=/sw/lib \
--with-fftw-include=/sw/include \
--with-fftw-lib=/sw/lib \
--with-motif-include=/sw/include \
--with-motif-lib=/sw/lib \
--with-otps-dir=/usr/local/tides/OTPS2
Ubuntu Linux
For Ubuntu Linux 12.04.02LTS, the following use of the apt-get utility will install
all of the MB-System prerequisites excepting OTPS:

sudo apt-get install xorg-dev libmotif-dev libmotif4 libxp-dev mesa-common-dev \


libsdl1.2-dev libsdl-image1.2-dev build-essential gfortran \
nautilus-open-terminal libfftw3-3 libfftw3-dev \
libnetcdf-dev netcdf-bin gdal-bin gdal1-dev gmt libgmt-dev gv
Because GMT is installed in an unusual way on Ubuntu, it is necessary to
augment the PATH and LD_LIBRARY_PATH environment variables by adding the
following two lines to each user's ~/.bashrc file:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/usr/lib/gmt/bin:$PATH
By default, the Ubuntu GMT installation is not known to pkg-config, and the
installation points of the libraries and the header files must be specified:

sudo ./configure --prefix=/usr/local \


--with-gmt-include=/usr/include/gmt \
--with-gmt-lib=/usr/lib
Although the GMT installation does not include a pkg-config *.pc file, it is simple
to construct one. On Ubuntu pkg-config looks in /usr/lib/pkgconfig, so one can put
a file there called gmt.pc with the contents:

# start gmt.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/gmt
ccompiler=gcc
cppcompiler=g++

Name: gmt
Description: GMT Libraries
Version: 4.5.6
Libs: -L${libdir} -lgmt -lgmtps -lpsl
Cflags: -I${includedir}
# end gmt.pc
If the GMT installation has been augmented with a /usr/lib/pkgconfig/gmt.pc file
so that pkg-config knows about GMT, then the configure call to install in /usr/local
is just:

sudo ./configure
CentOs or Red Hat Linux
The package manager usually used on CentOs or Red Hat Linux systems is yum.
To install all of the MB-System prerequisites use the command:

sudo yum install openmotif openmotif-devel fftw fftw-devel netcdf netcdf-devel \


proj proj-devel gdal-devel gmt gmt-devel gv nedit
If the prerequisites have all been installed with yum and it is desired to install
MB-System in /usr/local, then only a simple call to configure is required:

sudo ./configure
How to Install MB-System Using the Install_makefiles Script

For over two decades, the only means to build MB-System distributions was a
crude Perl script called install_makefiles that needed to be edited to set the
operating system and the locations of prerequisite packages. Although a
autoconf-type configure script is now provided, as described above, the old
install_makefiles script is still included in the MB-System distribution and remains
an alternative means to build and install MB-System.

In order to use this alternative build system, you must edit the perl script
mbsystem/install_makefiles, and set a number of parameters to reflect the
system architecture, the location of the installation, and the locations of certain
required libraries. This script will read template makefiles in the MB-System
source directories and create makefiles with the correct dependencies, compile
flags, and link flags. The important parameters to be set in install_makefiles are
listed below. The install_makefiles script includes comments suggesting
parameters to use for many common computer systems.

These parameters must be set for all installations:

MBSYSTEM_HOME - Absolute path to the directory containing install_makefiles.


OS
- Operating system (Recognized options are: DARWIN, LINUX, CYGWIN,
SUN, IRIX, IRIX64, SOLARIS, HPUX, LYNX, CYGWIN or OTHER).
CFLAGS
- Compile flags for C source files. These vary with different
operating systems and installations.
LFLAGS

- Load flags for all object files.

NETCDFLIBDIR

- Location of NetCDF library libnetcdf.a

NETCDFINCDIR

- Location of NetCDF include file netcdf.h

GMTLIBDIR- Location of GMT libraries libgmt.a and libpsl.a


GMTINCDIR - Location of GMT include files gmt.h, grd.h, and pslib.h
LEVITUS
- Path of Levitus global water properties data file. This is usually
$MBSYSTEM_HOME/share/annual.
PROJECTIONS
- Path of PROJ4 projections database. This is usually
$MBSYSTEM_HOME/share/Projections.dat.
These two parameters are required to build the graphical tools mbedit,
mbnavedit, mbvelocitytool, mbnavadjust, mbgrdviz, and mbeditviz. If these
parameters are not both set, no graphical tools will be built.

MOTIFINCDIR
MOTIFLIBS

- Location of Motif include files.

- X11 and Motif libraries required for graphical tools.

This parameter must be set to build the openGL tools mbgrdviz and mbeditviz:

OPENGLLIBS - OpenGL libraries required for new graphical tools, including


mbgrdviz and mbeditviz. If this parameter is not set, mbgrdviz and mbeditviz will
not be built
This parameter must be set to build the sonogram calculation program
mbsegypsd:

FFTWLIBDIR - location of FFTW library providing fast Fourier transform.


FFTWINCDIR - location of FFTW include files
This parameter must be set for the tidal modeling program mbotps to work:

OTPSDIR

- location of OTPSnc tide prediction program predict_tide.

This optional parameter can be used to specify a non-default C compiler:

CC

- C compiler to be used.

These optional parameters can be used to specify linking with an independent


installation of the PROJ4 library. In this case, the PROJ4 library included with MBSystem will not be built.

PROJLIB - Path to PROJ4 library (usually libproj.a)


PROJINCDIR - Location of PROJ4 include file proj_api.h
These optional parameters can be used to specify linking with an independent
installation of the GSF library. In this case, the GSF library included with MBSystem will not be built.

GSFLIB - Path to GSF library (usually libgsf.a)


GSFINCDIR - Location of GSF include file gsf.h

To execute install_makefiles, do the following:

% cd mbsystem-5.3.1955
% install_makefiles
Because install_makefiles is a perl script, the executable perl must be available
in the installer's path. Once install_makefiles has been correctly configured and
run, give the command "make all" to generate the executable programs:

% make all
The make command will descend recursively down through the directory
structure, compiling source files, linking object files, and copying executables
and manual pages to the appropriate directories. The executables will be placed
in mbsystem-5.1.3/bin, the libraries in mbsystem-5.1.3/lib, and the manual pages
in mbsystem-5.1.3/man/man1.

Naturally, in order for users to use the MB-System utilities, the directory
containing the executables must be included in their path. Altering the user path
variable is generally accomplished by editing the initialization files hidden in the
user's home directory. Which files need to be edited depends on which command
line shell is being used. If the user works with csh, then the .cshrc and .login files
need to be changed. If the shell is bash, then the .bashrc and .profile files must
be altered. See the manual pages for the relevant shell program to determine
how to set the user environment. The executable perl must also be available in
the user's path for most of the macros to work.

Most users will also wish to specify which program they generally use to view
Postscript plots on their screen. This parameter is set with the mbdefaults
program (see the mbdefaults manual page for details). Popular open source
options for Postscript display include ghostview and gv. The postscript plots can
also be imported into proprietary tools like Adobe Illustrator, Adobe Acrobat, or
Preview on MacOs X. On old Unix machines, pageview worked well on Sun
workstations running Solaris, and xpsview on on Silicon Graphics machines
running Irix.

Last Updated: $Id: mbsystem_how_to_get.html 2185 2014-05-11 06:34:36Z


caress $

Back to MB-System Home Page...

Das könnte Ihnen auch gefallen