1.3. Configuring EMBOSS

Configuring EMBOSS is done using the configure script provided with the package (see the directory listing Section 1.1, “Downloading EMBOSS”). EMBOSS must be configured before it is compiled. There can be some pitfalls though, so look at the General Prerequisites (Section 1.7, “EMBOSS Installation: Platform-specific Concerns”) for your operating system before continuing.

1.3.1. A Simple Configuration

At its most simple all you should need to type is:

./configure --prefix=/usr/local/emboss

The command above configures EMBOSS so that it will subsequently be installed into the directory /usr/local/emboss. Note that this is the final installation directory and not the directory containing the EMBOSS source code. The subsequent installation commands will then create subdirectories as necessary.

Installation is as follows:

  • Binaries (/usr/local/emboss/bin)

  • Shared libraries (/usr/local/emboss/lib)

  • System-wide data (/usr/local/emboss/share/EMBOSS/data)

  • Configuration files (ACD files) for the applications (/usr/local/emboss/share/EMBOSS/acd)

  • Documentation (/usr/local/emboss/share/EMBOSS/doc)

To satisfy EMBOSS developers the source code header files are installed in: /usr/local/emboss/include.

The installation directory should, of course, be specified using a full path otherwise interesting failures may occur.

The output of the configuration will look something like this:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gawk... (cached) gawk
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
.
. output truncated for clarity
.
config.status: creating jemboss/resources/Makefile
config.status: creating jemboss/utils/Makefile
config.status: creating Makefile
config.status: executing depfiles commands

The installation process will automatically try to create your specified destination directory (e.g. /usr/local/emboss) if it doesn't already exist. However, if you do not have write permission in the parent directory then this will fail. So, at this stage, it is worthwhile to make sure that the installation directory can be created, e.g.:

mkdir /usr/local/emboss

and that you can create files in (have write access to) that directory. If the mkdir command above successfully creates the directory then you patently have write access to it; if not then log on as a system administrator, create the directory, and change the directory permissions accordingly using the chown and chmod UNIX commands.

We always recommend that you tell the configure script where you are going to install the compiled binaries by using the --prefix option. If you don't use the --prefix option then, like all such packages, EMBOSS will assume that it is to be installed into the /usr/local directory tree, thereby creating (if they don't already exist) the directories /usr/local/bin, /usr/local/lib, /usr/local/share etc. This might not be a problem for you but remember that EMBOSS contains hundreds of programs and therefore sharing /usr/local/bin with other binaries you've put on the system may make it difficult for you to work out what else you've installed. It is your decision.

1.3.2. Configuring EMBOSS to use Graphics

EMBOSS has the following graphic options as standard and there is usually no need to provide any special configuration options for them:

ps (postscript)
hpgl
hp7470
hp7580
meta
cps (colourps)
x11 (xwindows)
tekt (tektronics)
tek (tek4107t)
none (null, text)
data
xterm
svg

With the exception of x11 and xterm these are built into EMBOSS and require no external libraries. If you install the optional PNG graphics (see below) then two further options, png and gif, will appear in the above list.

It is theoretically possible to use the --without-x option of configure to specify that you do not want X11 graphics. Though we appreciate that some sites may wish to provide EMBOSS on a non-X server we do not recommend disabling X. There is generally little system overhead benefit in doing so and this option has not been tested on all operating systems. We will address these issues in future EMBOSS releases.

The configuration will automatically successfully detect the location of X11 on most systems and print out where it has been found. For example:

checking for X... libraries /usr/X11R6/lib64, headers /usr/X11R6/include

If you have installed X11 in a completely non-standard place, or have multiple X11 installations, then you may have to tell the configuration where you've put the one you want. This can be done using two options to configure:

--x-includes=DIR
--x-libraries=DIR

A common X11 error for pre-6.1.0 versions of EMBOSS, when using the Linux operating system, would be that configuration and compilation would appear to progress satisfactorily but would eventually fail reporting that:

-lX11 cannot be found

This would happen if you hadn't installed the X11 development packages (see (Section 1.7, “EMBOSS Installation: Platform-specific Concerns”)). EMBOSS releases from 6.1.0 onwards check more thoroughly for X11 development files at the configure stage and are likely to terminate the configuration with a helpful message on failure to find them.

