]> git.lyx.org Git - features.git/commitdiff
Scons: can now be executed from any directory
authorBo Peng <bpeng@lyx.org>
Sat, 16 Dec 2006 16:31:28 +0000 (16:31 +0000)
committerBo Peng <bpeng@lyx.org>
Sat, 16 Dec 2006 16:31:28 +0000 (16:31 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16303 a592a061-630c-0410-9148-cb99ea01b6c8

INSTALL.scons
development/scons/SConstruct

index 482cf90e798e1b0aa78c1254f0cf38dc61a7ef7a..44e5c100e153853ebd2d8afcc81f0a1dbd4fdda0 100644 (file)
@@ -56,8 +56,11 @@ The scons system resides under development/scons. You can invoke it from
 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
@@ -104,8 +107,6 @@ Paths: Most of them will be probed if not specified.
 
 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
@@ -122,7 +123,7 @@ Installation options:
   * 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.
 
@@ -156,7 +157,6 @@ directory structure is:
   $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
@@ -176,9 +176,7 @@ 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)
 
 
index 89961b347836d1b4e80e9053d64f4e7dcc18a36b..4a72e08be8d5868b02bbc7f6c2962211220b1dbf 100644 (file)
@@ -37,20 +37,11 @@ if version[0] == 0 and version[1] == 96 and version[2] < 92:
 
 # determine where I am ...
 #
-# called as 'cd development/scons; scons'
-if os.path.isfile('SConstruct'):
-    top_src_dir = '../..'
-    scons_dir = '.'
-# called as 'scons -f development/scons/SConstruct'
-elif os.path.isfile('configure.ac'):
-    top_src_dir = '.'
-    scons_dir = 'development/scons'
-else:
-    print "scons can only be called from top source directory, with command:"
-    print "   $ scons -f development/scons/SConstruct [other options]"
-    print "or from development/scons, with command:"
-    print "   $ scons [options]"
-    Exit(1)
+from SCons.Node.FS import default_fs
+# default_fs.SConstruct_dir is where SConstruct file is located.
+scons_dir = default_fs.SConstruct_dir.path
+# get the ../.. of scons_dir
+top_src_dir = os.path.split(os.path.split(default_fs.SConstruct_dir.abspath)[0])[0]
 
 
 #----------------------------------------------------------
@@ -1857,7 +1848,7 @@ if build_lyx:
     # Build lyx with given frontend
     #
     lyx = env.Program(
-        target = '$BUILDDIR/$frontend/lyx',
+        target = '$BUILDDIR/lyx',
         source = ['$BUILDDIR/common/main.C'],
         LIBS = [
             'lyxbase_pre',
@@ -1879,7 +1870,7 @@ if build_lyx:
     Alias('lyx', lyx)
 else:
     # define lyx even if lyx is not built with rebuild=no
-    lyx = [env.subst('$BUILDDIR/$frontend/${PROGPREFIX}lyx$PROGSUFFIX')]
+    lyx = [env.subst('$BUILDDIR/${PROGPREFIX}lyx$PROGSUFFIX')]
 
 
 if build_msvs_projects:
@@ -1980,7 +1971,7 @@ if build_msvs_projects:
             ['$TOP_SRCDIR/src/frontends/qt4/%s' % x for x in src_frontends_qt4_header_files],
         res = ['$TOP_SRCDIR/src/frontends/qt4/ui/%s' % x for x in src_frontends_qt4_ui_files],
         rebuildTargetOnly = False,
-        full_target = File(env.subst('$BUILDDIR/$frontend/lyx$PROGSUFFIX')).abspath)
+        full_target = File(env.subst('$BUILDDIR/lyx$PROGSUFFIX')).abspath)
 
 
 if build_po: