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
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
- 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.
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:
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:
(optional), boost (optional), aspell (optional) and Aiksaurus
(optional). Please refer to the system-specific sections regarding the
availability and installation of them.
(optional), boost (optional), aspell (optional) and Aiksaurus
(optional). Please refer to the system-specific sections regarding the
availability and installation of them.
either development/scons by, for example:
> cd development/scons
> scons frontend=qt4 qt_dir=d:/qt4 -j3 lyx
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
There are three types of command line options:
* key=value are user options. They are used to tell scons which
- * 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
* 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
* 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.
* 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
* 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
* prefix: directory where lyx will be installed
* exec_dir: directory where lyx binaries will be installed.
Default to $prefix/bin
* prefix: directory where lyx will be installed
* exec_dir: directory where lyx binaries will be installed.
Default to $prefix/bin
* version_suffix=yes/no/something : if specified, this suffix will be
appended to the user data directory.
* 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.
Static libraries (names correspond to their directories):
boost, intl, support, mathed, insets, frontends, graphics,
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:
Programs:
tex2lyx, client, lyx, all = tex2lyx + client + lyx
Installation:
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
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
$build_dir
- common: most of the intermediate files, mostly object files
- libs: all static libraries
$build_dir
- common: most of the intermediate files, mostly object files
- libs: all static libraries
- executables: lyxclient, tex2lyx, lyx
MSVS projects will be put to development/scons (and you should invoke
scons from there for this target).
- executables: lyxclient, tex2lyx, lyx
MSVS projects will be put to development/scons (and you should invoke
scons from there for this target).
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:
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
* install aiksaurus (http://aiksaurus.sourceforge.net/, optional):
There is no cygwin package for aiksaurus, so you should build it from
* run scons as you would do under linux.
Note: cygwin/qt does not follow the usual $qt_dir/include, $qt_dir/bin,
* 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,
directories can not be detected automatically, use options, for example,
directories in VCProjectEngine.dll.express.config, as suggested in
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/.
directories in VCProjectEngine.dll.express.config, as suggested in
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/.
- download qt4 source from trolltech (not the binary version, which
only works with mingw)
- get q../free patch for qt4
- download qt4 source from trolltech (not the binary version, which
only works with mingw)
- get q../free patch for qt4