1.3.3. Configuring with PNG Graphics

PNG graphics are an optional extra. PNG is, however, required if you intend using the Jemboss graphical interface to EMBOSS. It is also useful for producing output suitable for display in a web browser. The configure command will always attempt to find the files required to build-in PNG graphics but most operating system distributions do not include the required files by default. If you require PNG graphics then you should read the section PNG prerequisites (Section 1.7, “EMBOSS Installation: Platform-specific Concerns”) for each operating system. You can tell the configure command where the support headers and libraries are using the --with-pngdriver=DIR option. For example, if you have installed them under the directory root /usr/local/png then you would configure EMBOSS using:

./configure --prefix=/usr/local/emboss --with-pngdriver=/usr/local/png

For some operating systems, notably Linux, once the PNG support packages have been installed you do not need to specify the --with-pngdriver=DIR option, but for most you will have to.

The configuration will report whether it has found all the PNG support files it needs. On success it will say:

checking if png driver is wanted... yes
checking for inflateEnd in -lz... yes
checking for png_destroy_read_struct in -lpng... yes
checking for gdImageCreateFromPng in -lgd... yes
PNG libraries found

If any of the -lz, -lpng and -lgd tests fail then it will report the failure. For example:

checking if png driver is wanted... yes
checking for inflateEnd in -lz... yes
checking for png_destroy_read_struct in -lpng... yes
checking for gdImageCreateFromPng in -lgd... no
No png driver will be made due to libraries missing/old.

Common PNG installation errors are:

  • Failure to install all the PNG support files under the same directory root. The --with-pngdriver=DIR option expects all PNG support files (including ZLIB and gd) to be under the same tree unless they are in standard UNIX system directories (the directories /usr/lib, /lib and /usr/include are examples of the latter).

  • An error on running EMBOSS programs stating that there is a difference between the PNG version used in the compilation with that used when the program is run. This usually means that the gd library doesn't match the PNG library.

  • You used a version of the gd library lower than version 2.0.28. Versions below this did not contain both PNG and GIF support.

1.3.4. Configuring with PDF Graphics

PDF graphics are an optional extra. The configure command will always attempt to find the files required to build-in PDF graphics but most operating system distributions do not include the required files by default. If you require PDF graphics then you should read the section PDF prerequisites (Section 1.7, “EMBOSS Installation: Platform-specific Concerns”) for each operating system. You can tell the configure command where the support headers and libraries are using the --with-hpdf=DIR option. For example, if you have installed them under the directory root /usr/local/pdf then you would configure EMBOSS using:

./configure --prefix=/usr/local/emboss --with-hpdf=/usr/local/pdf

For some operating systems, notably Linux, once the PDF support packages have been installed you do not need to specify the --with-hpdf=DIR option, but for most you will have to.

The configuration will report whether it has found all the PDF support files it needs. On success it will say:

checking whether to look for pdf support... yes
checking for HPDF_New in -lhpdf... yes
PDF support found

If the -lhpdf library is not found then the failure will be reported. For example:

checking whether to look for pdf support... yes
checking for HPDF_New in -lhpdf... no
No pdf support (libhpdf) found.

Note that the PDF support library may have a dependency on PNG subject to how it was built.

1.3.5. Configuration, Ensembl and SQL

The functionality of the Ensembl access library in EMBOSS is optional and depends entirely on whether or not you have installed code for either of the MySQL or PostgreSQL packages on your system, or indeed both. The EMBOSS configuration will automatically detect whether those SQL packages exist on your system and build Ensembl support appropriately. As long as either package is installed (or both) then Ensembl support will be enabled. Here is an example of SQL detection by EMBOSS:

checking for mysql_config... /usr/bin/mysql_config
checking for MySQL libraries... yes
checking for pg_config... no
Not configuring for PostgreSQL

In this example MySQL has been successfully detected, but not PostgreSQL. So, in this case Ensembl support will be enabled and it will use the MySQL libraries.

Note that you will need to install the software development versions of the SQL packages. Many OS distributions will provide them pre-bundled with names such as:

  • mysql-devel

  • postgreSQL-devel

For other operating systems you will need to check for their availability and optionally install them as appropriate.

