X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=INSTALL;h=57a46650d0da9190625b5b4c7237671aeeec6c7f;hb=f6cd5ab863cc9a460efb7a1dc7eb48b87d867655;hp=70910637ea8ada4c6f6796879424b3841ea1b369;hpb=23c3ed57f1caa0cdc678e8234b067fc5c52dee9c;p=lyx.git diff --git a/INSTALL b/INSTALL index 70910637ea..57a46650d0 100644 --- 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 - configures LyX according to your system. - When compiling for Qt, you may have to set - --with-qt-dir= - 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= + (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 Git checkouts ----------------------------- -If you have checked this out from Subversion, you need to have: -* automake >= 1.9 -* 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. -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.1.5. 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.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. 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,9 +96,27 @@ 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 --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 dev. + o --with-extra-lib=DIRECTORY that specifies the path where LyX will find extra libraries (qt4) it needs. Defaults to NONE (i.e. search in standard places). You can specify several @@ -120,28 +130,22 @@ 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-, e.g. lyx-1.4.1 - The LyX data directory will be something like /lyx-1.4.1/. + o --with-version-suffix[=SUFFIX] will install LyX as lyxSUFFIX. The + LyX data directory will be something like /lyxSUFFIX/. Additionally your user configuration files will be found in e.g. - $HOME/.lyx-1.4.1 + $HOME/.lyxSUFFIX. The default for SUFFIX is "-", + 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 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: @@ -199,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 @@ -234,6 +248,11 @@ cases: 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 ---------------------------- @@ -251,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 @@ -277,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 -------- @@ -310,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 8 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 + + + + false + + + + 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 + and tags. If neither ~/.fonts.conf nor + /etc/fonts/local.conf exist, you can create them with the following + content: + + + + + + + false + + + - 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 but are not formally part of any c/c++ standard. - They are not, therefore, included in the header file.