These four steps will compile, test and install LyX:
- 0) Linux users beware: if compiling the Qt frontend, you need
- qt4 and qt4-devel packages of the same version to compile LyX.
+ 0) Linux users beware: You need qt4 and qt4-devel packages
+ of the same version to compile LyX.
- 1) ./configure
- configures LyX according to your system.
- When compiling for Qt, you may have to set
- --with-qt4-dir=<path-to-your-qt4-installation>
- if the environment variable QTDIR is not set.
+ In general, it is also recommended to have pkg-config
+ installed (the name might vary depending on your
+ distribution).
+
+ 1) ./configure configures LyX according to your system. You
+ may have to set --with-qt4-dir=<path-to-your-qt4-installation>
+ (for example, "--with-qt4-dir=/usr/share/qt4/") if the
+ environment variable QTDIR is not set and pkg-config is not
+ available.
+
+ See Note below if ./configure script is not present.
2) make
compiles the program.
if you want a smaller binary.
-Note for Subversion checkouts
+Note for Git checkouts
-----------------------------
-If you have checked this out from Subversion, you need to have:
-* automake >= 1.5
-* autoconf >= 2.52
-* gettext >= 0.12
+If you have checked this out from Git, you need to have:
+* automake >= 1.8
+* autoconf >= 2.59c
+* gettext >= 0.16.1
Then type "./autogen.sh" to build the needed configuration
-files and proceed as stated below.
+files and proceed as stated above/below.
You will also probably need GNU m4 (perhaps installed as gm4).
+
Requirements
------------
First of all, you will also need a recent C++ compiler, where recent
-means that the compilers are close to C++ standard conforming (gcc 3.x).
+means that the compilers are close to C++ standard conforming (gcc 4.x).
-LyX 1.6.x makes great use of C++ Standard Template Library (STL).
+LyX makes great use of C++ Standard Template Library (STL).
This means that gcc users will have to install the relevant libstdc++
library to be able to compile this version of LyX.
-LyX has been tested with Qt 4.2.x and Qt 4.3.x. The only special point
-to make is that you must ensure that both LyX and the Qt libraries are
-compiled with the same C++ compiler.
-
-Note that if Qt is using Xft2/fontconfig, you may need to install the
-latex-xft-fonts package (at ftp://ftp.lyx.org/pub/lyx/contrib/) to get
-maths symbols displayed properly. To find out, type:
-
- ldd `which lyx` | grep fontconfig
+For full LyX usability we suggest to use at least Qt 4.8 which has been
+widely tested. For compilation you need to compile against at least
+Qt 4.5.0. The only special point to make is that you must ensure that both
+LyX and the Qt libraries are compiled with the same C++ compiler.
-at the console. Most recent distributions are known to use fontconfig.
+To build LyX with spell checking capabilities included you have to
+install at least one of the development packages of the spell checker
+libraries. See the RELEASE-NOTES for details.
-If, however, your version of Qt does not use fontconfig, then TeX
-fonts should be added to the font path. 'man xset' is your friend.
* Other things to note
from:
ftp://ftp.gnu.org/gnu/gettext/
-To use the thesaurus, you will need to install libAikSaurus, available
-from:
- http://aiksaurus.sourceforge.net/
-
The two following programs should be available at configuration time:
o LaTeX2e should be correctly setup for the user you are logged in
as. Otherwise, LyX will not be able to run a number of tests. Note
that users can run these tests manually with Tools>Reconfigure.
- o Python 2.3 or newer installed to be able to import older LyX files
+ o Python 2.4 or newer must be installed. Python is used for many
+ simple tasks that are executed by external scripts, such as the
+ automatic configuration step and the import of older LyX documents
with the lyx2lyx script (this script is called automatically when
- opening a file).
+ opening a file). Python 3.0 or later is not supported.
Creating the Makefile
./configure
-For more complicated cases, LyX configure takes the following specific
+For more complicated cases, LyX configure honors the following specific
flags:
- o --enable-build-type=[rel(ease), dev(elopment), pre(release)]
- allows to tweak the compiled code. The options are equivalent to:
+ o --enable-build-type=[rel(ease), pre(release), dev(elopment), prof(iling), gprof]
+ allows to tweak the compiled code. The following table describes
+ the settings in terms of various options that are described later
- release: --enable-optimization=-O2 --disable-assertions
- --disable-stdlib-debug --disable-concept-checks
- --disable-warnings --disable-debug
+ release prerelease development profiling gprof
+ optimization -O2 -O2 -O -O2 -O2
+ assertions X X
+ stdlib-debug X
+ concept-checks X X
+ warnings X X
+ debug X X X X
+ gprof X
- prerelease: --enable-optimization=-O2 --enable-assertions
- --disable-stdlib-debug --enable-concept-checks
- --enable-warnings --enable-debug
-
- prerelease: --enable-optimization=-O --enable-assertions
- --enable-stdlib-debug --enable-concept-checks
- --enable-warnings --enable-debug
+ The default are as follows in terms of version number
+ release: stable release (1.x.y)
+ prerelease: version number contains alpha, beta, rc or pre.
+ development: version number contains dev.
o --with-extra-lib=DIRECTORY that specifies the path where LyX will
find extra libraries (qt4) it needs. Defaults to NONE
--with-extra-lib=DIRECTORY/lib --with-extra-inc=DIRECTORY/include
If DIRECTORY is not specified, the current prefix is used.
- o --with-version-suffix will install LyX as lyx-<version>, e.g. lyx-1.6.1
- The LyX data directory will be something like <whatever>/lyx-1.6.1/.
+ o --with-version-suffix[=SUFFIX] will install LyX as lyxSUFFIX. The
+ LyX data directory will be something like <whatever>/lyxSUFFIX/.
Additionally your user configuration files will be found in e.g.
- $HOME/.lyx-1.6.1
+ $HOME/.lyxSUFFIX. The default for SUFFIX is "-<currentversion>",
+ e.g. lyx-1.6.1.
You can use this feature to install more than one version of LyX
on the same system. You can optionally specify a "version" of your
own, by doing something like :
- ./configure --with-version-suffix=-latestsvn
+ ./configure --with-version-suffix=-latestdev
Note that the standard configure options --program-prefix,
--program-suffix and the others will not affect the shared LyX
If you encounter problems, please read the section 'Problems' at the end of
this file.
-In particular, the following options could be useful in some desperate
-cases:
+The following options allow to tweak more precisely the generated code:
+
+ o --enable-gprof instruments the code for use with the gprof
+ profiler. The result are only meaningful in conjunction with
+ --enable-build-type=release.
o --enable-optimization=VALUE enables you to set optimization to a
higher level as the default (-O), for example --enable-optimization=-O3.
want to use. The default value is qt4, which is the only available
frontend for now.
+ o --enable-monolithic-build[=boost,client,insets,mathed,core,tex2lyx,frontend-qt4]
+ that enables monolithic build of the given parts of the source
+ code. This should reduce the compilation time provided you have
+ enough memory (>500MB).
+
Compiling and installing LyX
----------------------------
architecture, use `make distclean' before reconfiguring for another
architecture.
-Preparing a binary distribution for the use of others
-------------------------------------------------------
-
- o Compile LyX with the right compiler switches for your
- architecture. Make sure you use the --without-latex-config switch
- of configure, since others might not be interested by your
- configuration :-)
-
- o Create a file README.bin describing your distribution and
- referring to *you* if problems arise. As a model, you can use the
- file development/tools/README.bin.example, which can be a good
- starting point.
-
- o Type `make bindist'. This will create a file
- lyx-1.xx.yy-bin.tar.gz. Rename it to reflect you architecture
- and the peculiarities of your build (e.g. static vs. dynamic).
-
- o Check that everything is correct by unpacking the distribution
- in some private place and running it. In particular, check the
- output of `ldd lyx' to know which libraries are really needed.
-
- o Upload your binary file to ftp.devel.lyx.org:/pub/incoming, and
- notify larsbj@lyx.org.
-
-
Problems
--------