]> git.lyx.org Git - lyx.git/blobdiff - INSTALL
Fix lyx2lyx revertion for natbib.
[lyx.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index c9b2235c8a01ec9a805b1c79a613c7280989895c..1e003be75a22cde322a33e87880f15a590aa7f7d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -6,14 +6,20 @@ Quick compilation guide
 
 These four steps will compile, test and install LyX:
 
-       0) Linux users beware: if compiling the Qt frontend, you need
-           qt and qt-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 --with-frontend=qt4
-          configures LyX according to your system. 
-          When compiling for Qt, you may have to set
-             --with-qt-dir=<path-to-your-qt-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.
@@ -26,50 +32,38 @@ These four steps will compile, test and install LyX:
            if you want a smaller binary.
 
 
-Note for Subversion checkouts
+Note for Subversion (SVN) checkouts
 -----------------------------
 
 If you have checked this out from Subversion, you need to have:
-* automake >= 1.9
-* autoconf >= 2.52
-* gettext >= 0.12
+* 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.
 
 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.
-Compilers that are known to compile LyX are gcc 2.95.x and later
-and Digital C++ version 6.1 and later. Please tell us your experience
-with other compilers.
-
-It is _not_ possible to compile LyX with gcc 2.7.x and 2.8.x.
+means that the compilers are close to C++ standard conforming (gcc 4.x).
 
-LyX 1.4.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. Users of gcc 2.95.x
-will have to install the STLPort version of these libraries as the
-ones that come with gcc 2.95.x are too broken for us to use.
-
-LyX has been tested with Qt 4.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:
+library to be able to compile this version of LyX. 
 
-       ldd `which lyx` | grep fontconfig
+For full LyX usability we suggest to use at least Qt 4.6 which has been
+widely tested. For compilation you need to compile against at least
+Qt 4.2.2. 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. Both RH8 and Debian unstable 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
 
@@ -79,19 +73,17 @@ to some dependencies in the makefiles. You can get the latest version
 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 Edit>Reconfigure.
+    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
@@ -104,11 +96,26 @@ to create the Makefile by typing
 
   ./configure
 
-For more complicated cases, LyX configure takes the following specific
+For more complicated cases, LyX configure honors the following specific
 flags:
 
-  o --with-frontend=FRONTEND that allows to specify which frontend you
-    want to use. There is no default value: this switch is required.
+  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   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
+
+    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 svn.
 
   o --with-extra-lib=DIRECTORY that specifies the path where LyX will
     find extra libraries (qt4) it needs. Defaults to NONE
@@ -123,10 +130,11 @@ flags:
        --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.4.1
-    The LyX data directory will be something like <whatever>/lyx-1.4.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.4.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
@@ -138,13 +146,6 @@ flags:
     directory etc. so it is recommended that you use --with-version-suffix
     (or --prefix) instead.
 
-  o --enable-optimization=VALUE enables you to set optimization to a
-    higher level as the default (-O), for example --enable-optimization=-O3.
-
-  o --disable-optimization - you can use this to disable compiler
-    optimization of LyX. The compile may be much quicker with some
-    compilers, but LyX will run more slowly.
-
 There are also flags to control the internationalization support in
 LyX:
 
@@ -171,8 +172,8 @@ Moreover, the following generic configure flags may be useful:
     installation. [defaults to /usr/local]
 
   o --datadir=DIRECTORY gives the directory where all extra LyX
-    files (lyxrc example, documentation, templates and layouts
-    definitions) will be installed.
+    files (documentation, templates and layout definitions)
+    will be installed.
     [defaults to ${prefix}/share/lyx${program_suffix}]
 
   o --bindir=DIRECTORY gives the directory where the lyx binary
@@ -202,8 +203,18 @@ give a value to the CXX variable.
 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.
+
+  o --disable-optimization - you can use this to disable compiler
+    optimization of LyX. The compile may be much quicker with some
+    compilers, but LyX will run more slowly.
 
   o --enable-debug will add debug information to your binary. This
     requires a lot more disk space, but is a must if you want to try to
@@ -233,6 +244,15 @@ cases:
     latex cannot be found.  If you find that you have to use this
     flag, please report it as a bug.
 
+  o --with-frontend=FRONTEND that allows to specify which frontend you
+    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
 ----------------------------
@@ -250,7 +270,7 @@ to strip the lyx binary. In this case replace "make install" with
 
   make install-strip
 
-BTW: in the images subdirectory there is also a small icon "lyx.xpm",
+BTW: in the images subdirectory there is also a small icon "lyx.png",
 that can be used to display lyx-documents in filemanagers.
 
 If configure fails for some strange reason
