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.
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.
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.
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.
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.
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.
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.
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.
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
--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.
--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 AUTHTYPE
s 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.
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