]> git.lyx.org Git - lyx.git/blobdiff - INSTALL.scons
* INSTALL: Change required python version from 1.5.2 to 2.3
[lyx.git] / INSTALL.scons
index 277964a03006b6f7c16420a28640f1ef1d065267..2a43e6245a66ced6bff6fb8f2e0b4df8f933c94b 100644 (file)
@@ -13,7 +13,7 @@ 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.
 
 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
 1. General usage of scons
 2. *nix systems (Linux, Solaris and Mac OSX)
 3. Windows/mingw
@@ -29,8 +29,8 @@ Prerequisites:
 --------------
 
 * Python:
 --------------
 
 * 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.
 
   available on non-windows systems. Windows users can download and install
   python from http://www.python.org.
 
@@ -42,7 +42,7 @@ Prerequisites:
   in the near future.
  
 * Other libraries:
   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.
   (optional), boost (optional), aspell (optional) and Aiksaurus 
   (optional). Please refer to the system-specific sections regarding the 
   availability and installation of them.
@@ -87,6 +87,7 @@ Components to use/build:
   * nls=yes/no whether or not enable natural language support.
   * spell=aspell/pspell/ispell/auto: spell engine
 
   * 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)
 Paths: Most of them will be probed if not specified.
 
   * qt_dir: top level directory of qt (with subdirectory include, lib)
@@ -96,15 +97,17 @@ Paths: Most of them will be probed if not specified.
     $qt_dir/include
   * extra_inc_path, extra_inc_path1, extra_lib_path, extra_lib_path1:
     additional paths to other libraries
     $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
 
 
 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
   * 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
@@ -119,10 +122,13 @@ Installation options:
     Default to $prefix/bin
   * dest_dir: if specified, install to this directory instead of $prefix.
 
     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
 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:
 
 
 Targets:
@@ -140,13 +146,25 @@ You can specify one or more of the following targets:
   Misc:
     msvs_projects
 
   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
 
 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)
   > scons all -j3
     (build lyx, client and tex2lyx, options like qt_dir will be carried
     over here)
@@ -160,7 +178,6 @@ A typical working sequence:
     (lyx is built for /usr/site, but install to /install/dir)
 
 
     (lyx is built for /usr/site, but install to /install/dir)
 
 
-
 2. *nix systems (Linux, Solaris and Mac OSX)
 ============================================
 
 2. *nix systems (Linux, Solaris and Mac OSX)
 ============================================
 
@@ -169,27 +186,59 @@ problems.
 
 
 3. Windows/mingw
 
 
 3. Windows/mingw
-=======================
+================
 
   * install mingw with the following packages:
 
   * 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
   * 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.
 
 
   * 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
 
 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
 
 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
@@ -203,7 +252,7 @@ To build lyx for cygwin, you should
     packages and all other packages pulled in by dependencies:
 
     aspell        grep       libintl1       qt3-bin      tar
     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
 
     diffutils     jpeg       libpng         python
     gettext       libintl    libpng2        sed
 
@@ -211,7 +260,7 @@ To build lyx for cygwin, you should
 
 
 5. Windows/msvc
 
 
 5. Windows/msvc
-=====================
+===============
 
 To build lyx with msvc, you should 
 
 
 To build lyx with msvc, you should 
 
@@ -220,7 +269,12 @@ To build lyx with msvc, you should
     freely available from microsoft.
 
   * get windows platform SDK
     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
 
   * build qt4
     - download qt4 source from trolltech (not the binary version, which
@@ -230,8 +284,8 @@ To build lyx with msvc, you should
 
   * download and install the official zlib library from www.zlib.org.
 
 
   * 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.
 
   * 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.
@@ -242,9 +296,10 @@ To build lyx with msvc, you should
       - run 
         > scons [other options] msvs_projects
     Note that 
       - 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
 
 
 6. Troubleshooting