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
(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
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).
(working on lyx_main.C, so only need to rebuild lyxbase)
> scons
(build again, only lyxbase will be rebuilt)
(working on lyx_main.C, so only need to rebuild lyxbase)
> scons
(build again, only lyxbase will be rebuilt)
* install (using the cygwin setup program) at least the following
packages and all other packages pulled in by dependencies:
* install (using the cygwin setup program) at least the following
packages and all other packages pulled in by dependencies:
* 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