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
Components to use/build:
* frontend=qt4: qt4 is the only option right now.
- gtk is not currently supported.
* 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
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
* 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:
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
$build_dir
- common: most of the intermediate files, mostly object files
- libs: all static libraries
- - qt4 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:
---------------------------
(working on lyx_main.C, 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)