X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=INSTALL;h=8f2836c742037cf5d7a1f007768b8a211917c643;hb=28f76b84c96323e4dad43140121aae01820b4c38;hp=254352835880a76cab21a108bb19062f1a5ae60a;hpb=778cff1cfffbeb9bceed849ccaed0499dc62c603;p=lyx.git diff --git a/INSTALL b/INSTALL index 2543528358..8f2836c742 100644 --- a/INSTALL +++ b/INSTALL @@ -1,12 +1,17 @@ -Compiling and installing LyX -============================ +Compiling and installing LyX with autotools +=========================================== + +This document is about compiling LyX with the autotools suite. If you +want to compile using using CMake (in particular on windows), please +refer to the INSTALL.cmake file. + Quick compilation guide ----------------------- These four steps will compile, test and install LyX: - 0) Linux users beware: You need qt4 and qt4-devel packages + 0) Linux users beware: You need qt5 and qt5-devel packages of the same version to compile LyX. In general, it is also recommended to have pkg-config @@ -14,8 +19,8 @@ These four steps will compile, test and install LyX: 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 + may have to set --with-qt-dir= + (for example, "--with-qt-dir=/usr/share/qt5/") if the environment variable QTDIR is not set and pkg-config is not available. @@ -36,9 +41,8 @@ Note for Git checkouts ----------------------------- If you have checked this out from Git, you need to have: -* automake >= 1.8 -* autoconf >= 2.59d -* gettext >= 0.16.1 +* automake (supported versions are 1.14--1.16) +* autoconf (supported versions are 2.65--2.69) Then type "./autogen.sh" to build the needed configuration files and proceed as stated above/below. @@ -48,42 +52,41 @@ You will also probably need GNU m4 (perhaps installed as gm4). Requirements ------------ -First of all, you will need a recent C++ compiler, where recent means -that the compilers are close to C++ standard conforming (gcc 4.x). +First of all, you will need a C++11 standard conforming compiler, like g++ (at +least 4.9, to have proper srd::regex) or clang++. LyX makes great use of the 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. -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. +For full LyX usability we suggest to use Qt 5.6 and higher, or at the +very least Qt 5.4. It is also possible to compile against Qt 6.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. 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. +Users of debian-based distributions are well advised to run +'apt-get build-dep lyx' before compiling to install proper dependencies. + * Other things to note -If you make modifications to files in src/ (for example by applying a -patch), you will need to have the GNU gettext package installed, due -to some dependencies in the makefiles. You can get the latest version -from: +If you make modifications to the source that affect any of the +translations or you change the translation files themselves (po/*.po) +files, you will need to have the GNU gettext package installed to +compile LyX with up-to-date translations (at least gettext version +0.16.1 is needed). You can get the latest version from: ftp://ftp.gnu.org/gnu/gettext/ 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.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). Python 3.0 or later is not supported. + o Python (2.7 or 3.5 and 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). Creating the Makefile @@ -106,22 +109,26 @@ flags: release prerelease development profiling gprof optimization -O2 -O2 -O -O2 -O2 assertions X X - stdlib-debug X - concept-checks X X + stdlib-assertions X + stdlib-debug warnings X X debug X X X X + maintainer-mode X - The defaults 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. + The defaults are as follows in terms of version number: + release: stable release (2.x.y) + prerelease: version number contains `alpha', `beta', `rc' or `pre'. + development: version number contains `dev'. The `profiling' build type uses the -fno-omit-frame-pointer option with gcc The `gprof' build type compiles and links with -pg option with gcc. + o --enable-qt6 that checks configuration with Qt 6.x, and then Qt + 5.x. By default, only Qt5 is tried. + o --with-extra-lib=DIRECTORY that specifies the path where LyX will - find extra libraries (qt4) it needs. Defaults to NONE + find extra libraries (like Qt) it needs. Defaults to NONE (i.e. search in standard places). You can specify several directories, separated by colons. @@ -196,10 +203,13 @@ set CXXFLAGS variable to other values as follows: Similarly, if you want to force the use of a specific compiler, you can give a value to the CXX variable. -If you encounter problems, please read the section 'Problems' at the end of -this file. +The following options allow you to tweak the generated code more +precisely (see the description of --enable-build-type for the default +values): -The following options allow you to tweak the generated code more precisely (see the description of --enable-build-type for the default values): + o --enable-cxx-mode=VALUE can be used to select a C++ standard, for + example --enable-cxx-mode=11. The default is to try C++14, and then + C++11. o --enable-optimization=VALUE enables you to set optimization to a higher level than the default, for example --enable-optimization=-O3. @@ -219,22 +229,18 @@ The following options allow you to tweak the generated code more precisely (see code which checks that some variables have sane values. Opposite is --disable-assertions. - o --enable-stdlib-debug adds some debug code in the standard - library; this slows down the code, but has been helpful in the - past to find bugs. - - o --enable-concept-checks adds some compile-time checks. There is no - run-time penalty. + o --enable-stdlib-assertions adds some bound checking code in the + libstdc++ standard library; this slows down the code, but has been + helpful in the past to find bugs. This has no effect when using + llvm's libc++ library. - o --without-latex-config that disables the automatic detection of your - latex configuration. This detection is automatically disabled if - latex cannot be found. If you find that you have to use this - flag, please report it as a bug. + o --enable-stdlib-debug encompasses stdlib-assertions and adds + additional checks in libstdc++. Note that this changes the ABI and + is in general incompatible with the system hunspell library (as of + version 1.5). You may have to use --disable-stdlib-debug when + linking development versions against your system's hunspell + library. This has no effect when using llvm's libc++ library. - 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 @@ -253,8 +259,9 @@ 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.png", -that can be used to display lyx-documents in filemanagers. +BTW: in the lib/images subdirectory there is also small icons +`lyx.png' and `lyx.svg', that can be used to display LyX documents in +filemanagers. If configure fails for some strange reason ------------------------------------------ @@ -273,69 +280,9 @@ you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. -If you have to use a `make' that does not supports the `VPATH' +If you have to use a `make' that does not support the `VPATH' variable, you have to compile LyX for one architecture at a time in the source code directory. After you have installed LyX for one architecture, use `make distclean' before reconfiguring for another architecture. -Problems --------- - -This section provides several hints that have been submitted by LyX -team members or users to help compiling on some particular -architectures. If you find that some of these hints are wrong, please -notify us. - - o On SUN Sparc Solaris, you need gnumake. The LyX makefiles do not - work with Solaris make. - - 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 exists, you can create them with the following - content: - - - - - - - false - - - - o Building on Solaris 11.1. Compilation does not work out of the box - at the moment (incompatible iconv argument parameters.) - One possible solution is to force ./configure to use appropriate - POSIX/SUS level, e.g.: - CPPFLAGS="-D_XOPEN_SOURCE=500" ./configure --disable-nls --prefix=/opt/lyx - For details see bug #8783.