3.4.2 Running ./configure


Configuration options

The ./configure command (generated by ./autogen.sh) provides many options for configuring make. To see them all, run:

./configure --help

Checking build dependencies

When ./configure is run without any arguments, it will check to make sure your system has everything required for compilation. This is done automatically when ./autogen.sh is run. If any build dependency is missing, ./configure will return with:

ERROR: Please install required programs:  foo

The following message is issued if you are missing programs that are only needed for building the documentation:

WARNING: Please consider installing optional programs:  bar

If you intend to build the documentation locally, you will need to install or update these programs accordingly.

Note: ./configure may fail to issue warnings for certain documentation build requirements that are not met. If you experience problems when building the documentation, you may need to do a manual check of Requirements for building documentation.


Configuring target directories

If you intend to use your local build to install a local copy of the program, you will probably want to configure the installation directory. Here are the relevant lines taken from the output of ./configure --help:

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’.

A typical installation prefix is ‘$HOME/usr’:

./configure --prefix=$HOME/usr

Note that if you plan to install a local build on a system where you do not have root privileges, you will need to do something like this anyway—make install will only succeed if the installation prefix points to a directory where you have write permission (such as your home directory). The installation directory will be automatically created if necessary.

The location of the lilypond command installed by this process will be ‘prefix/bin/lilypond’; you may want to add ‘prefix/bin/’ to your $PATH if it is not already included.

It is also possible to specify separate installation directories for different types of program files. See the full output of ./configure --help for more information.

If you encounter any problems, please see Problems.


Making an out-of-tree build

It is possible to compile LilyPond in a build tree different from the source tree, using the ‘--srcdir’ option of configure. Note that in some cases you may need to remove the output of a previous configure command by running make distclean in the main source directory before configuring the out-of-tree build:

make distclean
mkdir lily-build && cd lily-build
sourcedir/configure --srcdir=sourcedir

LilyPond — Contributor’s Guide