X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=INSTALL.scons;h=0969efa7e4df3e61cb5215f07fefdc3de67b7bd1;hb=23ab7f0819b2df0333f2d29346447b57cd5b2636;hp=3f5056feda8ce52411141e8db3bb6aaa5a54478f;hpb=b0442dfd66683cfb6905041703034d5feede1375;p=lyx.git diff --git a/INSTALL.scons b/INSTALL.scons index 3f5056feda..0969efa7e4 100644 --- a/INSTALL.scons +++ b/INSTALL.scons @@ -11,7 +11,7 @@ widely supported on the *nix systems, but not so under windows. They are not necessarily easy to use and maintain (at least to non-m4 experts) either. Because of these, a scons (http://www.scons.org) build system has been set up as an alternative way to build lyx. As of writing, this system -only supports qt3 and qt4 frontends. +only supports the qt4 frontend. This file is organized as follows: 1. General usage of scons @@ -30,20 +30,20 @@ Prerequisites: -------------- * Python: - Python >= 1.5.2 is required to run scons, but Python >= 2.3 is used by - lyx itself so the newer version is needed. Python is widely - available on non-windows systems. Windows users can download and install - python from http://www.python.org. + Python >= 2.6.0 is required to run scons, while LyX itself requires + Python >= 2.4.0 for scripts such as configure.py. Python is widely + available on non-windows systems. Windows users can download and + install python from http://www.python.org. * SCons: - scons >= 0.96.92 is needed. You can either use a full system-wide scons + scons >= 1.1.0 is needed. You can either use a full system-wide scons distribution or a light-weight one (called scons-local) installed along with the lyx source tree. Both variants of scons are freely available from http://www.scons.org. Note that LyX source may ship with scons-base in the near future. * Other libraries: - These include zlib (required), qt3 or qt4 (required), gettext + These include zlib (required), qt4 (required), gettext (optional), boost (optional), aspell (optional) and Aiksaurus (optional). Please refer to the system-specific sections regarding the availability and installation of them. @@ -56,8 +56,14 @@ The scons system resides under development/scons. You can invoke it from either development/scons by, for example: > cd development/scons > scons frontend=qt4 qt_dir=d:/qt4 -j3 lyx -or from top source directory by: - > scons -f development/scons/SConstruct frontend=qt4 all +or from any other directory and use -f option to point to the SConstruct +file: + > mkdir build + > cd build + > scons -f ../development/scons/SConstruct frontend=qt4 all +If you are tired of typing development/scons/SConstruct, you can link +development/scons/SConstruct to the top source directory and use this +SConstruct file. There are three types of command line options: * key=value are user options. They are used to tell scons which @@ -77,9 +83,7 @@ command 'scons -h'. Components to use/build: - * frontend=qt3/qt4: qt3 is the default for all *nix systems including - windows cygwin. qt4 is the default for windows/mingw and windows/ - msvc. gtk is not currently supported. + * frontend=qt4: qt4 is the only option right now. * mode=debug/release: lyx will be built under the debug or release directory, with different default build options. * boost=included/system/auto: whether or not use included boost, system @@ -88,7 +92,7 @@ Components to use/build: one. * gettext=included/system/auto * nls=yes/no whether or not enable natural language support. - * spell=aspell/pspell/ispell/auto: spell engine + * spell=aspell/auto: spell engine Paths: Most of them will be probed if not specified. @@ -106,12 +110,11 @@ Paths: Most of them will be probed if not specified. Convenience options: - * fast_start=yes/no: if true, bypass initial configuration step and use - existing src/config.h * load_option=yes/no/opt1,opt2/-opt1,opt2: if true, load previously saved command line options so you can run 'scons install' directly after a long 'scons all' building command. You can load selected options using load_option=opt1,opt2,... or exclude options using the - version of it. + Note that the option 'bundle' is not reloaded. * rebuild=target1,target2... By default, scons will exam all components when you build lyx. You can free scons from some hard work and save yourself some time by telling scons to rebuild only specified @@ -124,9 +127,14 @@ Installation options: * prefix: directory where lyx will be installed * exec_dir: directory where lyx binaries will be installed. Default to $prefix/bin - * dest_dir: if specified, install to this directory instead of $prefix. + * DESTDIR: if specified, install to this directory instead of $prefix. * version_suffix=yes/no/something : if specified, this suffix will be appended to the user data directory. + * win_installer: if specified under windows, and if 'installer' target + is given, generate NSIS installer specifed as win_installer which can + be a full path name. The default is lyx-version-timestamp-Installer.exe + for a development version, and lyx-version-Installer.exe for a released + version. Compiler choice and flags: @@ -144,13 +152,13 @@ You can specify one or more of the following targets: Static libraries (names correspond to their directories): boost, intl, support, mathed, insets, frontends, graphics, - controllers, client, qt3, qt4, lyxbase + controllers, client, qt4, lyxbase Programs: tex2lyx, client, lyx, all = tex2lyx + client + lyx Installation: - po, install = all + po + po, install = all + po, installer (windows only, need NSIS) Misc: - msvs_projects + msvs_projects, update_po Your built targets are put into $build_dir, which is debug (mode=debug), release (mode=release) or any name specified via build_dir=name. The @@ -158,12 +166,16 @@ directory structure is: $build_dir - common: most of the intermediate files, mostly object files - libs: all static libraries - - qt3 etc: lyx executable built with the frontend - executables: lyxclient, tex2lyx, lyx MSVS projects will be put to development/scons (and you should invoke scons from there for this target). +update_po is similar to 'cd po; make update-po' but does not generate +.gmo files, which is the task of the install target. Note that this +target is the only target that changes files (po/*.po in this case) +of the lyx source tree. + A typical working sequence: --------------------------- @@ -175,12 +187,10 @@ A typical working sequence: (build lyx, client and tex2lyx, options like qt_dir will be carried over here) > scons rebuild=lyxbase - (working on lyx_main.C, so only need to rebuild lyxbase) + (working on LyX.cpp, so only need to rebuild lyxbase) > scons (build again, only lyxbase will be rebuilt) - > scons fast_start=no --config=force - (need to regenerate src/config.h) - > scons prefix=/usr/site dest_dir=/install/dir + > scons prefix=/usr/site DESTDIR=/install/dir (lyx is built for /usr/site, but install to /install/dir) @@ -246,21 +256,15 @@ extra_inc_path etc is needed. 4. Windows/cygwin ================= -LyX should be easy to compile, but you must use the most recent cygwin -dll (version 1.5.20-1 as of July 2006) because the qt3 library in the -cygwin distribution does not work with previous versions due to broken -threading support. - To build lyx for cygwin, you should * install (using the cygwin setup program) at least the following packages and all other packages pulled in by dependencies: - aspell gzip libiconv qt3-bin - aspell-dev jpeg libpng qt3-devel - gcc libintl libpng2 - gettext libintl1 jpeg - gettext-devel libintl2 python + aspell gzip libiconv libQtGui4 + aspell-dev gettext libpng libQtGui4-devel + gcc gettext-devel libQtCore4 pkg-config + gcc4 libintl8 libQtCore4-devel python * install aiksaurus (http://aiksaurus.sourceforge.net/, optional): There is no cygwin package for aiksaurus, so you should build it from @@ -269,10 +273,10 @@ To build lyx for cygwin, you should * run scons as you would do under linux. Note: cygwin/qt does not follow the usual $qt_dir/include, $qt_dir/bin, -$qt_dir/lib directory structure. For example, cygwin/qt3 uses directories -/usr/include/qt3, /usr/lib/qt3/bin and /usr/lib/qt3/lib. If these +$qt_dir/lib directory structure. For example, cygwin/qt4 uses directories +/usr/include/qt4, /usr/lib/qt4/bin and /usr/lib/qt4/lib. If these directories can not be detected automatically, use options, for example, - qt_dir=/usr/lib/qt3 qt_inc_path=/usr/include/qt3 + qt_dir=/usr/lib/qt4 qt_inc_path=/usr/include/qt4 5. Windows/msvc @@ -292,7 +296,7 @@ To build lyx with msvc, you should directories in VCProjectEngine.dll.express.config, as suggested in http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/. - * build qt4 + * build qt4 - download qt4 source from trolltech (not the binary version, which only works with mingw) - get q../free patch for qt4