been set up as an alternative way to build lyx. As of writing, this system
only supports qt3 and qt4 frontends.
-This README file is organized as follows:
+This file is organized as follows:
1. General usage of scons
2. *nix systems (Linux, Solaris and Mac OSX)
3. Windows/mingw
--------------
* Python:
- Python >= 1.5.2 is required to run scons, but Python >= 2.2 is used by
- lyx itself so the newer version is recommended. Python is widely
+ 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.
in the near future.
* Other libraries:
- These include zlib (required), qt3 or qt4 (required), gettext
+ These include zlib (required), qt3 or 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.
* nls=yes/no whether or not enable natural language support.
* spell=aspell/pspell/ispell/auto: spell engine
+
Paths: Most of them will be probed if not specified.
* qt_dir: top level directory of qt (with subdirectory include, lib)
$qt_dir/include
* extra_inc_path, extra_inc_path1, extra_lib_path, extra_lib_path1:
additional paths to other libraries
+ * extra_bin_path: a convenient way to add an extra path to $PATH
Convenience options:
* fast_start=yes/no: if true, bypass initial configuration step and use
existing src/config.h
- * load_option=yes/no: if true, load previously saved command line
- options so you can run 'scons install' directly after a long
- 'scons all' building command.
+ * 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.
* 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
Default to $prefix/bin
* dest_dir: if specified, install to this directory instead of $prefix.
+
Compiler choice and flags:
* use_vc: use msvc instead of mingw g++ under windows
- * CC, LINK, CPP, CXX, CCFLAGS, LDFLAGS etc: compiler commands and
- flags. They can be set as environment variables as well.
+ * optimization: optimization flag to use (e.g. -O2)
+ * CC, LINK, CPP, CXX, CCFLAGS, LINKFLAGS etc: compiler commands and
+ flags. Setting CCFLAGS etc will replace default flags. These variables
+ can be set as environment variables as well.
Targets:
Misc:
msvs_projects
+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
+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).
+
A typical working sequence:
---------------------------
> cd development/scons
> scons frontend=qt4 qt_dir=/path/to/qt4
- (build lyx, and all necessary libraries...)
+ (build lyx, and all needed libraries...)
> scons all -j3
(build lyx, client and tex2lyx, options like qt_dir will be carried
over here)
(lyx is built for /usr/site, but install to /install/dir)
-
2. *nix systems (Linux, Solaris and Mac OSX)
============================================
3. Windows/mingw
-=======================
+================
* install mingw with the following packages:
- - FIXME
-
+ binutils-2.16.91-...tar.gz
+ gcc-core-3.4.5-...tar.gz
+ gcc-g++-3.4.5-...tar.gz
+ mingw-runtime-3.9.tar.gz
+ mingw-utils-0.3.tar.gz
+ MSYS-1.0.11-...exe
+ msysDTK-1.0.1.exe
+ w32api-3.6.tar.g
+
* install the latest Qt official "open source" binary package for
- Windows/Mingw
+ Windows/Mingw (required)
- * install iconv: latest gnuwin32 package installed in mingw tree
- (or elsewhere)
+ * install mingw/zlib (required):
+ Download zlib binaries and developer files (zlib-1.2.3-bin.zip and
+ zlib-1.2.3-lib.zip) from http://gnuwin32.sourceforge.net/packages/zlib.htm .
- * install mingw/zlib: ditto
+ * install iconv (optional):
+ Download libiconv from http://gnuwin32.sourceforge.net/packages/libiconv.htm
+ The complete package (without source) is recommended.
- * aspell: this is difficult. Everybody has his own compiled library.
- Mine is in D:\program\Aspell-0.60.4.
+ You may also try the windows binary (libiconv-x.x.x.bin.woe32.zip) of
+ iconv from one of the GNU mirrors listed in http://www.gnu.org/prep/ftp.html.
+
+ * install gettext (optional):
+ Download gettext from http://gnuwin32.sourceforge.net/packages/gettext.htm
+ The complete package (without source) is recommended.
+
+ You may also try the windows binary (gettext-runtime-x.x.x.bin.woe32.zip
+ and gettext-tools-x.x.x.bin.woe32.zip) from one of the GNU mirrors
+ (e.g. http://mirrors.usc.edu/pub/gnu/gettext/).
+
+ * install aspell (optional):
+ LyX uses aspell 0.60.4 and there is no, as of now, official windows
+ version. If you do not want to compile aspell from source by yourself,
+ your best bet is using Abdel's lyx 1.5.0svn experimental package located
+ at http://wiki.lyx.org/Windows/LyX150Experimental. The link to his
+ pre-built aspell package is http://younes.a.free.fr/Lyx-15-experimental
+
+ * install aiksaurus (optional):
+ Try to build aiksaurus from source (both mingw or msvc should work),
+ or look for pre-built package from the lyx 1.5.0svn experimental page.
* Open a mingw xterm, and start scons as usual.
+Note: gettext, iconv and zlib are usually decompressed to c:/mingw so no
+extra_inc_path etc is needed.
+
4. Windows/cygwin
-=======================
+=================
LyX should be easy to compile, but the qt3 library in the cygwin
distribution does not work with the current cygwin dll (version 1.5.19-4
packages and all other packages pulled in by dependencies:
aspell grep libintl1 qt3-bin tar
- coreutils jbigkit libintl2 qt3-devel
+ coreutils jbigkit libintl2 qt3-devel libiconv
diffutils jpeg libpng python
gettext libintl libpng2 sed
5. Windows/msvc
-=====================
+===============
To build lyx with msvc, you should
freely available from microsoft.
* get windows platform SDK
- Please follow the link in the MSVC webpage to download and configure
+ Please follow the link in the MSVC webpage to download and configure.
+ It is important that you add SDK paths to %INCLUDE% and %LIB% in, e.g.,
+ C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat.
+ If you plan to use the MSVS IDE, you should also update the Visual C++
+ directories in VCProjectEngine.dll.express.config, as suggested in
+ http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/.
* build qt4
- download qt4 source from trolltech (not the binary version, which
* download and install the official zlib library from www.zlib.org.
- * set up other optional libraries like aspell (following mingw
- instructions)
+ * optionally install iconv, gettext, aspell, aiksaurus following
+ the mingw instructions.
* start from msvc command prompt, use the use_vc option to build lyx.
You may need to use extra_inc_path etc to point to zlib paths.
- run
> scons [other options] msvs_projects
Note that
- - the resulting project files will use scons to build lyx
- - all command line options are used as usual (when msvs invoke
- scons)
+ - The resulting project files will use scons to build lyx
+ - All command line options, including rebuild, can be used as usual
+ (when msvs invoke scons).
+ - To use the msvc debugger, you have to use mode=debug (default).
6. Troubleshooting