| Mercury Monitor Reference Manual |
|---|
You must have the development files of glib2 already installed. If you are using the GNU C compiler, then you need at least version 2.96 (but version 3.3 or later is preferred). Depending on the features supported by the make command on your platform you may also have to install GNU make. There are other optional software packages that Mercury can utilize, you can find the full list in the Software Requirements section.
Mercury uses the GNU build utilities (autoconf, automake and libtool). The basic sequence for compilation and installation is:
./configure
make
make install
configure will auto-detect most third-party software packages, and will use the ones it can find. However, there are some things to look for:
| Java | Depending on how Java on your machine is installed, you may need to set the JAVA_HOME environment variable or pass the --with-java-includes option to configure. You should also make sure that jni_md.h that jni.h usually includes can also be found (either by creating a symlink in to it in the directory where jni.h is located or by setting the CPPFLAGS variable so the C preprocessor can find it). If configure reports that Java support is disabled, you should check config.log to learn what is missing. |
| GridLab environment | You must have either /etc/gridlab.conf present or the GRIDLAB_LOCATION environment variable set before invoking configure. If either condition is met, Mercury will automatically adapt itself to the GridLab configuration requirements. |
| HTML documentation | The distribution comes with the HTML documentation already generated. For rebuilding it, you need the gtk-doc-tools package, the DocBook XML stylesheets and the xsltproc XSLT processor installed. You also need a working XML catalog setup. |
| GSSAPI authentication | Mercury can auto-detect the GSSAPI libraries installed by Heimdal or MIT Kerberos 5. To use GSI, you have to pass the appropriate --with-globus-flavor option to configure and set the GLOBUS_LOCATION environment variable. Mercury uses the mercury service identifier by default. You can override it to always use the host certificate/host principal by passing the --with-service-name=host option to configure. |
The ./configure --help command lists all available configuration options. Please see the autoconf and libtool documentation for information about the standard options.
The configure script for the Mercury Grid Monitoring System supports the following extra options:
configure [--enable-static] [--disable-shared] [--enable-java] [--with-java-includes=DIR] [--disable-gtk-doc] [[--enable-module-*] | [--disable-module-*]] [--with-aio=METHOD] [--with-gridlab] [--with-openssl=DIR] [--with-gssapi=FLAVOR] [--with-service-name=NAME] [--with-globus-flavor=FLAVOR] [--with-doc-dir=DIR] [--with-sensorsocketdir=DIR] [--with-pidfiledir=DIR] [--with-pbs=DIR] [--enable-debug] [--with-dmalloc] [--disable-lpds-compat]
--enable-module-*, --disable-module-*. Enable or disable building the specified module. The default is build all modules that are available on the current platform. Passing the static value for an --enable-module option will cause the module to be linked statically into monitoring system components. Static linking is the default if dynamic module loading is not supported on the current platform.
--with-gridlab. Use this option if building the package in a GridLab environment. This option sets the default --prefix to $GRIDLAB_LOCATION/mercury-monitor-2.4.0 and enables runtime checking for the GRIDLAB_MONITORING_LOCATION environment variable in the consumer library. This option is automatically enabled if /etc/gridlab.conf exists.
--with-aio=METHOD. Select which function (select or poll) should be used for watching for events on file descriptors. Default is to prefer poll over select if both are available.
--enable-java. Enable Java support. If this option is specified and a proper Java building environment (meaning working java, javac, javah and javadoc commands and the jni.h header file) is not found, configure will stop with an error. If this option is not specified, configure will look for a Java build environment and use it if it is found, but it will go on without Java support if a Java environment is not found. If --disable-java is specified, configure will not look for a Java build environment.
--with-java-includes=DIR. Where to find <jni.h>. If the $JAVA_HOME environment variable is set, configure will try to look under $JAVA_HOME/include automatically. You only need to use this option if $JAVA_HOME is not set correctly.
--with-sensorsocketdir=DIR. Where to create the external sensor socket that is used for communication between the Main/Local monitor and external components (like the module loader or the application instrumentation library). Defaults to @localstatedir@/run. The value specified here can be overridden later in the configuration file(s).
--with-pidfiledir=DIR. Directory where to create PID files. Must be on a local filesystem (not NFS or AFS). Defaults to @localstatedir@/run. The value specified here can be overridden later in the configuration file(s).
--with-doc-dir=DIR. Directory where to install the documentation.
--disable-gtk-doc. Do not build the HTML documentation. Building the documentation requires the gtk-doc (gtk-doc-tools on Debian) package to be installed. By default the documentation will be rebuilt if gtk-doc is installed and a pre-built version of the documentation will be used if gtk-doc is missing.
--disable-shared. By thefault Mercury Grid Monitoring System uses dynamic linking. This option disables building of shared libraries and dynamically loaded modules.
--enable-static. Enables building of static libraries and modules. Default is no static libraries.
--with-openssl=DIR. Use OpenSSL installed in DIR. Default is to autodetect.
--with-gssapi=FLAVOR. Enable the use of GSSAPI for authentication. Supported flavors are heimdal, mit and gsi. Default is to autodetect.
--with-service-name=NAME. Selects the GSSAPI service name. The default is mercury. The meaning of this option depends on the GSSAPI implementation.
--with-globus-flavor=FLAVOR. Build with the specified Globus flavor. This option is required if you want to use GSI authentication.
--with-pbs=DIR. Use PBS installed in DIR for the pbs sensor module.
--enable-debug. Enable extra debugging. Disabled by default.
--with-dmalloc. Use the DMalloc library for dynamic memory allocation debugging.
--disable-lpds-compat. Disable binary compatibility support for old releases of Mercury.
The C compiler to use can be specified for the configure script via the CC environment variable. Any non-standard flags for the C compiler can be specified via the CFLAGS variable. The JAVA_HOME variable is used when looking for a Java build environment.
If some third-party software packages to be used by Mercury are not installed under the default locations searched by the compiler and the linker (these are usually /usr and /usr/local), you may need to add the appropriate -I... C preprocessor flags to the CPPFLAGS environment variable and the appropriate -L... linker flags to the LDFLAGS variable before calling configure.
| << Building and Installing Mercury | Monitoring System Configuration >> |