@@ -276,31 +296,6 @@ the source code directory.  After you have installed LyX for one
 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
 --------
 
@@ -309,58 +304,50 @@ team member or users to help compiling on some particular
 architectures. If you find that some of this hints are wrong, please
 notify us.
 
-  o On SUN Sparc Solaris 8, you need gnumake. The LyX makefiles do not
+  o On SUN Sparc Solaris, you need gnumake. The LyX makefiles do not
     work with Solaris make.
 
-    The Solaris ar seg-faults trying to build the insets library. You
+    The Solaris ar seg-faults trying to build the insets library. You
     will need to use the ar from the GNU binutils for this subdirectory.
+    There is no problem with the Solaris 9 and 10 ar.
+
+    Qt4 uses the Xrender X11 extension for antialiased fonts. This
+    extension was added to Xsun starting from the Solaris 10 8/07
+    release, but it is not activated by default. To activate it, you
+    must issue (as root) the following command:
+    svccfg -s svc:/application/x11/x11-server setprop options/server_args=+xrender
+    and then restart the X server.
+
+    There is a problem with the fontconfig library shipped with
+    Solaris 10 8/07 causing a seg-fault when it is used by Qt4.
+    Until this is fixed, a workaround is replacing the shared library
+    /usr/lib/libfontconfig.so.1 with a copy from a previous release or
+    installing a new version of fontconfig from http://www.sunfreeware.com/
+
+    On Solaris, the default fontconfig configuration gives preference
+    to bitmap fonts at (not so small) sizes. As bitmapped fonts are not
+    antialiased, you may prefer changing this configuration. This may be
+    done by adding the following stanza
+
+          <match target="pattern">
+              <edit name="prefer_bitmap">
+                  <bool>false</bool>
+              </edit>
+          </match>
+
+    to either ~/.fonts.conf (for a per-user change) or /etc/fonts/local.conf
+    (for a global system change). The stanza should be added between the
+    <fontconfig> and </fontconfig> tags. If neither ~/.fonts.conf nor
+    /etc/fonts/local.conf exist, you can create them with the following
+    content:
+
+      <?xml version="1.0"?>
+      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+      <fontconfig>
+          <match target="pattern">
+              <edit name="prefer_bitmap">
+                  <bool>false</bool>
+              </edit>
+          </match>
+      </fontconfig>
 
-  o LyX can be compiled on Tru64 Unix with either GNU's gcc or the default
-    Compaq cxx compiler.
-
-    There are no Alpha-specific problems with gcc.
-
-    The following notes all refer to compilation with the Compaq cxx compiler.
-
-    LyX cannot be compiled on Tru64 Unix 4.0d or 4.0e with the default cxx
-    compiler. You should upgrade to at least cxx V6.2, to be found at
-    ftp::/ftp.compaq.com/pub/products/C-CXX/tru64/cxx/CXX622V40.tar. Users
-    running Tru64 Unix 4.0f and greater should have no real problems compiling
-    LyX.
-
-    cxx V6.2 will compile LyX out of the box.
-    cxx V6.3-020 is also known to work, although there is a bug in
-    /usr/include/cxx/deque that will break compilation in FormPreferences.C.
-    Compaq are investigating, but a patch that works /now/ is:
-
---- /usr/include/cxx/deque_safe Mon Mar  4 21:09:50 2002
-+++ /usr/include/cxx/deque      Mon Mar  4 21:09:00 2002
-@@ -570,9 +570,11 @@
-       {
-         if (size() >= x.size())
-           erase(copy(x.begin(), x.end(), begin()), end());
--        else
--          copy(x.begin() + size(), x.end(),
--               inserter(*this,copy(x.begin(),x.begin()+size(),begin())));
-+        else {
-+         const_iterator mid = x.begin() + difference_type(size());
-+         copy(x.begin(), mid, begin());
-+         insert(end(), mid, x.end());
-+       }
-       }
-       return *this;
-     }
-
-    At the time of writing, cxx V6.5-026 is the latest cxx compiler. It is
-    /not/ recommended. The compiler itself appears to be both buggy and
-    extremely bloated (trebling the size of the stripped LyX binary).
-
-    In order to compile LyX with the cxx compiler, you should run configure
-    with the following flags:
-       CXX='cxx -std strict_ansi'
-       CXXFLAGS='-nopure_cname -nocleanup -ptr /tmp/lyx_cxx_repository -O2'
-       CC='cc -std1'
-    The -nopure_cname flag is needed for compilers V6.3 and above because
-    LyX makes use of functions like popen, pclose that are defined in the
-    c version of <stdio.h> but are not formally part of any c/c++ standard.
-    They are not, therefore, included in the <cstdio> header file.