1.3.6. If you need to Configure Again

There are several reasons you may need to do this, not the least of which is if you realise you made a mistake in your original configuration. Another reason would be if your initial installation lacked PNG graphics support and you subsequently decide you need it.

The first thing you should do, assuming your previous configuration ran to completion and you have already compiled EMBOSS, is to clean up the unpacked source code. You do this by typing the following in the same directory as the configure script:

make clean

The second thing you should do is not always necessary but it is advisable. It is to remove any information the previous configure command may have cached. Look, in the same directory as the configure command, for a directory called autom4te.cache. If this directory exists then delete it.

rm -rf autom4te.cache

If your operating system hasn't been updated for a few years it is possible that, instead of an autom4te.cache directory, there is a config.cache file. If so then delete it.

It is now safe to configure EMBOSS again.

1.3.7. Advanced Configuration Options

The configure command has many other options; these can be shown using the --help option:

% ./configure --help

`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --disable-dependency-tracking  speeds up one-time build
  --enable-dependency-tracking   do not reject slow dependency extractors
  --enable-64             64 bit pointers
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-debug          debug (-g option on compiler)
  --enable-large          over 2Gb file support (default)
  --enable-purify         purify
  --enable-warnings       warnings (-Wall option on gcc compiler)
  --enable-devwarnings    strict warnings (gcc compiler only) for developers
  --enable-devextrawarnings    add extra warnings to devwarnings
  --enable-mprobe         mprobe memory allocation test
  --enable-savestats      save statistics and print with debug output

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-sgiabi           SGI compiler flags default=no
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-pic              try to use only PIC/non-PIC objects [default=use
                          both]
  --with-tags[=TAGS]      include additional configurations [automatic]
  --with-x                use the X Window System
  --with-docroot=DIR      root directory path of documentation defaults to none
  --with-gccprofile       selects profiling
  --with-java=DIR         root directory path of java installation
  --without-java          to disable java
  --with-javaos=DIR       root directory path of java installation include OS
  --with-hpdf=DIR         root directory path of hpdf installation defaults to /usr
  --without-hpdf          to disable pdf support
  --with-pngdriver=DIR    root directory path of png/gd/zlib installation defaults to /usr
  --without-pngdriver     to disable pngdriver usage completely
  --with-auth=AUTHTYPE    defaults PAM
  --with-thread=TYPE      thread type [default=linux]

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CXXCPP      C++ preprocessor
  F77         Fortran 77 compiler command
  FFLAGS      Fortran 77 compiler flags
  XMKMF       Path to xmkmf, Makefile generator for X Window System

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Important

The configuration tools used by EMBOSS are those provided by the GNU project (http://www.gnu.org). The GNU tools can be regarded as a template which can be modified to enable successful building of a software suite. Such tailoring has been done by the EMBOSS package. As a result, many of the configuration commands are legacy ones which should not be used. We'll first say which options to avoid and then describe the EMBOSS-specific options which have a potential use

1.3.8. Configuration Options to Avoid

--exec-prefix
--bindir
--sbindir
--libexecdir
--datarootdir
--datadir
--sysconfdir
--sharedstatedir
--localstatedir
--libdir
--includedir
--oldincludedir
--infodir
--mandir
--srcdir
--with-docroot
--docdir
--htmldir
--dvidir
--pdfdir
--psdir
--program-prefix
--program-suffix
--program-transform-name

Use of any of the above options will have no effect or cause unpredictable results.

1.3.9. Configuration Options to Use

--with-x, --without-x

These options control whether X11 support is enabled. By default --with-x is assumed and does not need to be added as an option. It's strongly recommend that X11 support is not turned off. You gain nothing by doing so and this option has not been tested on many platforms.

--x-includes=DIR and --x-libraries=DIR

These options allow you to specify the location of your X11 software if you've installed X11 in a non-standard place. The EMBOSS configuration will usually correctly find the X11 software so it should not be necessary to use these options.

--disable-shared

EMBOSS, by default, builds producing shared object libraries. Use of this option will force EMBOSS to build static libraries and executables. It will cause the compiled software to be significantly larger, but the executables then have no dependencies on any of the libraries. Using this flag may, under some circumstances, allow you to transfer executables between machines having similar operating systems. Most often, though, this option is used by EMBOSS developers to allow the use of software debugging tools.

--enable-warnings

This option will be ignored if your system does not use the GNU gcc compiler. If you are using gcc then several compilation warnings will be enabled. This option is used by developers as, with such a strongly-typed language as EMBOSS, all warnings are probably errors!

--enable-devwarnings

Turns on strict checking when used with the GNU gcc compiler. This flag is used by developers.

--enable-devextrawarnings

Turns on additional pedantic GNU gcc compiler warnings (e.g. padding alignment boundary checking) when used in conjunction with --enable-devwarnings. This flag is used by developers.

--with-gccprofile

This option should only ever be used with the GNU gcc compiler. It is used by developers to enable software profiling i.e. it allows developers to locate potentially inefficient parts of their programs. The compiler profiling libraries must have been installed for this option to work.

--with-sgiabi

This option must be used if you are using the IRIX operating system. Its use is described in the Platform-specific notes (Section 1.7, “EMBOSS Installation: Platform-specific Concerns”) for IRIX.

--enable-64

This option is best avoided. Its only utility is for 32bit systems where you want to force the use of 64bit pointers. None of the EMBOSS programs require anything approaching 2Gb of system memory. Also, the EMBOSS configuration by default will build optimally on 64bit systems without this option - it has no utility on 64bit systems.

--enable-debug

This option is provided for EMBOSS developers. It adds the appropriate compilation flag for using the GNU debugger gdb.

--with-pngdriver

This option has been described (Section 1.3.3, “Configuring with PNG Graphics”).

--enable-large

This option gives EMBOSS the ability to access files greater than 2Gb in size. This option is turned on by default and does not need to be specified. You can, if you wish, turn this ability off by using --disable-large.

--enable-purify

Sets flags for use with early versions of the PURIFY system. It is usually used in conjunction with the --disable-shared option. In most cases you should ignore this option.

--enable-mprobe

This option is provided for EMBOSS developers. It turns on mprobe memory allocation checks.

--enable-savestats

This option is provided for EMBOSS debugging. It turns on statistical checks. It should not be used for a normal installation.

--with-java=DIR

Only for use if building EMBOSS with support for the Jemboss graphical user interface. This specifies the location of the Java SDK e.g. /usr/local/jdk1.6.0_14/include. It is unlikely that you will ever need this option as the Jemboss installation script will automatically add it to the configuration command.

--with-javaos=DIR

Only for use if building EMBOSS with support for the Jemboss graphical user interface. This specifies the operating-system-specific location of the Java SDK e.g. /usr/local/jdk1.6.0_14/include/linux. It is unlikely that you will ever need this option as the Jemboss installation script will automatically add it to the configuration command.

--with-auth=AUTHTYPE

Only for use if building EMBOSS with support for the Jemboss graphical user interface. This specifies the type of username/password protocol to be used by a Jemboss server. It is unlikely that you will ever need this option as the Jemboss installation script will automatically add it to the configuration command. The available AUTHTYPEs are:

  • pam

  • shadow

  • rshadow

  • noshadow

  • aixshadow

  • hpuxshadow

Where possible you should use pam authentication. shadow is for systems without re-entrant shadow password access functions, rshadow is for systems with re-entrant shadow password access functions, noshadow is for systems that can only access password information from /etc/passwd, aixshadow is for AIX operating systems and hpuxshadow is for HPUX operating systems.

Note

If using pam with Debian distributions then, on releases of EMBOSS before 6.1.0, before configuring do:

setenv CFLAGS "-DDEBIAN" or
CFLAGS="-DDEBIAN"
export CFLAGS

depending on which command shell you are using (the first for csh shells, the second for sh shells). This flag is automatically added by recent releases of EMBOSS.

--with-thread=TYPE

Only for use if building EMBOSS with support for the Jemboss graphical user interface. This specifies the type of threading library to be used by a Jemboss server. It is unlikely that you will ever need this option as the Jemboss installation script will automatically add it to the configuration command. The possible values of TYPE are:

  • linux

  • freebsd

  • solaris

  • macos

  • hpux

  • irix

  • aix

  • osf