]> git.lyx.org Git - features.git/commitdiff
Change the indent level of python code from two to four
authorBo Peng <bpeng@lyx.org>
Tue, 27 Jun 2006 21:08:54 +0000 (21:08 +0000)
committerBo Peng <bpeng@lyx.org>
Tue, 27 Jun 2006 21:08:54 +0000 (21:08 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14250 a592a061-630c-0410-9148-cb99ea01b6c8

development/scons/SConstruct
development/scons/scons_utils.py
lib/configure.py
lib/scripts/TeXFiles.py
lib/scripts/convertDefault.py

index f714508df400ca80d11d85fd2db7e797797da72a..640510cf2103f05862d92561c5045e24146d2ab8 100644 (file)
@@ -1,4 +1,4 @@
-# vi:filetype=python:expandtab:tabstop=2:shiftwidth=2
+# vi:filetype=python:expandtab:tabstop=4:shiftwidth=4
 #
 # file SConstruct
 #
@@ -31,12 +31,12 @@ EnsureSConsVersion(0, 96)
 #
 # called as 'cd development/scons; scons'
 if os.path.isfile('SConstruct'):
-  top_src_dir = '../..'
-  scons_dir = '.'
+    top_src_dir = '../..'
+    scons_dir = '.'
 # called as 'scons -f development/scons/SConstruct'
 else:
-  top_src_dir = '.'
-  scons_dir = 'development/scons'
+    top_src_dir = '.'
+    scons_dir = 'development/scons'
 
 
 #----------------------------------------------------------
@@ -48,9 +48,9 @@ else:
 # detect version of lyx
 # only 1.4.x has frontends/qt2
 if os.path.isdir(os.path.join(top_src_dir, 'src', 'frontends', 'qt2')):
-  package_version = '1.4.2svn'
+    package_version = '1.4.2svn'
 else:
-  package_version = '1.5.0svn'
+    package_version = '1.5.0svn'
 
 devel_version = True
 default_build_mode = 'debug'
@@ -72,36 +72,36 @@ env_cache_file = 'env.cache'
 #----------------------------------------------------------
 
 if os.name == 'nt':
-  platform_name = 'win32'
-  default_frontend = 'qt4'
-  default_prefix = 'c:/program files/lyx'
-  default_with_x = False
-  default_packaging_method = 'windows'
+    platform_name = 'win32'
+    default_frontend = 'qt4'
+    default_prefix = 'c:/program files/lyx'
+    default_with_x = False
+    default_packaging_method = 'windows'
 elif os.name == 'posix' and sys.platform != 'cygwin':
-  platform_name = sys.platform
-  default_frontend = 'qt3'
-  default_prefix = '/usr/local'
-  default_with_x = True
-  default_packaging_method = 'posix'
+    platform_name = sys.platform
+    default_frontend = 'qt3'
+    default_prefix = '/usr/local'
+    default_with_x = True
+    default_packaging_method = 'posix'
 elif os.name == 'posix' and sys.platform == 'cygwin':
-  platform_name = 'cygwin'
-  default_frontend = 'qt3'
-  default_prefix = '/usr/local'
-  default_with_x = True
-  default_packaging_method = 'posix'
+    platform_name = 'cygwin'
+    default_frontend = 'qt3'
+    default_prefix = '/usr/local'
+    default_with_x = True
+    default_packaging_method = 'posix'
 elif os.name == 'darwin':
-  platform_name = 'macosx'
-  default_frontend = 'qt3'
-  # FIXME: macOSX default prefix?
-  default_prefix = '.'
-  default_with_x = False
-  default_packaging_method = 'macosx'
+    platform_name = 'macosx'
+    default_frontend = 'qt3'
+    # FIXME: macOSX default prefix?
+    default_prefix = '.'
+    default_with_x = False
+    default_packaging_method = 'macosx'
 else:  # unsupported system, assume posix behavior
-  platform_name = 'others'
-  default_frontend = 'qt3'
-  default_prefix = '.'
-  default_with_x = True
-  default_packaging_method = 'posix'
+    platform_name = 'others'
+    default_frontend = 'qt3'
+    default_prefix = '.'
+    default_with_x = True
+    default_packaging_method = 'posix'
 
 
 #---------------------------------------------------------
@@ -110,109 +110,109 @@ else:  # unsupported system, assume posix behavior
 #
 # You can set perminant default values in config.py
 if os.path.isfile('config.py'):
-  print "Getting options from config.py..."
-  print open('config.py').read()
+    print "Getting options from config.py..."
+    print open('config.py').read()
 
 opts = Options(['config.py'])
 opts.AddOptions(
-  # frontend
-  EnumOption('frontend', 'Main GUI', default_frontend,
-    allowed_values = ('xform', 'qt2', 'qt3', 'qt4', 'gtk') ),
-  # debug or release build
-  EnumOption('mode', 'Building method', default_build_mode,
-    allowed_values = ('debug', 'release') ),
-  # boost libraries
-  EnumOption('boost',
-    'Use included, system boost library, or try sytem boost first.',
-    'auto', allowed_values = (
-      'auto',       # detect boost, if not found, use included
-      'included',   # always use included boost
-      'system',     # always use system boost, fail if can not find
-      ) ),
-  #
-  EnumOption('gettext',
-    'Use included, system gettext library, or try sytem gettext first',
-    'auto', allowed_values = (
-      'auto',       # detect gettext, if not found, use included
-      'included',   # always use included gettext
-      'system',     # always use system gettext, fail if can not find
-      ) ),
-  #
-  EnumOption('spell', 'Choose spell checker to use.', 'auto',
-    allowed_values = ('aspell', 'pspell', 'ispell', 'auto', 'no') ),
-  # packaging method
-  EnumOption('packaging', 'Packaging method to use.', default_packaging_method,
-    allowed_values = ('windows', 'posix', 'macosx')),
-  #
-  BoolOption('fast_start', 'Whether or not use cached tests and keep current config.h', True),
-  # No precompiled header support (too troublesome to make it work for msvc)
-  # BoolOption('pch', 'Whether or not use pch', False),
-  # enable assertion, (config.h has ENABLE_ASSERTIOS
-  BoolOption('assertions', 'Use assertions', True),
-  # enable warning, (config.h has WITH_WARNINGS)
-  # default to False since MSVC does not have #warning
-  BoolOption('warnings', 'Use warnings', False),
-  # config.h define _GLIBCXX_CONCEPT_CHECKS
-  # Note: for earlier version of gcc (3.3) define _GLIBCPP_CONCEPT_CHECKS
-  BoolOption('concept_checks', 'Enable concept checks', True),
-  #
-  BoolOption('nls', 'Whether or not use native language support', True),
-  #
-  BoolOption('profiling', 'Whether or not enable profiling', False),
-  # config.h define _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC
-  BoolOption('stdlib_debug', 'Whether or not turn on stdlib debug', False),
-  # using x11?
-  BoolOption('X11', 'Use x11 windows system', default_with_x),
-  # use MS VC++ to build lyx
-  BoolOption('use_vc', 'Use MS VC++ to build lyx (cl.exe will be probed)', None),
-  #
-  PathOption('qt_dir', 'Path to qt directory', None),
-  #
-  PathOption('qt_include_path', 'Path to qt include directory', None),
-  #
-  PathOption('qt_lib_path', 'Path to qt library directory', None),
-  # build directory, will use $mode if not set
-  PathOption('build_dir', 'Build directory', None),
-  # extra include and libpath
-  PathOption('extra_inc_path', 'Extra include path', None),
-  #
-  PathOption('extra_lib_path', 'Extra library path', None),
-  #
-  PathOption('extra_bin_path', 'A convenient way to add a path to $PATH', None),
-  #
-  PathOption('extra_inc_path1', 'Extra include path', None),
-  #
-  PathOption('extra_lib_path1', 'Extra library path', None),
-  # rebuild only specifed, comma separated targets
-  ('rebuild', 'rebuild only specifed, comma separated targets', None),
-  # can be set to a non-existing directory
-  ('prefix', 'install architecture-independent files in PREFIX', default_prefix),
-  # version suffix
-  ('version_suffix', 'install lyx as lyx-suffix', None),
-  # how to load options
-  ('load_option', '''load option from previous scons run. option can be
-    yes (default): load all options
-    no: do not load any option
-    opt1,opt2: load specified options
-    -opt1,opt2: load all options other than specified ones''', 'yes'),
-  #
-  ('optimization', 'optimization CCFLAGS option.', None),
-  #
-  PathOption('exec_prefix', 'install architecture-independent executable files in PREFIX', None),
-  # log file
-  ('logfile', 'save commands (not outputs) to logfile', default_log_file),
-  # provided for backward compatibility
-  ('dest_dir', 'install to DESTDIR. (Provided for backward compatibility only)', None),
-  # environment variable can be set as options.
-  ('DESTDIR', 'install to DESTDIR', None),
-  ('CC', 'replace default $CC', None),
-  ('LINK', 'replace default $LINK', None),
-  ('CPP', 'replace default $CPP', None),
-  ('CXX', 'replace default $CXX', None),
-  ('CXXCPP', 'replace default $CXXCPP', None),
-  ('CCFLAGS', 'replace default $CCFLAGS', None),
-  ('CPPFLAGS', 'replace default $CPPFLAGS', None),
-  ('LINKFLAGS', 'replace default $LINKFLAGS', None),
+    # frontend
+    EnumOption('frontend', 'Main GUI', default_frontend,
+        allowed_values = ('xform', 'qt2', 'qt3', 'qt4', 'gtk') ),
+    # debug or release build
+    EnumOption('mode', 'Building method', default_build_mode,
+        allowed_values = ('debug', 'release') ),
+    # boost libraries
+    EnumOption('boost',
+        'Use included, system boost library, or try sytem boost first.',
+        'auto', allowed_values = (
+            'auto',       # detect boost, if not found, use included
+            'included',   # always use included boost
+            'system',     # always use system boost, fail if can not find
+            ) ),
+    #
+    EnumOption('gettext',
+        'Use included, system gettext library, or try sytem gettext first',
+        'auto', allowed_values = (
+            'auto',       # detect gettext, if not found, use included
+            'included',   # always use included gettext
+            'system',     # always use system gettext, fail if can not find
+            ) ),
+    #
+    EnumOption('spell', 'Choose spell checker to use.', 'auto',
+        allowed_values = ('aspell', 'pspell', 'ispell', 'auto', 'no') ),
+    # packaging method
+    EnumOption('packaging', 'Packaging method to use.', default_packaging_method,
+        allowed_values = ('windows', 'posix', 'macosx')),
+    #
+    BoolOption('fast_start', 'Whether or not use cached tests and keep current config.h', True),
+    # No precompiled header support (too troublesome to make it work for msvc)
+    # BoolOption('pch', 'Whether or not use pch', False),
+    # enable assertion, (config.h has ENABLE_ASSERTIOS
+    BoolOption('assertions', 'Use assertions', True),
+    # enable warning, (config.h has WITH_WARNINGS)
+    # default to False since MSVC does not have #warning
+    BoolOption('warnings', 'Use warnings', False),
+    # config.h define _GLIBCXX_CONCEPT_CHECKS
+    # Note: for earlier version of gcc (3.3) define _GLIBCPP_CONCEPT_CHECKS
+    BoolOption('concept_checks', 'Enable concept checks', True),
+    #
+    BoolOption('nls', 'Whether or not use native language support', True),
+    #
+    BoolOption('profiling', 'Whether or not enable profiling', False),
+    # config.h define _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC
+    BoolOption('stdlib_debug', 'Whether or not turn on stdlib debug', False),
+    # using x11?
+    BoolOption('X11', 'Use x11 windows system', default_with_x),
+    # use MS VC++ to build lyx
+    BoolOption('use_vc', 'Use MS VC++ to build lyx (cl.exe will be probed)', None),
+    #
+    PathOption('qt_dir', 'Path to qt directory', None),
+    #
+    PathOption('qt_include_path', 'Path to qt include directory', None),
+    #
+    PathOption('qt_lib_path', 'Path to qt library directory', None),
+    # build directory, will use $mode if not set
+    PathOption('build_dir', 'Build directory', None),
+    # extra include and libpath
+    PathOption('extra_inc_path', 'Extra include path', None),
+    #
+    PathOption('extra_lib_path', 'Extra library path', None),
+    #
+    PathOption('extra_bin_path', 'A convenient way to add a path to $PATH', None),
+    #
+    PathOption('extra_inc_path1', 'Extra include path', None),
+    #
+    PathOption('extra_lib_path1', 'Extra library path', None),
+    # rebuild only specifed, comma separated targets
+    ('rebuild', 'rebuild only specifed, comma separated targets', None),
+    # can be set to a non-existing directory
+    ('prefix', 'install architecture-independent files in PREFIX', default_prefix),
+    # version suffix
+    ('version_suffix', 'install lyx as lyx-suffix', None),
+    # how to load options
+    ('load_option', '''load option from previous scons run. option can be
+        yes (default): load all options
+        no: do not load any option
+        opt1,opt2: load specified options
+        -opt1,opt2: load all options other than specified ones''', 'yes'),
+    #
+    ('optimization', 'optimization CCFLAGS option.', None),
+    #
+    PathOption('exec_prefix', 'install architecture-independent executable files in PREFIX', None),
+    # log file
+    ('logfile', 'save commands (not outputs) to logfile', default_log_file),
+    # provided for backward compatibility
+    ('dest_dir', 'install to DESTDIR. (Provided for backward compatibility only)', None),
+    # environment variable can be set as options.
+    ('DESTDIR', 'install to DESTDIR', None),
+    ('CC', 'replace default $CC', None),
+    ('LINK', 'replace default $LINK', None),
+    ('CPP', 'replace default $CPP', None),
+    ('CXX', 'replace default $CXX', None),
+    ('CXXCPP', 'replace default $CXXCPP', None),
+    ('CCFLAGS', 'replace default $CCFLAGS', None),
+    ('CPPFLAGS', 'replace default $CPPFLAGS', None),
+    ('LINKFLAGS', 'replace default $LINKFLAGS', None),
 )
 
 # copied from SCons/Options/BoolOption.py
@@ -225,68 +225,68 @@ false_strings = ('n', 'no', 'false', 'f', '0', 'off', 'none')
 #
 # if fast_start=yes (default), load variables from env_cache_file
 if (not ARGUMENTS.has_key('fast_start') or \
-  ARGUMENTS['fast_start'] in true_strings) \
-  and os.path.isfile(env_cache_file):
-  fast_start = True
-  cache_file = open(env_cache_file)
-  env_cache = cPickle.load(cache_file)
-  cache_file.close()
-  print '------------ fast_start mode --------------------'
-  print '  Use cached test results and current config.h'
-  print '  use fast_start=no to override'
-  print
+    ARGUMENTS['fast_start'] in true_strings) \
+    and os.path.isfile(env_cache_file):
+    fast_start = True
+    cache_file = open(env_cache_file)
+    env_cache = cPickle.load(cache_file)
+    cache_file.close()
+    print '------------ fast_start mode --------------------'
+    print '  Use cached test results and current config.h'
+    print '  use fast_start=no to override'
+    print
 else:
-  fast_start = False
-  env_cache = {}
+    fast_start = False
+    env_cache = {}
 
 # if load_option=yes (default), load saved comand line options
 #
 # This option can take value yes/no/opt1,opt2/-opt1,opt2
 # and tries to be clever in choosing options to load
 if (not ARGUMENTS.has_key('load_option') or \
-  ARGUMENTS['load_option'] not in false_strings) \
-  and os.path.isfile(env_cache_file):
-  cache_file = open(env_cache_file)
-  opt_cache = cPickle.load(cache_file)['arg_cache']
-  cache_file.close()
-  # import cached options, but we should ignore qt_dir when frontend changes
-  if ARGUMENTS.has_key('frontend') and opt_cache.has_key('frontend') \
-    and ARGUMENTS['frontend'] != opt_cache['frontend'] \
-    and opt_cache.has_key('qt_dir'):
-    opt_cache.pop('qt_dir')
-  # some options will require full rebuild
-  # these are in general things that will change config.h
-  for arg in ['version_suffix', 'nls', 'boost', 'spell']:
-    if ARGUMENTS.has_key(arg) and ((not opt_cache.has_key(arg)) or \
-      ARGUMENTS[arg] != opt_cache[arg]):
-      if fast_start:
-        print "  ** fast_start is disabled because of the change of option", arg
-        print
-        fast_start = False
-  # and we do not cache some options
-  for arg in ['fast_start', 'load_option']:
-    if opt_cache.has_key(arg):
-      opt_cache.pop(arg)
-  # now, if load_option=opt1,opt2 or -opt1,opt2
-  if ARGUMENTS.has_key('load_option') and \
-    ARGUMENTS['load_option'] not in true_strings + false_strings:
-    # if -opt1,opt2 is specified, do not load these options
-    if ARGUMENTS['load_option'][0] == '-':
-      for arg in ARGUMENTS['load_option'][1:].split(','):
+    ARGUMENTS['load_option'] not in false_strings) \
+    and os.path.isfile(env_cache_file):
+    cache_file = open(env_cache_file)
+    opt_cache = cPickle.load(cache_file)['arg_cache']
+    cache_file.close()
+    # import cached options, but we should ignore qt_dir when frontend changes
+    if ARGUMENTS.has_key('frontend') and opt_cache.has_key('frontend') \
+        and ARGUMENTS['frontend'] != opt_cache['frontend'] \
+        and opt_cache.has_key('qt_dir'):
+        opt_cache.pop('qt_dir')
+    # some options will require full rebuild
+    # these are in general things that will change config.h
+    for arg in ['version_suffix', 'nls', 'boost', 'spell']:
+        if ARGUMENTS.has_key(arg) and ((not opt_cache.has_key(arg)) or \
+            ARGUMENTS[arg] != opt_cache[arg]):
+            if fast_start:
+                print "  ** fast_start is disabled because of the change of option", arg
+                print
+                fast_start = False
+    # and we do not cache some options
+    for arg in ['fast_start', 'load_option']:
         if opt_cache.has_key(arg):
-          opt_cache.pop(arg)
-    # if opt1,opt2 is specified, only load specified options
-    else:
-      args = ARGUMENTS['load_option'].split(',')
-      for arg in opt_cache.keys():
-        if arg not in args:
-          opt_cache.pop(arg)
-  # now restore options as if entered from command line
-  for key in opt_cache.keys():
-    if not ARGUMENTS.has_key(key):
-      ARGUMENTS[key] = opt_cache[key]
-      print "Restoring cached option  %s=%s" % (key, ARGUMENTS[key])
-  print
+            opt_cache.pop(arg)
+    # now, if load_option=opt1,opt2 or -opt1,opt2
+    if ARGUMENTS.has_key('load_option') and \
+        ARGUMENTS['load_option'] not in true_strings + false_strings:
+        # if -opt1,opt2 is specified, do not load these options
+        if ARGUMENTS['load_option'][0] == '-':
+            for arg in ARGUMENTS['load_option'][1:].split(','):
+                if opt_cache.has_key(arg):
+                    opt_cache.pop(arg)
+        # if opt1,opt2 is specified, only load specified options
+        else:
+            args = ARGUMENTS['load_option'].split(',')
+            for arg in opt_cache.keys():
+                if arg not in args:
+                    opt_cache.pop(arg)
+    # now restore options as if entered from command line
+    for key in opt_cache.keys():
+        if not ARGUMENTS.has_key(key):
+            ARGUMENTS[key] = opt_cache[key]
+            print "Restoring cached option  %s=%s" % (key, ARGUMENTS[key])
+    print
 
 # save arguments
 env_cache['arg_cache'] = ARGUMENTS
@@ -313,26 +313,26 @@ prefix = env['prefix']
 mode = env['mode']
 
 if platform_name == 'win32':
-  if env.has_key('use_vc'):
-    use_vc = env['use_vc']
-    if WhereIs('cl.exe') is None:
-      print "cl.exe is not found. Are you using the MSVC environment?"
-      Exit(2)
-  elif WhereIs('cl.exe') is not None:
-    use_vc = True
-  else:
-    use_vc = False
+    if env.has_key('use_vc'):
+        use_vc = env['use_vc']
+        if WhereIs('cl.exe') is None:
+            print "cl.exe is not found. Are you using the MSVC environment?"
+            Exit(2)
+    elif WhereIs('cl.exe') is not None:
+        use_vc = True
+    else:
+        use_vc = False
 else:
-  use_vc = False
+    use_vc = False
 
 # lyx will be built to $build/build_dir so it is possible
 # to build multiple build_dirs using the same source
 # $mode can be debug or release
 if env.has_key('build_dir') and env['build_dir'] is not None:
-  env['BUILDDIR'] = env['build_dir']
+    env['BUILDDIR'] = env['build_dir']
 else:
-  # Determine the name of the build $mode
-  env['BUILDDIR'] = '#' + mode
+    # Determine the name of the build $mode
+    env['BUILDDIR'] = '#' + mode
 
 # all built libraries will go to build_dir/libs
 # (This is different from the make file approach)
@@ -366,27 +366,27 @@ env['PACKAGE_VERSION'] = package_version
 # determine share_dir etc
 packaging_method = env.get('packaging')
 if packaging_method == 'windows':
-  share_dir = 'Resources'
-  man_dir = 'Resources/man/man1'
-  locale_dir = 'Resources/locale'
-  default_prefix = 'c:/program files/lyx'
+    share_dir = 'Resources'
+    man_dir = 'Resources/man/man1'
+    locale_dir = 'Resources/locale'
+    default_prefix = 'c:/program files/lyx'
 else:
-  share_dir = 'share/lyx'
-  man_dir = 'man/man1'
-  locale_dir = 'share/locale'
-  default_prefix = '/usr/local/'
+    share_dir = 'share/lyx'
+    man_dir = 'man/man1'
+    locale_dir = 'share/locale'
+    default_prefix = '/usr/local/'
 
 # install to default_prefix by default
 # program suffix: can be yes, or a string
 if env.has_key('version_suffix'):
-  if env['version_suffix'] in true_strings:
-    program_suffix = package_version
-  elif env['version_suffix'] in false_strings:
-    program_suffix = ''
-  else:
-    program_suffix = env['version_suffix']
+    if env['version_suffix'] in true_strings:
+        program_suffix = package_version
+    elif env['version_suffix'] in false_strings:
+        program_suffix = ''
+    else:
+        program_suffix = env['version_suffix']
 else:
-  program_suffix = ''
+    program_suffix = ''
 # used by package.C.in
 env['PROGRAM_SUFFIX'] = program_suffix
 
@@ -394,9 +394,9 @@ env['PROGRAM_SUFFIX'] = program_suffix
 add_suffix = packaging_method != 'windows'
 # LYX_DIR are different (used in package.C.in)
 if add_suffix:
-  env['LYX_DIR'] = Dir(os.path.join(prefix, share_dir + program_suffix)).abspath
+    env['LYX_DIR'] = Dir(os.path.join(prefix, share_dir + program_suffix)).abspath
 else:
-  env['LYX_DIR'] = Dir(os.path.join(prefix, share_dir)).abspath
+    env['LYX_DIR'] = Dir(os.path.join(prefix, share_dir)).abspath
 # we need absolute path for package.C
 env['LOCALEDIR'] = Dir(os.path.join(prefix, locale_dir)).abspath
 
@@ -408,12 +408,12 @@ env['LOCALEDIR'] = Dir(os.path.join(prefix, locale_dir)).abspath
 # Since Tool('mingw') will reset CCFLAGS etc, this should be
 # done before getEnvVariable
 if platform_name == 'win32':
-  if use_vc:
-    env.Tool('msvc')
-    env.Tool('mslink')
-  else:
-    env.Tool('mingw')
-    env.AppendUnique(CPPPATH = ['#c:/MinGW/include'])
+    if use_vc:
+        env.Tool('msvc')
+        env.Tool('mslink')
+    else:
+        env.Tool('mingw')
+        env.AppendUnique(CPPPATH = ['#c:/MinGW/include'])
 
 # we differentiate between hard-coded options and default options
 # hard-coded options are required and will always be there
@@ -431,89 +431,89 @@ C_COMPILER = env.subst('$CC')
 C_CCFLAGS = env.subst('$CCFLAGS').split()
 # if we use ms vc, the commands are fine (cl.exe and link.exe)
 if use_vc:
-  # /TP treat all source code as C++
-  # C4819: The file contains a character that cannot be represented
-  #   in the current code page (number)
-  # C4996: foo was decleared deprecated
-  CCFLAGS_required.extend(['/TP', '/EHsc'])
-  CCFLAGS_default.extend(['/wd4819', '/wd4996', '/nologo'])
+    # /TP treat all source code as C++
+    # C4819: The file contains a character that cannot be represented
+    #   in the current code page (number)
+    # C4996: foo was decleared deprecated
+    CCFLAGS_required.extend(['/TP', '/EHsc'])
+    CCFLAGS_default.extend(['/wd4819', '/wd4996', '/nologo'])
 else:
-  if env.has_key('CXX') and env['CXX']:
-    env['CC'] = env.subst('$CXX')
-    env['LINK'] = env.subst('$CXX')
-  else:
-    env['CC'] = 'g++'
-    env['LINK'] = 'g++'
+    if env.has_key('CXX') and env['CXX']:
+        env['CC'] = env.subst('$CXX')
+        env['LINK'] = env.subst('$CXX')
+    else:
+        env['CC'] = 'g++'
+        env['LINK'] = 'g++'
 
 # for debug/release mode
 if env.has_key('optimization') and env['optimization'] is not None:
-  # if user supplies optimization flags, use it anyway
-  CCFLAGS_required.extend(env['optimization'].split())
-  # and do not use default
-  set_default_optimization_flags = False
+    # if user supplies optimization flags, use it anyway
+    CCFLAGS_required.extend(env['optimization'].split())
+    # and do not use default
+    set_default_optimization_flags = False
 else:
-  set_default_optimization_flags = True
+    set_default_optimization_flags = True
 
 if mode == 'debug':
-  if use_vc:
-    CCFLAGS_required.append('/Zi')
-    LINKFLAGS_required.extend(['/debug', '/map'])
-  else:
-    CCFLAGS_required.append('-g')
-    CCFLAGS_default.append('-O')
+    if use_vc:
+        CCFLAGS_required.append('/Zi')
+        LINKFLAGS_required.extend(['/debug', '/map'])
+    else:
+        CCFLAGS_required.append('-g')
+        CCFLAGS_default.append('-O')
 elif mode == 'release' and set_default_optimization_flags:
-  if use_vc:
-    CCFLAGS_default.append('/O2')
-  else:
-    CCFLAGS_default.append('-O2')
+    if use_vc:
+        CCFLAGS_default.append('/O2')
+    else:
+        CCFLAGS_default.append('-O2')
 
 # msvc uses separate tools for profiling
 if env.has_key('profiling') and env['profiling']:
-  if use_vc:
-    print 'Visual C++ does not use profiling options'
-  else:
-    CCFLAGS_required.append('-pg')
-    LINKFLAGS_required.append('-pg')
+    if use_vc:
+        print 'Visual C++ does not use profiling options'
+    else:
+        CCFLAGS_required.append('-pg')
+        LINKFLAGS_required.append('-pg')
 
 if env.has_key('warnings') and env['warnings']:
-  if use_vc:
-    CCFLAGS_default.append('/W2')
-  else:
-    # Note: autotools detect gxx version and pass -W for 3.x
-    # and -Wextra for other versions of gcc
-    CCFLAGS_default.append('-Wall')
+    if use_vc:
+        CCFLAGS_default.append('/W2')
+    else:
+        # Note: autotools detect gxx version and pass -W for 3.x
+        # and -Wextra for other versions of gcc
+        CCFLAGS_default.append('-Wall')
 
 # Now, set the variables as follows:
 # 1. if command line option exists: replace default
 # 2. then if s envronment variable exists: replace default
 # 3. set variable to required + default
 def setEnvVariable(env, name, required = None, default = None, split = True):
-  ''' env: environment to set variable
-      name: variable
-      required: hardcoded options
-      default: default options that can be replaced by command line or
-        environment variables
-      split: whether or not split obtained variable like '-02 -g'
-  '''
-  # first try command line argument (override environment settings)
-  if ARGUMENTS.has_key(name):
-    default = ARGUMENTS[name]
-    if split:
-      default = default.split()
-  # then use environment default
-  elif os.environ.has_key(name):
-    print "Acquiring varaible %s from system environment: %s" % (name, os.environ[name])
-    default = os.environ[name]
-    if split:
-      default = default.split()
-  # set variable
-  if required is not None:
-    env[name] = required
-  if default is not None:
-    if env.has_key(name) and env[name] != default:
-      env[name] += default
-    else:
-      env[name] = default
+    ''' env: environment to set variable
+            name: variable
+            required: hardcoded options
+            default: default options that can be replaced by command line or
+                environment variables
+            split: whether or not split obtained variable like '-02 -g'
+    '''
+    # first try command line argument (override environment settings)
+    if ARGUMENTS.has_key(name):
+        default = ARGUMENTS[name]
+        if split:
+            default = default.split()
+    # then use environment default
+    elif os.environ.has_key(name):
+        print "Acquiring varaible %s from system environment: %s" % (name, os.environ[name])
+        default = os.environ[name]
+        if split:
+            default = default.split()
+    # set variable
+    if required is not None:
+        env[name] = required
+    if default is not None:
+        if env.has_key(name) and env[name] != default:
+            env[name] += default
+        else:
+            env[name] = default
 
 setEnvVariable(env, 'DESTDIR', split=False)
 setEnvVariable(env, 'CC')
@@ -528,8 +528,8 @@ setEnvVariable(env, 'LINKFLAGS', LINKFLAGS_required)
 
 # if DESTDIR is not set...
 if env.has_key('dest_dir'):
-  print "This option is obsolete. Please use DESTDIR instead."
-  env['DESTDIR'] = env['dest_dir']
+    print "This option is obsolete. Please use DESTDIR instead."
+    env['DESTDIR'] = env['dest_dir']
 
 
 #---------------------------------------------------------
@@ -537,32 +537,32 @@ if env.has_key('dest_dir'):
 #---------------------------------------------------------
 
 if env.has_key('qt_dir') and env['qt_dir']:
-  env['QTDIR'] = env['qt_dir']
-  # add path to the qt tools
-  env.AppendUnique(LIBPATH = [os.path.join(env['qt_dir'], 'lib')])
-  # set environment so that moc etc can be found even if its path is not set properly
-  env.PrependENVPath('PATH', os.path.join(env['qt_dir'], 'bin'))
+    env['QTDIR'] = env['qt_dir']
+    # add path to the qt tools
+    env.AppendUnique(LIBPATH = [os.path.join(env['qt_dir'], 'lib')])
+    # set environment so that moc etc can be found even if its path is not set properly
+    env.PrependENVPath('PATH', os.path.join(env['qt_dir'], 'bin'))
 else:
-  env['QTDIR'] = os.environ.get('QTDIR', '/usr/lib/qt-3.3')
+    env['QTDIR'] = os.environ.get('QTDIR', '/usr/lib/qt-3.3')
 
 if env.has_key('qt_lib_path') and env['qt_lib_path']:
-  qt_lib_path = env.subst('$qt_lib_path')
+    qt_lib_path = env.subst('$qt_lib_path')
 else:
-  qt_lib_path = env.subst('$QTDIR/lib')
+    qt_lib_path = env.subst('$QTDIR/lib')
 env.AppendUnique(LIBPATH = [qt_lib_path])
 # qt4 seems to be using pkg_config
 env.PrependENVPath('PKG_CONFIG_PATH', qt_lib_path)
 
 if env.has_key('qt_inc_path') and env['qt_inc_path']:
-  qt_inc_path = env['qt_inc_path']
+    qt_inc_path = env['qt_inc_path']
 elif os.path.isdir(os.path.join(env.subst('$QTDIR'), 'include')):
-  qt_inc_path = '$QTDIR/include'
+    qt_inc_path = '$QTDIR/include'
 # this is the path for cygwin.
 elif os.path.isdir('/usr/include/' + frontend):
-  qt_inc_path = '/usr/include/$frontend'
+    qt_inc_path = '/usr/include/$frontend'
 else:
-  print "Qt include directory not found. Please specify it using qt_inc_path"
-  Exit(1)
+    print "Qt include directory not found. Please specify it using qt_inc_path"
+    Exit(1)
 # Note that this CPPPATH is for testing only
 # it will be removed before calling SConscript
 env['CPPPATH'] = [qt_inc_path]
@@ -572,17 +572,17 @@ env['CPPPATH'] = [qt_inc_path]
 #
 extra_inc_paths = []
 if env.has_key('extra_inc_path') and env['extra_inc_path']:
-  extra_inc_paths.append(env['extra_inc_path'])
+    extra_inc_paths.append(env['extra_inc_path'])
 if env.has_key('extra_lib_path') and env['extra_lib_path']:
-  env.AppendUnique(LIBPATH = [env['extra_lib_path']])
+    env.AppendUnique(LIBPATH = [env['extra_lib_path']])
 if env.has_key('extra_inc_path1') and env['extra_inc_path1']:
-  extra_inc_paths.append(env['extra_inc_path1'])
+    extra_inc_paths.append(env['extra_inc_path1'])
 if env.has_key('extra_lib_path1') and env['extra_lib_path1']:
-  env.AppendUnique(LIBPATH = [env['extra_lib_path1']])
+    env.AppendUnique(LIBPATH = [env['extra_lib_path1']])
 if env.has_key('extra_bin_path') and env['extra_bin_path']:
-  # maybe only one of them is needed
-  os.environ['PATH'] += os.pathsep + env['extra_bin_path']
-  env['ENV']['PATH'] += os.pathsep + env['extra_bin_path']
+    # maybe only one of them is needed
+    os.environ['PATH'] += os.pathsep + env['extra_bin_path']
+    env['ENV']['PATH'] += os.pathsep + env['extra_bin_path']
 # extra_inc_paths will be used later by intlenv etc
 env.AppendUnique(CPPPATH = extra_inc_paths)
 
@@ -592,188 +592,188 @@ env.AppendUnique(CPPPATH = extra_inc_paths)
 #----------------------------------------------------------
 
 conf = Configure(env,
-  custom_tests = {
-    'CheckPkgConfig' : utils.checkPkgConfig,
-    'CheckPackage' : utils.checkPackage,
-    'CheckMkdirOneArg' : utils.checkMkdirOneArg,
-    'CheckSelectArgType' : utils.checkSelectArgType,
-    'CheckBoostLibraries' : utils.checkBoostLibraries,
-    'CheckCommand' : utils.checkCommand,
-    'CheckCXXGlobalCstd' : utils.checkCXXGlobalCstd,
-    'CheckLC_MESSAGES' : utils.checkLC_MESSAGES,
-    'CheckIconvConst' : utils.checkIconvConst,
-  }
+    custom_tests = {
+        'CheckPkgConfig' : utils.checkPkgConfig,
+        'CheckPackage' : utils.checkPackage,
+        'CheckMkdirOneArg' : utils.checkMkdirOneArg,
+        'CheckSelectArgType' : utils.checkSelectArgType,
+        'CheckBoostLibraries' : utils.checkBoostLibraries,
+        'CheckCommand' : utils.checkCommand,
+        'CheckCXXGlobalCstd' : utils.checkCXXGlobalCstd,
+        'CheckLC_MESSAGES' : utils.checkLC_MESSAGES,
+        'CheckIconvConst' : utils.checkIconvConst,
+    }
 )
 
 # pkg-config? (if not, we use hard-coded options)
 if not fast_start:
-  if conf.CheckPkgConfig('0.15.0'):
-    env['HAS_PKG_CONFIG'] = True
-  else:
-    print 'pkg-config >= 0.1.50 is not found'
-    env['HAS_PKG_CONFIG'] = False
-  env_cache['HAS_PKG_CONFIG'] = env['HAS_PKG_CONFIG']
+    if conf.CheckPkgConfig('0.15.0'):
+        env['HAS_PKG_CONFIG'] = True
+    else:
+        print 'pkg-config >= 0.1.50 is not found'
+        env['HAS_PKG_CONFIG'] = False
+    env_cache['HAS_PKG_CONFIG'] = env['HAS_PKG_CONFIG']
 else:
-  env['HAS_PKG_CONFIG'] = env_cache['HAS_PKG_CONFIG']
+    env['HAS_PKG_CONFIG'] = env_cache['HAS_PKG_CONFIG']
 
 # zlib? This is required. (fast_start assumes the existance of zlib)
 if not fast_start:
-  if (not use_vc and not conf.CheckLibWithHeader('z', 'zlib.h', 'C')) \
-    or (use_vc and not conf.CheckLibWithHeader('zdll', 'zlib.h', 'C')):
-    print 'Did not find zdll.lib or zlib.h, exiting!'
-    Exit(1)
+    if (not use_vc and not conf.CheckLibWithHeader('z', 'zlib.h', 'C')) \
+        or (use_vc and not conf.CheckLibWithHeader('zdll', 'zlib.h', 'C')):
+        print 'Did not find zdll.lib or zlib.h, exiting!'
+        Exit(1)
 
 # qt libraries?
 if not fast_start:
-  #
-  # qt3 does not use pkg_config
-  if frontend in ['qt2', 'qt3']:
-    if not conf.CheckLibWithHeader('qt-mt', 'qapp.h', 'c++', 'QApplication qapp();'):
-      print 'Did not find qt libraries, exiting!'
-      Exit(1)
-  elif frontend == 'qt4':
-    succ = False
-    # first: try pkg_config
-    if env['HAS_PKG_CONFIG']:
-      succ = conf.CheckPackage('QtCore') or conf.CheckPackage('QtCore4')
-      # FIXME: use pkg_config information?
-      #env['QT4_PKG_CONFIG'] = succ
-    # second: try to link to it
-    if not succ:
-      # Under linux, I can test the following perfectly
-      # Under windows, lib names need to passed as libXXX4.a ...
-      succ = conf.CheckLibWithHeader('QtCore', 'QtGui/QApplication', 'c++', 'QApplication qapp();') or \
-        conf.CheckLibWithHeader('QtCore4', 'QtGui/QApplication', 'c++', 'QApplication qapp();')
-    # third: try to look up the path
-    if not succ:
-      succ = True
-      for lib in ['QtCore', 'QtGui']:
-        # windows version has something like QtGui4 ...
-        if not (os.path.isfile(os.path.join(qt_lib_path, 'lib%s.a' % lib)) or \
-          os.path.isfile(os.path.join(qt_lib_path, 'lib%s4.a' % lib))):
-          succ = False
-          break
-    # still can not find it
-    if succ:
-      print "Qt4 libraries are found."
-    else:
-      print 'Did not find qt libraries, exiting!'
-      Exit(1)
+    #
+    # qt3 does not use pkg_config
+    if frontend in ['qt2', 'qt3']:
+        if not conf.CheckLibWithHeader('qt-mt', 'qapp.h', 'c++', 'QApplication qapp();'):
+            print 'Did not find qt libraries, exiting!'
+            Exit(1)
+    elif frontend == 'qt4':
+        succ = False
+        # first: try pkg_config
+        if env['HAS_PKG_CONFIG']:
+            succ = conf.CheckPackage('QtCore') or conf.CheckPackage('QtCore4')
+            # FIXME: use pkg_config information?
+            #env['QT4_PKG_CONFIG'] = succ
+        # second: try to link to it
+        if not succ:
+            # Under linux, I can test the following perfectly
+            # Under windows, lib names need to passed as libXXX4.a ...
+            succ = conf.CheckLibWithHeader('QtCore', 'QtGui/QApplication', 'c++', 'QApplication qapp();') or \
+                conf.CheckLibWithHeader('QtCore4', 'QtGui/QApplication', 'c++', 'QApplication qapp();')
+        # third: try to look up the path
+        if not succ:
+            succ = True
+            for lib in ['QtCore', 'QtGui']:
+                # windows version has something like QtGui4 ...
+                if not (os.path.isfile(os.path.join(qt_lib_path, 'lib%s.a' % lib)) or \
+                    os.path.isfile(os.path.join(qt_lib_path, 'lib%s4.a' % lib))):
+                    succ = False
+                    break
+        # still can not find it
+        if succ:
+            print "Qt4 libraries are found."
+        else:
+            print 'Did not find qt libraries, exiting!'
+            Exit(1)
 
 # now, if msvc2005 is used, we will need that QT_LIB_PATH/QT_LIB.manifest file
 if use_vc:
-  if mode == 'debug':
-    manifest = os.path.join(qt_lib_path, 'QtGuid4.dll.manifest')
-  else:
-    manifest = os.path.join(qt_lib_path, 'QtGui4.dll.manifest')
-  if os.path.isfile(manifest):
-    env['LINKCOM'] = [env['LINKCOM'], 'mt.exe /MANIFEST %s /outputresource:$TARGET;1' % manifest]
+    if mode == 'debug':
+        manifest = os.path.join(qt_lib_path, 'QtGuid4.dll.manifest')
+    else:
+        manifest = os.path.join(qt_lib_path, 'QtGui4.dll.manifest')
+    if os.path.isfile(manifest):
+        env['LINKCOM'] = [env['LINKCOM'], 'mt.exe /MANIFEST %s /outputresource:$TARGET;1' % manifest]
 
 # check socket libs
 if not fast_start:
-  socket_libs = []
-  if conf.CheckLib('socket'):
-    socket_libs.append('socket')
-  # nsl is the network services library and provides a
-  # transport-level interface to networking services.
-  if conf.CheckLib('nsl'):
-    socket_libs.append('nsl')
-  env_cache['SOCKET_LIBS'] = socket_libs
+    socket_libs = []
+    if conf.CheckLib('socket'):
+        socket_libs.append('socket')
+    # nsl is the network services library and provides a
+    # transport-level interface to networking services.
+    if conf.CheckLib('nsl'):
+        socket_libs.append('nsl')
+    env_cache['SOCKET_LIBS'] = socket_libs
 else:
-  socket_libs = env_cache['SOCKET_LIBS']
+    socket_libs = env_cache['SOCKET_LIBS']
 
 # check available boost libs (since lyx1.4 does not use iostream)
 boost_libs = []
 for lib in ['signals', 'regex', 'filesystem', 'iostreams']:
-  if os.path.isdir(os.path.join(top_src_dir, 'boost', 'libs', lib)):
-    boost_libs.append(lib)
+    if os.path.isdir(os.path.join(top_src_dir, 'boost', 'libs', lib)):
+        boost_libs.append(lib)
 
 if not fast_start:
-  # check boost libraries
-  boost_opt = ARGUMENTS.get('boost', 'auto')
-  # check for system boost
-  paths = env['LIBPATH'] + ['/usr/lib', '/usr/local/lib']
-  # real libraries (included or system)
-  boost_libraries = []
-  boost_libpath = None
-  # here I assume that all libraries are in the same directory
-  for lib in boost_libs:
-    if boost_opt == 'included':
-      boost_libraries.append('included_boost_%s' % lib)
-      env['INCLUDED_BOOST'] = True
-    elif boost_opt == 'auto':
-      res = conf.CheckBoostLibraries('boost_%s' % lib , paths)
-      # if not found
-      if res[0] == '':
-        boost_libraries.append('included_boost_%s' % lib)
-        env['INCLUDED_BOOST'] = True
-      else:
-        boost_libraries.append(res[1])
-        env['INCLUDED_BOOST'] = False
-        boost_libpath = res[0]
-    elif boost_opt == 'system':
-      res = conf.CheckBoostLibraries('boost_%s' % lib , paths)
-      if res[0] == '':
-        print "Can not find system boost libraries"
-        print "Please supply a path through extra_lib_path and try again."
-        print "Or use boost=included to use included boost libraries."
-        Exit(2)
-      else:
-        boost_libraries.append(res[1])
-        env.AppendUnique(LIBPATH = [res[0]])
-        boost_libpath = res[0]
-  env_cache['BOOST_LIBRARIES'] = boost_libraries
-  env_cache['INCLUDED_BOOST'] = env['INCLUDED_BOOST']
-  env_cache['BOOST_LIBPATH'] = boost_libpath
+    # check boost libraries
+    boost_opt = ARGUMENTS.get('boost', 'auto')
+    # check for system boost
+    paths = env['LIBPATH'] + ['/usr/lib', '/usr/local/lib']
+    # real libraries (included or system)
+    boost_libraries = []
+    boost_libpath = None
+    # here I assume that all libraries are in the same directory
+    for lib in boost_libs:
+        if boost_opt == 'included':
+            boost_libraries.append('included_boost_%s' % lib)
+            env['INCLUDED_BOOST'] = True
+        elif boost_opt == 'auto':
+            res = conf.CheckBoostLibraries('boost_%s' % lib , paths)
+            # if not found
+            if res[0] == '':
+                boost_libraries.append('included_boost_%s' % lib)
+                env['INCLUDED_BOOST'] = True
+            else:
+                boost_libraries.append(res[1])
+                env['INCLUDED_BOOST'] = False
+                boost_libpath = res[0]
+        elif boost_opt == 'system':
+            res = conf.CheckBoostLibraries('boost_%s' % lib , paths)
+            if res[0] == '':
+                print "Can not find system boost libraries"
+                print "Please supply a path through extra_lib_path and try again."
+                print "Or use boost=included to use included boost libraries."
+                Exit(2)
+            else:
+                boost_libraries.append(res[1])
+                env.AppendUnique(LIBPATH = [res[0]])
+                boost_libpath = res[0]
+    env_cache['BOOST_LIBRARIES'] = boost_libraries
+    env_cache['INCLUDED_BOOST'] = env['INCLUDED_BOOST']
+    env_cache['BOOST_LIBPATH'] = boost_libpath
 else:
-  boost_libraries = env_cache['BOOST_LIBRARIES']
-  env['INCLUDED_BOOST'] = env_cache['INCLUDED_BOOST']
-  boost_libpath = env_cache['BOOST_LIBPATH']
+    boost_libraries = env_cache['BOOST_LIBRARIES']
+    env['INCLUDED_BOOST'] = env_cache['INCLUDED_BOOST']
+    boost_libpath = env_cache['BOOST_LIBPATH']
 
 if boost_libpath is not None:
-  env.AppendUnique(LIBPATH = [boost_libpath])
+    env.AppendUnique(LIBPATH = [boost_libpath])
 
 
 env['ENABLE_NLS'] = env['nls']
 
 if not fast_start:
-  if not env['ENABLE_NLS']:
-    intl_libs = []
-    included_gettext = False
-  else:
-    # check gettext libraries
-    gettext_opt = ARGUMENTS.get('gettext', 'auto')
-    # check for system gettext
-    succ = False
-    if gettext_opt in ['auto', 'system']:
-      if conf.CheckLib('intl'):
+    if not env['ENABLE_NLS']:
+        intl_libs = []
         included_gettext = False
-        intl_libs = ['intl']
-        succ = True
-      else: # no found
-        if gettext_opt == 'system':
-          print "Can not find system gettext library"
-          print "Please supply a path through extra_lib_path and try again."
-          print "Or use gettext=included to use included gettext libraries."
-          Exit(2)
-    # now, auto and succ = false, or gettext=included
-    if not succ:
-      # we do not need to set LIBPATH now.
-      included_gettext = True
-      intl_libs = ['included_intl']
-  env_cache['INCLUDED_GETTEXT'] = included_gettext
-  env_cache['INTL_LIBS'] = intl_libs
+    else:
+        # check gettext libraries
+        gettext_opt = ARGUMENTS.get('gettext', 'auto')
+        # check for system gettext
+        succ = False
+        if gettext_opt in ['auto', 'system']:
+            if conf.CheckLib('intl'):
+                included_gettext = False
+                intl_libs = ['intl']
+                succ = True
+            else: # no found
+                if gettext_opt == 'system':
+                    print "Can not find system gettext library"
+                    print "Please supply a path through extra_lib_path and try again."
+                    print "Or use gettext=included to use included gettext libraries."
+                    Exit(2)
+        # now, auto and succ = false, or gettext=included
+        if not succ:
+            # we do not need to set LIBPATH now.
+            included_gettext = True
+            intl_libs = ['included_intl']
+    env_cache['INCLUDED_GETTEXT'] = included_gettext
+    env_cache['INTL_LIBS'] = intl_libs
 else:
-  included_gettext = env_cache['INCLUDED_GETTEXT']
-  intl_libs = env_cache['INTL_LIBS']
+    included_gettext = env_cache['INCLUDED_GETTEXT']
+    intl_libs = env_cache['INTL_LIBS']
 
 #
 # check for msgfmt command
 if not fast_start:
-  env['MSGFMT'] = conf.CheckCommand('msgfmt')
-  env_cache['MSGFMT'] = env['MSGFMT']
+    env['MSGFMT'] = conf.CheckCommand('msgfmt')
+    env_cache['MSGFMT'] = env['MSGFMT']
 else:
-  env['MSGFMT'] = env_cache['MSGFMT']
+    env['MSGFMT'] = env_cache['MSGFMT']
 
 #
 # Customized builders
@@ -788,48 +788,48 @@ env['BUILDERS']['substFile'] = Builder(action = utils.env_subst)
 aspell_lib = 'aspell'
 # assume that we use aspell, aspelld compiled for msvc
 if platform_name == 'win32' and mode == 'debug' and use_vc:
-  aspell_lib = 'aspelld'
+    aspell_lib = 'aspelld'
 
 # check the existence of config.h
 config_h = os.path.join(env.Dir('$BUILDDIR/common').path, 'config.h')
 boost_config_h = os.path.join(env.Dir('$BUILDDIR/boost').path, 'config.h')
 if not fast_start or not os.path.isfile(boost_config_h) \
-  or not os.path.isfile(config_h):
-  #
-  print "Creating %s..." % boost_config_h
-  #
-  utils.createConfigFile(conf,
-    config_file = boost_config_h,
-    config_pre = '''/* boost/config.h.  Generated by SCons.  */
+    or not os.path.isfile(config_h):
+    #
+    print "Creating %s..." % boost_config_h
+    #
+    utils.createConfigFile(conf,
+        config_file = boost_config_h,
+        config_pre = '''/* boost/config.h.  Generated by SCons.  */
 
 /* -*- C++ -*- */
 /*
- * \file config.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * This is the compilation configuration file for LyX.
- * It was generated by scon.
- * You might want to change some of the defaults if something goes wrong
- * during the compilation.
- */
+* \file config.h
+* This file is part of LyX, the document processor.
+* Licence details can be found in the file COPYING.
+*
+* This is the compilation configuration file for LyX.
+* It was generated by scon.
+* You might want to change some of the defaults if something goes wrong
+* during the compilation.
+*/
 
 #ifndef _BOOST_CONFIG_H
 #define _BOOST_CONFIG_H
 ''',
-    headers = [
-      ('ostream', 'HAVE_OSTREAM', 'cxx'),
-      ('locale', 'HAVE_LOCALE', 'cxx'),
-      ('sstream', 'HAVE_SSTREAM', 'cxx'),
-      #('newapis.h', 'HAVE_NEWAPIS_H', 'c'),
-    ],
-    custom_tests = [
-      (env.has_key('assertions') and env['assertions'],
-        'ENABLE_ASSERTIONS',
-        'Define if you want assertions to be enabled in the code'
-      ),
-    ],
-    config_post = '''
+        headers = [
+            ('ostream', 'HAVE_OSTREAM', 'cxx'),
+            ('locale', 'HAVE_LOCALE', 'cxx'),
+            ('sstream', 'HAVE_SSTREAM', 'cxx'),
+            #('newapis.h', 'HAVE_NEWAPIS_H', 'c'),
+        ],
+        custom_tests = [
+            (env.has_key('assertions') and env['assertions'],
+                'ENABLE_ASSERTIONS',
+                'Define if you want assertions to be enabled in the code'
+            ),
+        ],
+        config_post = '''
 
 #if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
 #  define USE_BOOST_FORMAT 1
@@ -858,199 +858,199 @@ if not fast_start or not os.path.isfile(boost_config_h) \
 
 #endif
 '''
-  )
-  #
-  print "\nGenerating %s..." % config_h
-
-  # AIKSAURUS_H_LOCATION
-  if (conf.CheckCXXHeader("Aiksaurus.h")):
-    aik_location = '<Aiksaurus.h>'
-  elif (conf.CheckCXXHeader("Aiksaurus/Aiksaurus.h")):
-    aik_location = '<Aiksaurus/Aiksaurus.h>'
-  else:
-    aik_location = ''
-
-  # determine headers to use
-  spell_opt = ARGUMENTS.get('spell', 'auto')
-  env['USE_ASPELL'] = False
-  env['USE_PSPELL'] = False
-  env['USE_ISPELL'] = False
-  if spell_opt in ['auto', 'aspell'] and conf.CheckLib(aspell_lib):
-    spell_engine = 'USE_ASPELL'
-  elif spell_opt in ['auto', 'pspell'] and conf.CheckLib('pspell'):
-    spell_engine = 'USE_PSPELL'
-  elif spell_opt in ['auto', 'ispell'] and conf.CheckLib('ispell'):
-    spell_engine = 'USE_ISPELL'
-  else:
-    spell_engine = None
-
-  if spell_engine is not None:
-    env[spell_engine] = True
-  else:
-    if spell_opt == 'auto':
-      print "Warning: Can not locate any spell checker"
-    elif spell_opt != 'no':
-      print "Warning: Can not locate specified spell checker:", spell_opt
-      Exit(1)
-
-  # check arg types of select function
-  (select_arg1, select_arg234, select_arg5) = conf.CheckSelectArgType()
-
-  #
-  # create config.h
-  result = utils.createConfigFile(conf,
-    config_file = config_h,
-    config_pre = '''/* config.h.  Generated by SCons.  */
+    )
+    #
+    print "\nGenerating %s..." % config_h
+
+    # AIKSAURUS_H_LOCATION
+    if (conf.CheckCXXHeader("Aiksaurus.h")):
+        aik_location = '<Aiksaurus.h>'
+    elif (conf.CheckCXXHeader("Aiksaurus/Aiksaurus.h")):
+        aik_location = '<Aiksaurus/Aiksaurus.h>'
+    else:
+        aik_location = ''
+
+    # determine headers to use
+    spell_opt = ARGUMENTS.get('spell', 'auto')
+    env['USE_ASPELL'] = False
+    env['USE_PSPELL'] = False
+    env['USE_ISPELL'] = False
+    if spell_opt in ['auto', 'aspell'] and conf.CheckLib(aspell_lib):
+        spell_engine = 'USE_ASPELL'
+    elif spell_opt in ['auto', 'pspell'] and conf.CheckLib('pspell'):
+        spell_engine = 'USE_PSPELL'
+    elif spell_opt in ['auto', 'ispell'] and conf.CheckLib('ispell'):
+        spell_engine = 'USE_ISPELL'
+    else:
+        spell_engine = None
+
+    if spell_engine is not None:
+        env[spell_engine] = True
+    else:
+        if spell_opt == 'auto':
+            print "Warning: Can not locate any spell checker"
+        elif spell_opt != 'no':
+            print "Warning: Can not locate specified spell checker:", spell_opt
+            Exit(1)
+
+    # check arg types of select function
+    (select_arg1, select_arg234, select_arg5) = conf.CheckSelectArgType()
+
+    #
+    # create config.h
+    result = utils.createConfigFile(conf,
+        config_file = config_h,
+        config_pre = '''/* config.h.  Generated by SCons.  */
 
 /* -*- C++ -*- */
 /*
- * \file config.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * This is the compilation configuration file for LyX.
- * It was generated by scon.
- * You might want to change some of the defaults if something goes wrong
- * during the compilation.
- */
+* \file config.h
+* This file is part of LyX, the document processor.
+* Licence details can be found in the file COPYING.
+*
+* This is the compilation configuration file for LyX.
+* It was generated by scon.
+* You might want to change some of the defaults if something goes wrong
+* during the compilation.
+*/
 
 #ifndef _CONFIG_H
 #define _CONFIG_H
 ''',
-    headers = [
-      ('io.h', 'HAVE_IO_H', 'c'),
-      ('limits.h', 'HAVE_LIMITS_H', 'c'),
-      ('locale.h', 'HAVE_LOCALE_H', 'c'),
-      ('process.h', 'HAVE_PROCESS_H', 'c'),
-      ('stdlib.h', 'HAVE_STDLIB_H', 'c'),
-      ('sys/stat.h', 'HAVE_SYS_STAT_H', 'c'),
-      ('sys/time.h', 'HAVE_SYS_TIME_H', 'c'),
-      ('sys/types.h', 'HAVE_SYS_TYPES_H', 'c'),
-      ('sys/utime.h', 'HAVE_SYS_UTIME_H', 'c'),
-      ('sys/socket.h', 'HAVE_SYS_SOCKET_H', 'c'),
-      ('unistd.h', 'HAVE_UNISTD_H', 'c'),
-      ('utime.h', 'HAVE_UTIME_H', 'c'),
-      ('direct.h', 'HAVE_DIRECT_H', 'c'),
-      ('istream', 'HAVE_ISTREAM', 'cxx'),
-      ('ios', 'HAVE_IOS', 'cxx'),
-    ],
-    functions = [
-      ('open', 'HAVE_OPEN', None),
-      ('close', 'HAVE_CLOSE', None),
-      ('popen', 'HAVE_POPEN', None),
-      ('pclose', 'HAVE_PCLOSE', None),
-      ('_open', 'HAVE__OPEN', None),
-      ('_close', 'HAVE__CLOSE', None),
-      ('_popen', 'HAVE__POPEN', None),
-      ('_pclose', 'HAVE__PCLOSE', None),
-      ('getpid', 'HAVE_GETPID', None),
-      ('_getpid', 'HAVE__GETPID', None),
-      ('mkdir', 'HAVE_MKDIR', None),
-      ('_mkdir', 'HAVE__MKDIR', None),
-      ('mktemp', 'HAVE_MKTEMP', None),
-      ('mkstemp', 'HAVE_MKSTEMP', None),
-      ('strerror', 'HAVE_STRERROR', None),
-      ('count', 'HAVE_STD_COUNT', '''
+        headers = [
+            ('io.h', 'HAVE_IO_H', 'c'),
+            ('limits.h', 'HAVE_LIMITS_H', 'c'),
+            ('locale.h', 'HAVE_LOCALE_H', 'c'),
+            ('process.h', 'HAVE_PROCESS_H', 'c'),
+            ('stdlib.h', 'HAVE_STDLIB_H', 'c'),
+            ('sys/stat.h', 'HAVE_SYS_STAT_H', 'c'),
+            ('sys/time.h', 'HAVE_SYS_TIME_H', 'c'),
+            ('sys/types.h', 'HAVE_SYS_TYPES_H', 'c'),
+            ('sys/utime.h', 'HAVE_SYS_UTIME_H', 'c'),
+            ('sys/socket.h', 'HAVE_SYS_SOCKET_H', 'c'),
+            ('unistd.h', 'HAVE_UNISTD_H', 'c'),
+            ('utime.h', 'HAVE_UTIME_H', 'c'),
+            ('direct.h', 'HAVE_DIRECT_H', 'c'),
+            ('istream', 'HAVE_ISTREAM', 'cxx'),
+            ('ios', 'HAVE_IOS', 'cxx'),
+        ],
+        functions = [
+            ('open', 'HAVE_OPEN', None),
+            ('close', 'HAVE_CLOSE', None),
+            ('popen', 'HAVE_POPEN', None),
+            ('pclose', 'HAVE_PCLOSE', None),
+            ('_open', 'HAVE__OPEN', None),
+            ('_close', 'HAVE__CLOSE', None),
+            ('_popen', 'HAVE__POPEN', None),
+            ('_pclose', 'HAVE__PCLOSE', None),
+            ('getpid', 'HAVE_GETPID', None),
+            ('_getpid', 'HAVE__GETPID', None),
+            ('mkdir', 'HAVE_MKDIR', None),
+            ('_mkdir', 'HAVE__MKDIR', None),
+            ('mktemp', 'HAVE_MKTEMP', None),
+            ('mkstemp', 'HAVE_MKSTEMP', None),
+            ('strerror', 'HAVE_STRERROR', None),
+            ('count', 'HAVE_STD_COUNT', '''
 #include <algorithm>
 int count()
 {
-  char a[] = "hello";
-  return std::count(a, a+5, 'l');
+    char a[] = "hello";
+    return std::count(a, a+5, 'l');
 }
 '''),
-      ('getcwd', 'HAVE_GETCWD', None),
-      ('setenv', 'HAVE_SETENV', None),
-      ('putenv', 'HAVE_PUTENV', None),
-      ('fcntl', 'HAVE_FCNTL', None),
-    ],
-    types = [
-      ('std::istreambuf_iterator<std::istream>', 'HAVE_DECL_ISTREAMBUF_ITERATOR',
-        '#include <streambuf>\n#include <istream>')
-    ],
-    libs = [
-      ('gdi32', 'HAVE_LIBGDI32'),
-      (('iconv', 'libiconv'), 'HAVE_ICONV', 'ICONV_LIB'),
-      (('Aiksaurus', 'libAiksaurus'), 'HAVE_LIBAIKSAURUS', 'AIKSAURUS_LIB'),
-    ],
-    custom_tests = [
-      (conf.CheckType('pid_t', includes='#include <sys/types.h>'),
-        'HAVE_PID_T',
-        'Define is sys/types.h does not have pid_t',
-        '',
-        '#define pid_t int',
-      ),
-      (conf.CheckCXXGlobalCstd(),
-        'CXX_GLOBAL_CSTD',
-        'Define if your C++ compiler puts C library functions in the global namespace'
-      ),
-      (conf.CheckMkdirOneArg(),
-        'MKDIR_TAKES_ONE_ARG',
-        'Define if mkdir takes only one argument.'
-      ),
-      (conf.CheckLC_MESSAGES(),
-        'HAVE_LC_MESSAGES',
-        'Define if your <locale.h> file defines LC_MESSAGES.'
-      ),
-      (devel_version, 'DEVEL_VERSION', 'Whether or not a development version'),
-      (env['nls'],
-        'ENABLE_NLS',
-        "Define to 1 if translation of program messages to the user's native anguage is requested.",
-      ),
-      (env['nls'] and not included_gettext,
-        'HAVE_GETTEXT',
-        'Define to 1 if using system gettext library'
-      ),
-      (env.has_key('warnings') and env['warnings'],
-        'WITH_WARNINGS',
-        'Define this if you want to see the warning directives put here and there by the developpers to get attention'
-      ),
-      (env.has_key('concept_checks') and env['concept_checks'],
-        '_GLIBCXX_CONCEPT_CHECKS',
-        'libstdc++ concept checking'
-      ),
-      (env.has_key('stdlib_debug') and env['stdlib_debug'],
-        '_GLIBCXX_DEBUG',
-        'libstdc++ debug mode'
-      ),
-      (env.has_key('stdlib_debug') and env['stdlib_debug'],
-        '_GLIBCXX_DEBUG_PEDANTIC',
-        'libstdc++ pedantic debug mode'
-      ),
-      (os.name != 'nt', 'BOOST_POSIX',
-        'Indicates to boost which API to use (posix or windows).'
-      ),
-      (spell_engine is not None, spell_engine,
-        'Spell engine to use'
-      ),
-    ],
-    extra_items = [
-      ('#define PACKAGE "%s%s"' % (package, program_suffix),
-        'Name of package'),
-      ('#define PACKAGE_BUGREPORT "%s"' % package_bugreport,
-        'Define to the address where bug reports for this package should be sent.'),
-      ('#define PACKAGE_NAME "%s"' % package_name,
-        'Define to the full name of this package.'),
-      ('#define PACKAGE_STRING "%s"' % package_string,
-        'Define to the full name and version of this package.'),
-      ('#define PACKAGE_TARNAME "%s"' % package_tarname,
-        'Define to the one symbol short name of this package.'),
-      ('#define PACKAGE_VERSION "%s"' % package_version,
-        'Define to the version of this package.'),
-      ('#define BOOST_ALL_NO_LIB 1',
-        'disable automatic linking of boost libraries.'),
-      ('#define USE_%s_PACKAGING 1' % packaging_method.upper(),
-        'Packaging method'),
-      ('#define AIKSAURUS_H_LOCATION ' + aik_location,
-        'Aiksaurus include file'),
-      ('#define SELECT_TYPE_ARG1 %s' % select_arg1,
-        "Define to the type of arg 1 for `select'."),
-      ('#define SELECT_TYPE_ARG234 %s' % select_arg234,
-        "Define to the type of arg 2, 3, 4 for `select'."),
-      ('#define SELECT_TYPE_ARG5 %s' % select_arg5,
-        "Define to the type of arg 5 for `select'."),
-    ],
-    config_post = '''/************************************************************
- ** You should not need to change anything beyond this point */
+            ('getcwd', 'HAVE_GETCWD', None),
+            ('setenv', 'HAVE_SETENV', None),
+            ('putenv', 'HAVE_PUTENV', None),
+            ('fcntl', 'HAVE_FCNTL', None),
+        ],
+        types = [
+            ('std::istreambuf_iterator<std::istream>', 'HAVE_DECL_ISTREAMBUF_ITERATOR',
+                '#include <streambuf>\n#include <istream>')
+        ],
+        libs = [
+            ('gdi32', 'HAVE_LIBGDI32'),
+            (('iconv', 'libiconv'), 'HAVE_ICONV', 'ICONV_LIB'),
+            (('Aiksaurus', 'libAiksaurus'), 'HAVE_LIBAIKSAURUS', 'AIKSAURUS_LIB'),
+        ],
+        custom_tests = [
+            (conf.CheckType('pid_t', includes='#include <sys/types.h>'),
+                'HAVE_PID_T',
+                'Define is sys/types.h does not have pid_t',
+                '',
+                '#define pid_t int',
+            ),
+            (conf.CheckCXXGlobalCstd(),
+                'CXX_GLOBAL_CSTD',
+                'Define if your C++ compiler puts C library functions in the global namespace'
+            ),
+            (conf.CheckMkdirOneArg(),
+                'MKDIR_TAKES_ONE_ARG',
+                'Define if mkdir takes only one argument.'
+            ),
+            (conf.CheckLC_MESSAGES(),
+                'HAVE_LC_MESSAGES',
+                'Define if your <locale.h> file defines LC_MESSAGES.'
+            ),
+            (devel_version, 'DEVEL_VERSION', 'Whether or not a development version'),
+            (env['nls'],
+                'ENABLE_NLS',
+                "Define to 1 if translation of program messages to the user's native anguage is requested.",
+            ),
+            (env['nls'] and not included_gettext,
+                'HAVE_GETTEXT',
+                'Define to 1 if using system gettext library'
+            ),
+            (env.has_key('warnings') and env['warnings'],
+                'WITH_WARNINGS',
+                'Define this if you want to see the warning directives put here and there by the developpers to get attention'
+            ),
+            (env.has_key('concept_checks') and env['concept_checks'],
+                '_GLIBCXX_CONCEPT_CHECKS',
+                'libstdc++ concept checking'
+            ),
+            (env.has_key('stdlib_debug') and env['stdlib_debug'],
+                '_GLIBCXX_DEBUG',
+                'libstdc++ debug mode'
+            ),
+            (env.has_key('stdlib_debug') and env['stdlib_debug'],
+                '_GLIBCXX_DEBUG_PEDANTIC',
+                'libstdc++ pedantic debug mode'
+            ),
+            (os.name != 'nt', 'BOOST_POSIX',
+                'Indicates to boost which API to use (posix or windows).'
+            ),
+            (spell_engine is not None, spell_engine,
+                'Spell engine to use'
+            ),
+        ],
+        extra_items = [
+            ('#define PACKAGE "%s%s"' % (package, program_suffix),
+                'Name of package'),
+            ('#define PACKAGE_BUGREPORT "%s"' % package_bugreport,
+                'Define to the address where bug reports for this package should be sent.'),
+            ('#define PACKAGE_NAME "%s"' % package_name,
+                'Define to the full name of this package.'),
+            ('#define PACKAGE_STRING "%s"' % package_string,
+                'Define to the full name and version of this package.'),
+            ('#define PACKAGE_TARNAME "%s"' % package_tarname,
+                'Define to the one symbol short name of this package.'),
+            ('#define PACKAGE_VERSION "%s"' % package_version,
+                'Define to the version of this package.'),
+            ('#define BOOST_ALL_NO_LIB 1',
+                'disable automatic linking of boost libraries.'),
+            ('#define USE_%s_PACKAGING 1' % packaging_method.upper(),
+                'Packaging method'),
+            ('#define AIKSAURUS_H_LOCATION ' + aik_location,
+                'Aiksaurus include file'),
+            ('#define SELECT_TYPE_ARG1 %s' % select_arg1,
+                "Define to the type of arg 1 for `select'."),
+            ('#define SELECT_TYPE_ARG234 %s' % select_arg234,
+                "Define to the type of arg 2, 3, 4 for `select'."),
+            ('#define SELECT_TYPE_ARG5 %s' % select_arg5,
+                "Define to the type of arg 5 for `select'."),
+        ],
+        config_post = '''/************************************************************
+** You should not need to change anything beyond this point */
 
 #ifndef HAVE_STRERROR
 #if defined(__cplusplus)
@@ -1072,153 +1072,153 @@ int mkstemp(char*);
 
 #endif
 '''
-  )
-
-  # these keys are needed in env
-  for key in ['USE_ASPELL', 'USE_PSPELL', 'USE_ISPELL', 'HAVE_FCNTL',\
-    'HAVE_ICONV', 'HAVE_LIBGDI32', 'HAVE_LIBAIKSAURUS',
-    'ICONV_LIB', 'AIKSAURUS_LIB']:
-    # USE_ASPELL etc does not go through result
-    if result.has_key(key):
-      env[key] = result[key]
-    env_cache[key] = env[key]
-
-  #
-  # if nls=yes and gettext=included, create intl/config.h
-  # intl/libintl.h etc
-  #
-  intl_config_h = os.path.join(env.Dir('$BUILDDIR/intl').path, 'config.h')
-  if env['nls'] and included_gettext:
-    #
-    print "Creating %s..." % intl_config_h
-    #
-    # create intl/config.h
-    result = utils.createConfigFile(conf,
-      config_file = intl_config_h,
-      config_pre = '''/* intl/config.h.  Generated by SCons.  */
+    )
+
+    # these keys are needed in env
+    for key in ['USE_ASPELL', 'USE_PSPELL', 'USE_ISPELL', 'HAVE_FCNTL',\
+        'HAVE_ICONV', 'HAVE_LIBGDI32', 'HAVE_LIBAIKSAURUS',
+        'ICONV_LIB', 'AIKSAURUS_LIB']:
+        # USE_ASPELL etc does not go through result
+        if result.has_key(key):
+            env[key] = result[key]
+        env_cache[key] = env[key]
+
+    #
+    # if nls=yes and gettext=included, create intl/config.h
+    # intl/libintl.h etc
+    #
+    intl_config_h = os.path.join(env.Dir('$BUILDDIR/intl').path, 'config.h')
+    if env['nls'] and included_gettext:
+        #
+        print "Creating %s..." % intl_config_h
+        #
+        # create intl/config.h
+        result = utils.createConfigFile(conf,
+            config_file = intl_config_h,
+            config_pre = '''/* intl/config.h.  Generated by SCons.  */
 
 /* -*- C++ -*- */
 /*
- * \file config.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * This is the compilation configuration file for LyX.
- * It was generated by scon.
- * You might want to change some of the defaults if something goes wrong
- * during the compilation.
- */
+* \file config.h
+* This file is part of LyX, the document processor.
+* Licence details can be found in the file COPYING.
+*
+* This is the compilation configuration file for LyX.
+* It was generated by scon.
+* You might want to change some of the defaults if something goes wrong
+* during the compilation.
+*/
 
 #ifndef _CONFIG_H
 #define _CONFIG_H
 ''',
-      headers = [
-        ('unistd.h', 'HAVE_UNISTD_H', 'c'),
-        ('inttypes.h', 'HAVE_INTTYPES_H', 'c'),
-        ('string.h', 'HAVE_STRING_H', 'c'),
-        ('strings.h', 'HAVE_STRINGS_H', 'c'),
-        ('argz.h', 'HAVE_ARGZ_H', 'c'),
-        ('limits.h', 'HAVE_LIMITS_H', 'c'),
-        ('alloca.h', 'HAVE_ALLOCA_H', 'c'),
-        ('stddef.h', 'HAVE_STDDEF_H', 'c'),
-        ('stdint.h', 'HAVE_STDINT_H', 'c'),
-        ('sys/param.h', 'HAVE_SYS_PARAM_H', 'c'),
-      ],
-      functions = [
-        ('getcwd', 'HAVE_GETCWD', None),
-        ('stpcpy', 'HAVE_STPCPY', None),
-        ('strcasecmp', 'HAVE_STRCASECMP', None),
-        ('strdup', 'HAVE_STRDUP', None),
-        ('strtoul', 'HAVE_STRTOUL', None),
-        ('alloca', 'HAVE_ALLOCA', None),
-        ('__fsetlocking', 'HAVE___FSETLOCKING', None),
-        ('mempcpy', 'HAVE_MEMPCPY', None),
-        ('__argz_count', 'HAVE___ARGZ_COUNT', None),
-        ('__argz_next', 'HAVE___ARGZ_NEXT', None),
-        ('__argz_stringify', 'HAVE___ARGZ_STRINGIFY', None),
-        ('setlocale', 'HAVE_SETLOCALE', None),
-        ('tsearch', 'HAVE_TSEARCH', None),
-        ('getegid', 'HAVE_GETEGID', None),
-        ('getgid', 'HAVE_GETGID', None),
-        ('getuid', 'HAVE_GETUID', None),
-        ('wcslen', 'HAVE_WCSLEN', None),
-        ('asprintf', 'HAVE_ASPRINTF', None),
-        ('wprintf', 'HAVE_WPRINTF', None),
-        ('snprintf', 'HAVE_SNPRINTF', None),
-        ('printf', 'HAVE_POSIX_PRINTF', None),
-        ('fcntl', 'HAVE_FCNTL', None),
-      ],
-      types = [
-        ('intmax_t', 'HAVE_INTMAX_T', None),
-        ('long double', 'HAVE_LONG_DOUBLE', None),
-        ('long long', 'HAVE_LONG_LONG', None),
-        ('wchar_t', 'HAVE_WCHAR_T', None),
-        ('wint_t', 'HAVE_WINT_T', None),
-        ('uintmax_t', 'HAVE_INTTYPES_H_WITH_UINTMAX', '#include <inttypes.h>'),
-        ('uintmax_t', 'HAVE_STDINT_H_WITH_UINTMAX', '#include <stdint.h>'),
-      ],
-      libs = [
-        (('iconv', 'libiconv'), 'HAVE_ICONV', 'ICONV_LIB'),
-        ('c', 'HAVE_LIBC'),
-      ],
-      custom_tests = [
-        (conf.CheckLC_MESSAGES(),
-          'HAVE_LC_MESSAGES',
-          'Define if your <locale.h> file defines LC_MESSAGES.'
-        ),
-        (conf.CheckIconvConst(),
-          'ICONV_CONST',
-          'Define as const if the declaration of iconv() needs const.',
-          '#define ICONV_CONST',
-          '#define ICONV_CONST const',
-        ),
-        (conf.CheckType('intmax_t', includes='#include <stdint.h>') or \
-         conf.CheckType('intmax_t', includes='#include <inttypes.h>'),
-          'HAVE_INTMAX_T',
-          "Define to 1 if you have the `intmax_t' type."
-        ),
-        (env.has_key('nls') and env['nls'],
-          'ENABLE_NLS',
-          "Define to 1 if translation of program messages to the user's native anguage is requested.",
-        ),
-      ],
-      config_post = '#endif'
-    )
-
-    # these keys are needed in env
-    for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
-      'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
-      # USE_ASPELL etc does not go through result
-      if result.has_key(key):
-        env[key] = result[key]
-      env_cache[key] = env[key]
+            headers = [
+                ('unistd.h', 'HAVE_UNISTD_H', 'c'),
+                ('inttypes.h', 'HAVE_INTTYPES_H', 'c'),
+                ('string.h', 'HAVE_STRING_H', 'c'),
+                ('strings.h', 'HAVE_STRINGS_H', 'c'),
+                ('argz.h', 'HAVE_ARGZ_H', 'c'),
+                ('limits.h', 'HAVE_LIMITS_H', 'c'),
+                ('alloca.h', 'HAVE_ALLOCA_H', 'c'),
+                ('stddef.h', 'HAVE_STDDEF_H', 'c'),
+                ('stdint.h', 'HAVE_STDINT_H', 'c'),
+                ('sys/param.h', 'HAVE_SYS_PARAM_H', 'c'),
+            ],
+            functions = [
+                ('getcwd', 'HAVE_GETCWD', None),
+                ('stpcpy', 'HAVE_STPCPY', None),
+                ('strcasecmp', 'HAVE_STRCASECMP', None),
+                ('strdup', 'HAVE_STRDUP', None),
+                ('strtoul', 'HAVE_STRTOUL', None),
+                ('alloca', 'HAVE_ALLOCA', None),
+                ('__fsetlocking', 'HAVE___FSETLOCKING', None),
+                ('mempcpy', 'HAVE_MEMPCPY', None),
+                ('__argz_count', 'HAVE___ARGZ_COUNT', None),
+                ('__argz_next', 'HAVE___ARGZ_NEXT', None),
+                ('__argz_stringify', 'HAVE___ARGZ_STRINGIFY', None),
+                ('setlocale', 'HAVE_SETLOCALE', None),
+                ('tsearch', 'HAVE_TSEARCH', None),
+                ('getegid', 'HAVE_GETEGID', None),
+                ('getgid', 'HAVE_GETGID', None),
+                ('getuid', 'HAVE_GETUID', None),
+                ('wcslen', 'HAVE_WCSLEN', None),
+                ('asprintf', 'HAVE_ASPRINTF', None),
+                ('wprintf', 'HAVE_WPRINTF', None),
+                ('snprintf', 'HAVE_SNPRINTF', None),
+                ('printf', 'HAVE_POSIX_PRINTF', None),
+                ('fcntl', 'HAVE_FCNTL', None),
+            ],
+            types = [
+                ('intmax_t', 'HAVE_INTMAX_T', None),
+                ('long double', 'HAVE_LONG_DOUBLE', None),
+                ('long long', 'HAVE_LONG_LONG', None),
+                ('wchar_t', 'HAVE_WCHAR_T', None),
+                ('wint_t', 'HAVE_WINT_T', None),
+                ('uintmax_t', 'HAVE_INTTYPES_H_WITH_UINTMAX', '#include <inttypes.h>'),
+                ('uintmax_t', 'HAVE_STDINT_H_WITH_UINTMAX', '#include <stdint.h>'),
+            ],
+            libs = [
+                (('iconv', 'libiconv'), 'HAVE_ICONV', 'ICONV_LIB'),
+                ('c', 'HAVE_LIBC'),
+            ],
+            custom_tests = [
+                (conf.CheckLC_MESSAGES(),
+                    'HAVE_LC_MESSAGES',
+                    'Define if your <locale.h> file defines LC_MESSAGES.'
+                ),
+                (conf.CheckIconvConst(),
+                    'ICONV_CONST',
+                    'Define as const if the declaration of iconv() needs const.',
+                    '#define ICONV_CONST',
+                    '#define ICONV_CONST const',
+                ),
+                (conf.CheckType('intmax_t', includes='#include <stdint.h>') or \
+                conf.CheckType('intmax_t', includes='#include <inttypes.h>'),
+                    'HAVE_INTMAX_T',
+                    "Define to 1 if you have the `intmax_t' type."
+                ),
+                (env.has_key('nls') and env['nls'],
+                    'ENABLE_NLS',
+                    "Define to 1 if translation of program messages to the user's native anguage is requested.",
+                ),
+            ],
+            config_post = '#endif'
+        )
+
+        # these keys are needed in env
+        for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
+            'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
+            # USE_ASPELL etc does not go through result
+            if result.has_key(key):
+                env[key] = result[key]
+            env_cache[key] = env[key]
 
 else:
-  #
-  # this comes as a big surprise, without this line
-  # (doing nothing obvious), adding fast_start=yes
-  # to a build with fast_start=no will result in a rebuild
-  # Note that the exact header file to check does not matter
-  conf.CheckCHeader('io.h')
-  # only a few variables need to be rescanned
-  for key in ['USE_ASPELL', 'USE_PSPELL', 'USE_ISPELL', 'HAVE_FCNTL',\
-    'HAVE_ICONV', 'HAVE_LIBGDI32', 'HAVE_LIBAIKSAURUS',
-    'ICONV_LIB', 'AIKSAURUS_LIB']:
-    env[key] = env_cache[key]
-  #
-  # nls related keys
-  if env['nls'] and included_gettext:
+    #
+    # this comes as a big surprise, without this line
+    # (doing nothing obvious), adding fast_start=yes
+    # to a build with fast_start=no will result in a rebuild
+    # Note that the exact header file to check does not matter
+    conf.CheckCHeader('io.h')
     # only a few variables need to be rescanned
-    for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
-      'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
-      env[key] = env_cache[key]
+    for key in ['USE_ASPELL', 'USE_PSPELL', 'USE_ISPELL', 'HAVE_FCNTL',\
+        'HAVE_ICONV', 'HAVE_LIBGDI32', 'HAVE_LIBAIKSAURUS',
+        'ICONV_LIB', 'AIKSAURUS_LIB']:
+        env[key] = env_cache[key]
+    #
+    # nls related keys
+    if env['nls'] and included_gettext:
+        # only a few variables need to be rescanned
+        for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
+            'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
+            env[key] = env_cache[key]
 
 # this looks misplaced, but intl/libintl.h is needed by src/message.C
 if env['nls'] and included_gettext:
-  # libgnuintl.h.in => libintl.h
-  env.substFile('$BUILDDIR/intl/libintl.h', '$TOP_SRCDIR/intl/libgnuintl.h.in')
-  env.Command('$BUILDDIR/intl/libgnuintl.h', '$BUILDDIR/intl/libintl.h',
-    [Copy('$TARGET', '$SOURCE')])
+    # libgnuintl.h.in => libintl.h
+    env.substFile('$BUILDDIR/intl/libintl.h', '$TOP_SRCDIR/intl/libgnuintl.h.in')
+    env.Command('$BUILDDIR/intl/libgnuintl.h', '$BUILDDIR/intl/libintl.h',
+        [Copy('$TARGET', '$SOURCE')])
 
 #
 # Finish auto-configuration
@@ -1234,62 +1234,62 @@ env = conf.Finish()
 # NOTE: Tool('qt') or Tool('qt4') will be loaded later
 # in their respective directory and specialized env.
 try:
-  if frontend in ['qt2', 'qt3']:
-    # note: env.Tool('qt') my set QT_LIB to qt
-    qt_libs = ['qt-mt']
-    frontend_libs = ['qt-mt']
-  elif frontend == 'qt4':
-    qt_libs = ['QtCore', 'QtGui']
-    # set the right lib names
-    if platform_name == 'win32':
-      if mode == 'debug' and use_vc:
-        qt_lib_suffix = 'd4'
-      else:
-        qt_lib_suffix = '4'
-    else:
-      if mode == 'debug':
-        qt_lib_suffix = '_debug'
-      else:
-        qt_lib_suffix = ''
-    frontend_libs = [x + qt_lib_suffix for x in qt_libs]
+    if frontend in ['qt2', 'qt3']:
+        # note: env.Tool('qt') my set QT_LIB to qt
+        qt_libs = ['qt-mt']
+        frontend_libs = ['qt-mt']
+    elif frontend == 'qt4':
+        qt_libs = ['QtCore', 'QtGui']
+        # set the right lib names
+        if platform_name == 'win32':
+            if mode == 'debug' and use_vc:
+                qt_lib_suffix = 'd4'
+            else:
+                qt_lib_suffix = '4'
+        else:
+            if mode == 'debug':
+                qt_lib_suffix = '_debug'
+            else:
+                qt_lib_suffix = ''
+        frontend_libs = [x + qt_lib_suffix for x in qt_libs]
 except:
-  print "Can not locate qt tools"
-  print "What I get is "
-  print "  QTDIR: ", env['QTDIR']
+    print "Can not locate qt tools"
+    print "What I get is "
+    print "  QTDIR: ", env['QTDIR']
 
 
 if platform_name in ['win32', 'cygwin']:
-  # the final link step needs stdc++ to succeed under mingw
-  # FIXME: shouldn't g++ automatically link to stdc++?
-  if use_vc:
-    system_libs = ['shlwapi', 'shell32', 'advapi32', 'zdll']
-  else:
-    system_libs = ['shlwapi', 'stdc++', 'z']
+    # the final link step needs stdc++ to succeed under mingw
+    # FIXME: shouldn't g++ automatically link to stdc++?
+    if use_vc:
+        system_libs = ['shlwapi', 'shell32', 'advapi32', 'zdll']
+    else:
+        system_libs = ['shlwapi', 'stdc++', 'z']
 elif platform_name == 'cygwin' and env['X11']:
-  system_libs = ['GL',  'Xmu', 'Xi', 'Xrender', 'Xrandr', 'Xcursor',
-    'Xft', 'freetype', 'fontconfig', 'Xext', 'X11', 'SM', 'ICE', 'resolv',
-    'pthread', 'z']
+    system_libs = ['GL',  'Xmu', 'Xi', 'Xrender', 'Xrandr', 'Xcursor',
+        'Xft', 'freetype', 'fontconfig', 'Xext', 'X11', 'SM', 'ICE', 'resolv',
+        'pthread', 'z']
 else:
-  system_libs = ['z']
+    system_libs = ['z']
 
 libs = [
-  ('HAVE_ICONV', env['ICONV_LIB']),
-  ('HAVE_LIBGDI32', 'gdi32'),
-  ('HAVE_LIBAIKSAURUS', env['AIKSAURUS_LIB']),
-  ('USE_ASPELL', aspell_lib),
-  ('USE_ISPELL', 'ispell'),
-  ('USE_PSPELL', 'pspell'),
+    ('HAVE_ICONV', env['ICONV_LIB']),
+    ('HAVE_LIBGDI32', 'gdi32'),
+    ('HAVE_LIBAIKSAURUS', env['AIKSAURUS_LIB']),
+    ('USE_ASPELL', aspell_lib),
+    ('USE_ISPELL', 'ispell'),
+    ('USE_PSPELL', 'pspell'),
 ]
 
 for lib in libs:
-  if env[lib[0]]:
-    system_libs.append(lib[1])
+    if env[lib[0]]:
+        system_libs.append(lib[1])
 
 #
 # Build parameters CPPPATH etc
 #
 if env['X11']:
-  env.AppendUnique(LIBPATH = ['/usr/X11R6/lib'])
+    env.AppendUnique(LIBPATH = ['/usr/X11R6/lib'])
 
 #
 # boost: for boost header files
@@ -1299,7 +1299,7 @@ if env['X11']:
 env['CPPPATH'] += ['$TOP_SRCDIR/boost', '$BUILDDIR/common', '$TOP_SRCDIR/src']
 # for intl/config.h, intl/libintl.h and intl/libgnuintl.h
 if env['nls'] and included_gettext:
-  env['CPPPATH'].append('$BUILDDIR/intl')
+    env['CPPPATH'].append('$BUILDDIR/intl')
 #
 # QT_INC_PATH is not needed for *every* source file
 env['CPPPATH'].remove(qt_inc_path)
@@ -1311,10 +1311,10 @@ env['CPPPATH'].remove(qt_inc_path)
 # for details
 #
 if platform_name == 'cygwin':
-  ld_script_path = '/usr/lib/qt3/mkspecs/cygwin-g++'
-  ld_script = utils.installCygwinLDScript(ld_script_path)
-  env.AppendUnique(LINKFLAGS = ['-Wl,--enable-runtime-pseudo-reloc',
-    '-Wl,--script,%s' % ld_script, '-Wl,-s'])
+    ld_script_path = '/usr/lib/qt3/mkspecs/cygwin-g++'
+    ld_script = utils.installCygwinLDScript(ld_script_path)
+    env.AppendUnique(LINKFLAGS = ['-Wl,--enable-runtime-pseudo-reloc',
+        '-Wl,--script,%s' % ld_script, '-Wl,-s'])
 
 #
 # Report results
@@ -1344,25 +1344,25 @@ Frontend:
   LyX dir:                        %s
   LyX files dir:                  %s
 ''' % (platform_name,
-  env.subst('$CCFLAGS'), env.subst('$CC'),
-  env.subst('$CPPFLAGS'), env.subst('$CFLAGS'),
-  env.subst('$CXX'), env.subst('$CXXFLAGS'),
-  env.subst('$CPPFLAGS'), env.subst('$CXXFLAGS'),
-  env.subst('$LINKFLAGS'), env.subst('$LINKFLAGS'),
-  env.subst('$BUILDDIR'), env.subst('$LOCALLIBPATH'),
-  str(env['LIBPATH']), str(boost_libraries),
-  str(frontend_libs), str(system_libs), str(env['CPPPATH']),
-  frontend, packaging_method,
-  prefix, env['LYX_DIR'])
+    env.subst('$CCFLAGS'), env.subst('$CC'),
+    env.subst('$CPPFLAGS'), env.subst('$CFLAGS'),
+    env.subst('$CXX'), env.subst('$CXXFLAGS'),
+    env.subst('$CPPFLAGS'), env.subst('$CXXFLAGS'),
+    env.subst('$LINKFLAGS'), env.subst('$LINKFLAGS'),
+    env.subst('$BUILDDIR'), env.subst('$LOCALLIBPATH'),
+    str(env['LIBPATH']), str(boost_libraries),
+    str(frontend_libs), str(system_libs), str(env['CPPPATH']),
+    frontend, packaging_method,
+    prefix, env['LYX_DIR'])
 
 if frontend in ['qt2', 'qt3', 'qt4']:
-  env['VERSION_INFO'] += '''  include dir:                    %s
+    env['VERSION_INFO'] += '''  include dir:                    %s
   library dir:                    %s
   X11:                            %s
 ''' % (qt_inc_path, qt_lib_path, env['X11'])
 
 if not fast_start:
-  print env['VERSION_INFO']
+    print env['VERSION_INFO']
 
 #
 # Mingw command line may be too short for our link usage,
@@ -1373,14 +1373,14 @@ if not fast_start:
 # spawn system.
 logfile = env.get('logfile', default_log_file)
 if logfile != '' or platform_name == 'win32':
-  import time
-  utils.setLoggedSpawn(env, logfile, longarg = (platform_name == 'win32'),
-    info = '''# This is a log of commands used by scons to build lyx
+    import time
+    utils.setLoggedSpawn(env, logfile, longarg = (platform_name == 'win32'),
+        info = '''# This is a log of commands used by scons to build lyx
 # Time: %s
 # Command: %s
 # Info: %s
 ''' % (time.asctime(), ' '.join(sys.argv),
-  env['VERSION_INFO'].replace('\n','\n# ')) )
+    env['VERSION_INFO'].replace('\n','\n# ')) )
 
 
 # Cleanup stuff
@@ -1406,18 +1406,18 @@ env.SConsignFile(os.path.join(Dir(env['BUILDDIR']).abspath, '.sconsign'))
 print "Building all targets recursively"
 
 if env.has_key('rebuild'):
-  rebuild_targets = env['rebuild'].split(',')
+    rebuild_targets = env['rebuild'].split(',')
 else:
-  rebuild_targets = None
+    rebuild_targets = None
 
 def libExists(libname):
-  ''' Check whether or not lib $LOCALLIBNAME/libname already exists'''
-  return os.path.isfile(File(env.subst('$LOCALLIBPATH/${LIBPREFIX}%s$LIBSUFFIX'%libname)).abspath)
+    ''' Check whether or not lib $LOCALLIBNAME/libname already exists'''
+    return os.path.isfile(File(env.subst('$LOCALLIBPATH/${LIBPREFIX}%s$LIBSUFFIX'%libname)).abspath)
 
 targets = BUILD_TARGETS
 # msvc need to pass full target name, so I have to look for path/lyx etc
 build_lyx = targets == [] or True in ['lyx' in x for x in targets] \
-  or 'install' in targets or 'all' in targets
+    or 'install' in targets or 'all' in targets
 build_boost = (env['INCLUDED_BOOST'] and not libExists('boost_regex')) or 'boost' in targets
 build_intl = (included_gettext and not libExists('included_intl')) or 'intl' in targets
 build_support = build_lyx or True in [x in targets for x in ['support', 'client', 'tex2lyx']]
@@ -1427,9 +1427,9 @@ build_frontends = build_lyx or 'frontends' in targets
 build_graphics = build_lyx or 'graphics' in targets
 build_controllers = build_lyx or 'controllers' in targets
 build_client = True in ['client' in x for x in targets] \
-  or 'install' in targets or 'all' in targets
+    or 'install' in targets or 'all' in targets
 build_tex2lyx = True in ['tex2lyx' in x for x in targets] \
-  or 'install' in targets or 'all' in targets
+    or 'install' in targets or 'all' in targets
 build_lyxbase = build_lyx or 'lyxbase' in targets
 build_po = 'po' in targets or 'install' in targets or 'all' in targets
 build_qt2 = (build_lyx and frontend == 'qt2') or 'qt2' in targets
@@ -1441,104 +1441,103 @@ build_msvs_projects = use_vc and 'msvs_projects' in targets
 # now, if rebuild_targets is specified, do not rebuild some targets
 rebuild_targets = rebuild_targets
 if rebuild_targets:
-  def ifBuildLib(name, libname, old_value):
-    # explicitly asked to rebuild
-    if name in rebuild_targets:
-      return True
-    # else if not rebuild, and if the library already exists
-    elif libExists(libname):
-      return False
-    # do not change the original value
-    else:
-      return old_value
-  build_boost = ifBuildLib('boost', 'included_boost_filesystem', build_boost)
-  build_intl = ifBuildLib('intl', 'included_intl', build_intl)
-  build_support = ifBuildLib('support', 'support', build_support)
-  build_mathed = ifBuildLib('mathed', 'mathed', build_mathed)
-  build_insets = ifBuildLib('insets', 'insets', build_insets)
-  build_frontends = ifBuildLib('frontends', 'frontends', build_frontends)
-  build_graphics = ifBuildLib('graphics', 'graphics', build_graphics)
-  build_controllers = ifBuildLib('controllers', 'controllers', build_controllers)
-  build_lyxbase = ifBuildLib('lyxbase', 'lyxbase_pre', build_lyxbase)
-  build_qt2 = ifBuildLib('qt2', 'qt2', build_qt2)
-  build_qt3 = ifBuildLib('qt3', 'qt3', build_qt3)
-  build_qt4 = ifBuildLib('qt4', 'qt4', build_qt4)
+    def ifBuildLib(name, libname, old_value):
+        # explicitly asked to rebuild
+        if name in rebuild_targets:
+            return True
+        # else if not rebuild, and if the library already exists
+        elif libExists(libname):
+            return False
+        # do not change the original value
+        else:
+            return old_value
+    build_boost = ifBuildLib('boost', 'included_boost_filesystem', build_boost)
+    build_intl = ifBuildLib('intl', 'included_intl', build_intl)
+    build_support = ifBuildLib('support', 'support', build_support)
+    build_mathed = ifBuildLib('mathed', 'mathed', build_mathed)
+    build_insets = ifBuildLib('insets', 'insets', build_insets)
+    build_frontends = ifBuildLib('frontends', 'frontends', build_frontends)
+    build_graphics = ifBuildLib('graphics', 'graphics', build_graphics)
+    build_controllers = ifBuildLib('controllers', 'controllers', build_controllers)
+    build_lyxbase = ifBuildLib('lyxbase', 'lyxbase_pre', build_lyxbase)
+    build_qt2 = ifBuildLib('qt2', 'qt2', build_qt2)
+    build_qt3 = ifBuildLib('qt3', 'qt3', build_qt3)
+    build_qt4 = ifBuildLib('qt4', 'qt4', build_qt4)
 
 # sync frontend and frontend (maybe build qt4 with frontend=qt3)
 if build_qt2:
-  frontend = 'qt2'
+    frontend = 'qt2'
 elif build_qt3:
-  frontend = 'qt3'
+    frontend = 'qt3'
 elif build_qt4:
-  frontend = 'qt4'
+    frontend = 'qt4'
 
 
 if build_boost:
-  #
-  # boost libraries
-  #
-  # special builddir
-  env.BuildDir('$BUILDDIR/boost', '$TOP_SRCDIR/boost/libs', duplicate = 0)
-
-  boostenv = env.Copy()
-  #
-  #
-  # boost use its own config.h
-  boostenv['CPPPATH'] = ['$TOP_SRCDIR/boost', '$BUILDDIR/boost'] + extra_inc_paths
-  boostenv.AppendUnique(CCFLAGS = ['-DBOOST_USER_CONFIG="<config.h>"'])
-
-  for lib in boost_libs:
-    print 'Processing files in boost/libs/%s/src...' % lib
-    boostlib = boostenv.StaticLibrary(
-      target = '$LOCALLIBPATH/included_boost_%s' % lib,
-      source = utils.globSource(dir = env.subst('$TOP_SRCDIR/boost/libs/%s/src' % lib),
-        pattern = '*.cpp', build_dir = '$BUILDDIR/boost/%s/src' % lib)
-    )
-    Alias('boost', boostlib)
+    #
+    # boost libraries
+    #
+    # special builddir
+    env.BuildDir('$BUILDDIR/boost', '$TOP_SRCDIR/boost/libs', duplicate = 0)
+
+    boostenv = env.Copy()
+    #
+    # boost use its own config.h
+    boostenv['CPPPATH'] = ['$TOP_SRCDIR/boost', '$BUILDDIR/boost'] + extra_inc_paths
+    boostenv.AppendUnique(CCFLAGS = ['-DBOOST_USER_CONFIG="<config.h>"'])
+
+    for lib in boost_libs:
+        print 'Processing files in boost/libs/%s/src...' % lib
+        boostlib = boostenv.StaticLibrary(
+            target = '$LOCALLIBPATH/included_boost_%s' % lib,
+            source = utils.globSource(dir = env.subst('$TOP_SRCDIR/boost/libs/%s/src' % lib),
+                pattern = '*.cpp', build_dir = '$BUILDDIR/boost/%s/src' % lib)
+        )
+        Alias('boost', boostlib)
 
 
 if build_intl:
-  #
-  # intl
-  #
-  intlenv = env.Copy()
-
-  print "Processing files in intl..."
-
-  env.BuildDir('$BUILDDIR/intl', '$TOP_SRCDIR/intl', duplicate = 0)
-
-  # we need the original C compiler for these files
-  intlenv['CC'] = C_COMPILER
-  intlenv['CCFLAGS'] = C_CCFLAGS
-  if use_vc:
-    intlenv.Append(CCFLAGS=['/Dinline#', '/D__attribute__(x)#', '/Duintmax_t=UINT_MAX'])
-  # intl does not use global config.h
-  intlenv['CPPPATH'] = ['$BUILDDIR/intl'] + extra_inc_paths
-
-  intlenv.Append(CCFLAGS = [
-    r'-DLOCALEDIR=\"' + env['LOCALEDIR'].replace('\\', '\\\\') + r'\"',
-    r'-DLOCALE_ALIAS_PATH=\"' + env['LOCALEDIR'].replace('\\', '\\\\') + r'\"',
-    r'-DLIBDIR=\"' + env['TOP_SRCDIR'].replace('\\', '\\\\') + r'/lib\"',
-    '-DIN_LIBINTL',
-    '-DENABLE_RELOCATABLE=1',
-    '-DIN_LIBRARY',
-    r'-DINSTALLDIR=\"' + prefix.replace('\\', '\\\\') + r'/lib\"',
-    '-DNO_XMALLOC',
-    '-Dset_relocation_prefix=libintl_set_relocation_prefix',
-    '-Drelocate=libintl_relocate',
-    '-DDEPENDS_ON_LIBICONV=1',
-    '-DHAVE_CONFIG_H'
-    ]
-  )
-
-  intl = intlenv.StaticLibrary(
-    target = '$LOCALLIBPATH/included_intl',
-    LIBS = ['c'],
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/intl'), pattern = '*.c',
-      exclude = ['vasnprintf.c', 'printf-parse.c', 'printf-args.c', 'os2compat.c'],
-      build_dir = '$BUILDDIR/intl')
-  )
-  Alias('intl', intl)
+    #
+    # intl
+    #
+    intlenv = env.Copy()
+
+    print "Processing files in intl..."
+
+    env.BuildDir('$BUILDDIR/intl', '$TOP_SRCDIR/intl', duplicate = 0)
+
+    # we need the original C compiler for these files
+    intlenv['CC'] = C_COMPILER
+    intlenv['CCFLAGS'] = C_CCFLAGS
+    if use_vc:
+        intlenv.Append(CCFLAGS=['/Dinline#', '/D__attribute__(x)#', '/Duintmax_t=UINT_MAX'])
+    # intl does not use global config.h
+    intlenv['CPPPATH'] = ['$BUILDDIR/intl'] + extra_inc_paths
+
+    intlenv.Append(CCFLAGS = [
+        r'-DLOCALEDIR=\"' + env['LOCALEDIR'].replace('\\', '\\\\') + r'\"',
+        r'-DLOCALE_ALIAS_PATH=\"' + env['LOCALEDIR'].replace('\\', '\\\\') + r'\"',
+        r'-DLIBDIR=\"' + env['TOP_SRCDIR'].replace('\\', '\\\\') + r'/lib\"',
+        '-DIN_LIBINTL',
+        '-DENABLE_RELOCATABLE=1',
+        '-DIN_LIBRARY',
+        r'-DINSTALLDIR=\"' + prefix.replace('\\', '\\\\') + r'/lib\"',
+        '-DNO_XMALLOC',
+        '-Dset_relocation_prefix=libintl_set_relocation_prefix',
+        '-Drelocate=libintl_relocate',
+        '-DDEPENDS_ON_LIBICONV=1',
+        '-DHAVE_CONFIG_H'
+        ]
+    )
+
+    intl = intlenv.StaticLibrary(
+        target = '$LOCALLIBPATH/included_intl',
+        LIBS = ['c'],
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/intl'), pattern = '*.c',
+            exclude = ['vasnprintf.c', 'printf-parse.c', 'printf-args.c', 'os2compat.c'],
+            build_dir = '$BUILDDIR/intl')
+    )
+    Alias('intl', intl)
 
 
 #
@@ -1548,778 +1547,778 @@ env.BuildDir('$BUILDDIR/common', '$TOP_SRCDIR/src', duplicate = 0)
 
 
 if build_support:
-  #
-  # src/support
-  #
-  print "Processing files in src/support..."
+    #
+    # src/support
+    #
+    print "Processing files in src/support..."
 
-  env.substFile('$BUILDDIR/common/support/package.C', '$TOP_SRCDIR/src/support/package.C.in')
+    env.substFile('$BUILDDIR/common/support/package.C', '$TOP_SRCDIR/src/support/package.C.in')
 
-  support = env.StaticLibrary(
-    target = '$LOCALLIBPATH/support',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/support'), pattern = lyx_ext,
-      exclude = ['os_win32.C', 'os_unix.C', 'os_cygwin.C', 'os_os2.C', 'atexit.c'],
-      include = ['package.C'], build_dir = '$BUILDDIR/common/support')
-  )
-  Alias('support', support)
+    support = env.StaticLibrary(
+        target = '$LOCALLIBPATH/support',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/support'), pattern = lyx_ext,
+            exclude = ['os_win32.C', 'os_unix.C', 'os_cygwin.C', 'os_os2.C', 'atexit.c'],
+            include = ['package.C'], build_dir = '$BUILDDIR/common/support')
+    )
+    Alias('support', support)
 
 
 if build_mathed:
-  #
-  # src/mathed
-  #
-  print "Processing files in src/mathed..."
-  #
-  mathed = env.StaticLibrary(
-    target = '$LOCALLIBPATH/mathed',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/mathed'),
-      pattern = lyx_ext,
-      exclude = ['math_xyarrowinset.C', 'math_mboxinset.C', 'formulamacro.C'],
-      build_dir = '$BUILDDIR/common/mathed')
-  )
-  Alias('mathed', mathed)
+    #
+    # src/mathed
+    #
+    print "Processing files in src/mathed..."
+    #
+    mathed = env.StaticLibrary(
+        target = '$LOCALLIBPATH/mathed',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/mathed'),
+            pattern = lyx_ext,
+            exclude = ['math_xyarrowinset.C', 'math_mboxinset.C', 'formulamacro.C'],
+            build_dir = '$BUILDDIR/common/mathed')
+    )
+    Alias('mathed', mathed)
 
 
 if build_insets:
-  #
-  # src/insets
-  #
-  print "Processing files in src/insets..."
-  #
-  insets = env.StaticLibrary(
-    target = '$LOCALLIBPATH/insets',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/insets'),
-      pattern = lyx_ext,
-      exclude = ['insettheorem.C'], build_dir = '$BUILDDIR/common/insets')
-  )
-  Alias('insets', insets)
+    #
+    # src/insets
+    #
+    print "Processing files in src/insets..."
+    #
+    insets = env.StaticLibrary(
+        target = '$LOCALLIBPATH/insets',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/insets'),
+            pattern = lyx_ext,
+            exclude = ['insettheorem.C'], build_dir = '$BUILDDIR/common/insets')
+    )
+    Alias('insets', insets)
 
 
 if build_frontends:
-  #
-  # src/frontends
-  #
-  print "Processing files in src/frontends..."
+    #
+    # src/frontends
+    #
+    print "Processing files in src/frontends..."
 
-  frontends = env.StaticLibrary(
-    target = '$LOCALLIBPATH/frontends',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends'), pattern = lyx_ext,
-      build_dir = '$BUILDDIR/common/frontends')
-  )
-  Alias('frontends', frontends)
+    frontends = env.StaticLibrary(
+        target = '$LOCALLIBPATH/frontends',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends'), pattern = lyx_ext,
+            build_dir = '$BUILDDIR/common/frontends')
+    )
+    Alias('frontends', frontends)
 
 
 if build_graphics:
-  #
-  # src/graphics
-  #
-  print "Processing files in src/graphics..."
+    #
+    # src/graphics
+    #
+    print "Processing files in src/graphics..."
 
-  graphics = env.StaticLibrary(
-    target = '$LOCALLIBPATH/graphics',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/graphics'), pattern = lyx_ext,
-      build_dir = '$BUILDDIR/common/graphics')
-  )
-  Alias('graphics', graphics)
+    graphics = env.StaticLibrary(
+        target = '$LOCALLIBPATH/graphics',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/graphics'), pattern = lyx_ext,
+            build_dir = '$BUILDDIR/common/graphics')
+    )
+    Alias('graphics', graphics)
 
 
 if build_controllers:
-  #
-  # src/frontends/controllers
-  #
-  print "Processing files in src/frontends/controllers..."
+    #
+    # src/frontends/controllers
+    #
+    print "Processing files in src/frontends/controllers..."
 
-  controllers = env.StaticLibrary(
-    target = '$LOCALLIBPATH/controllers',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/controllers'), pattern = lyx_ext,
-      build_dir = '$BUILDDIR/common/frontends/controllers')
-  )
-  Alias('controllers', controllers)
+    controllers = env.StaticLibrary(
+        target = '$LOCALLIBPATH/controllers',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/controllers'), pattern = lyx_ext,
+            build_dir = '$BUILDDIR/common/frontends/controllers')
+    )
+    Alias('controllers', controllers)
 
 
 #
 # src/frontend/qt2/3/4
 #
 if build_qt2 or build_qt3 or build_qt4:
-  env.BuildDir('$BUILDDIR/$frontend', '$TOP_SRCDIR/src/frontend/$frontend', duplicate = 0)
+    env.BuildDir('$BUILDDIR/$frontend', '$TOP_SRCDIR/src/frontend/$frontend', duplicate = 0)
 
 
 if build_qt2:
-  print "Processing files in src/frontends/qt2..."
-
-  qt2env = env.Copy()
-  # disable auto scan to speed up non build time
-  qt2env['QT_AUTOSCAN'] = 0
-  qt2env['QT_MOCHPREFIX'] = ''
-
-  # load qt2 tools
-  qt2env.Tool('qt')
-
-  qt2env.AppendUnique(CPPPATH = [
-    '$BUILDDIR/common',
-    '$BUILDDIR/common/images',
-    '$BUILDDIR/common/frontends',
-    '$BUILDDIR/common/frontends/qt2',
-    '$BUILDDIR/common/frontends/controllers',
-    qt_inc_path]
-  )
-
-  qt2_moc_files = ["$BUILDDIR/common/frontends/qt2/%s" % x for x in Split('''
-    BulletsModule.C
-    emptytable.C
-    FileDialog_private.C
-    floatplacement.C
-    iconpalette.C
-    lengthcombo.C
-    panelstack.C
-    QAboutDialog.C
-    QBibitemDialog.C
-    QBibtexDialog.C
-    QBoxDialog.C
-    QBranchDialog.C
-    QBrowseBox.C
-    QChangesDialog.C
-    QCharacterDialog.C
-    QCitationDialog.C
-    QCommandBuffer.C
-    QCommandEdit.C
-    QContentPane.C
-    QDelimiterDialog.C
-    QDocumentDialog.C
-    QErrorListDialog.C
-    QERTDialog.C
-    QExternalDialog.C
-    QFloatDialog.C
-    QGraphicsDialog.C
-    QIncludeDialog.C
-    QIndexDialog.C
-    QLogDialog.C
-    QLPopupMenu.C
-    QLPrintDialog.C
-    QMathDialog.C
-    QMathMatrixDialog.C
-    QNoteDialog.C
-    QParagraphDialog.C
-    QPrefsDialog.C
-    QRefDialog.C
-    QSearchDialog.C
-    QSendtoDialog.C
-    qsetborder.C
-    QShowFileDialog.C
-    QSpellcheckerDialog.C
-    QDialogView.C
-    QTabularCreateDialog.C
-    QTabularDialog.C
-    QTexinfoDialog.C
-    QThesaurusDialog.C
-    QTocDialog.C
-    qttableview.C
-    QtView.C
-    QURLDialog.C
-    QVSpaceDialog.C
-    QWrapDialog.C
-    QLToolbar.C
-    socket_callback.C
-    validators.C
-  ''')]
-
-  # manually moc and uic files for better performance
-  qt2_moced_files = [qt2env.Moc(x.replace('.C', '_moc.cpp'), x.replace('.C', '.h')) for x in qt2_moc_files]
-
-  qt2_uiced_files = [qt2env.Uic('$BUILDDIR/common/frontends/qt2/ui/'+x) for x in \
-     utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt2/ui'), pattern = '*.ui')]
-
-  qt2_uiced_cc_files = []
-  for x in qt2_uiced_files:
-    qt2_uiced_cc_files.extend(x[1:])
-
-  qt2 = qt2env.StaticLibrary(
-    target = '$LOCALLIBPATH/qt2',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt2/'), pattern = lyx_ext,
-      build_dir = '$BUILDDIR/common/frontends/qt2') + qt2_moced_files + qt2_uiced_cc_files
-  )
-  Alias('qt2', qt2)
+    print "Processing files in src/frontends/qt2..."
+
+    qt2env = env.Copy()
+    # disable auto scan to speed up non build time
+    qt2env['QT_AUTOSCAN'] = 0
+    qt2env['QT_MOCHPREFIX'] = ''
+
+    # load qt2 tools
+    qt2env.Tool('qt')
+
+    qt2env.AppendUnique(CPPPATH = [
+        '$BUILDDIR/common',
+        '$BUILDDIR/common/images',
+        '$BUILDDIR/common/frontends',
+        '$BUILDDIR/common/frontends/qt2',
+        '$BUILDDIR/common/frontends/controllers',
+        qt_inc_path]
+    )
+
+    qt2_moc_files = ["$BUILDDIR/common/frontends/qt2/%s" % x for x in Split('''
+        BulletsModule.C
+        emptytable.C
+        FileDialog_private.C
+        floatplacement.C
+        iconpalette.C
+        lengthcombo.C
+        panelstack.C
+        QAboutDialog.C
+        QBibitemDialog.C
+        QBibtexDialog.C
+        QBoxDialog.C
+        QBranchDialog.C
+        QBrowseBox.C
+        QChangesDialog.C
+        QCharacterDialog.C
+        QCitationDialog.C
+        QCommandBuffer.C
+        QCommandEdit.C
+        QContentPane.C
+        QDelimiterDialog.C
+        QDocumentDialog.C
+        QErrorListDialog.C
+        QERTDialog.C
+        QExternalDialog.C
+        QFloatDialog.C
+        QGraphicsDialog.C
+        QIncludeDialog.C
+        QIndexDialog.C
+        QLogDialog.C
+        QLPopupMenu.C
+        QLPrintDialog.C
+        QMathDialog.C
+        QMathMatrixDialog.C
+        QNoteDialog.C
+        QParagraphDialog.C
+        QPrefsDialog.C
+        QRefDialog.C
+        QSearchDialog.C
+        QSendtoDialog.C
+        qsetborder.C
+        QShowFileDialog.C
+        QSpellcheckerDialog.C
+        QDialogView.C
+        QTabularCreateDialog.C
+        QTabularDialog.C
+        QTexinfoDialog.C
+        QThesaurusDialog.C
+        QTocDialog.C
+        qttableview.C
+        QtView.C
+        QURLDialog.C
+        QVSpaceDialog.C
+        QWrapDialog.C
+        QLToolbar.C
+        socket_callback.C
+        validators.C
+    ''')]
+
+    # manually moc and uic files for better performance
+    qt2_moced_files = [qt2env.Moc(x.replace('.C', '_moc.cpp'), x.replace('.C', '.h')) for x in qt2_moc_files]
+
+    qt2_uiced_files = [qt2env.Uic('$BUILDDIR/common/frontends/qt2/ui/'+x) for x in \
+        utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt2/ui'), pattern = '*.ui')]
+
+    qt2_uiced_cc_files = []
+    for x in qt2_uiced_files:
+        qt2_uiced_cc_files.extend(x[1:])
+
+    qt2 = qt2env.StaticLibrary(
+        target = '$LOCALLIBPATH/qt2',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt2/'), pattern = lyx_ext,
+            build_dir = '$BUILDDIR/common/frontends/qt2') + qt2_moced_files + qt2_uiced_cc_files
+    )
+    Alias('qt2', qt2)
 
 
 if build_qt3:
-  print "Processing files in src/frontends/qt3..."
-
-  qt3env = env.Copy()
-  # disable auto scan to speed up non build time
-  qt3env['QT_AUTOSCAN'] = 0
-  qt3env['QT_MOCHPREFIX'] = ''
-
-  # load qt3 tools
-  qt3env.Tool('qt')
-
-  qt3env.AppendUnique(CPPPATH = [
-    '$BUILDDIR/common',
-    '$BUILDDIR/common/images',
-    '$BUILDDIR/common/frontends',
-    '$BUILDDIR/common/frontends/qt3',
-    '$BUILDDIR/common/frontends/controllers',
-    qt_inc_path]
-  )
-
-  qt3_moc_files = ["$BUILDDIR/common/frontends/qt3/%s" % x for x in Split('''
-    BulletsModule.C
-    emptytable.C
-    FileDialog_private.C
-    floatplacement.C
-    iconpalette.C
-    lengthcombo.C
-    panelstack.C
-    QAboutDialog.C
-    QBibitemDialog.C
-    QBibtexDialog.C
-    QBoxDialog.C
-    QBranchDialog.C
-    QBrowseBox.C
-    QChangesDialog.C
-    QCharacterDialog.C
-    QCitationDialog.C
-    QCommandBuffer.C
-    QCommandEdit.C
-    QContentPane.C
-    QDelimiterDialog.C
-    QDocumentDialog.C
-    QErrorListDialog.C
-    QERTDialog.C
-    QExternalDialog.C
-    QFloatDialog.C
-    QGraphicsDialog.C
-    QIncludeDialog.C
-    QIndexDialog.C
-    QLogDialog.C
-    QViewSourceDialog.C
-    QLPopupMenu.C
-    QLPrintDialog.C
-    QMathDialog.C
-    QMathMatrixDialog.C
-    QNoteDialog.C
-    QParagraphDialog.C
-    QPrefsDialog.C
-    QRefDialog.C
-    QSearchDialog.C
-    QSendtoDialog.C
-    qsetborder.C
-    QShowFileDialog.C
-    QSpellcheckerDialog.C
-    QDialogView.C
-    QTabularCreateDialog.C
-    QTabularDialog.C
-    QTexinfoDialog.C
-    QThesaurusDialog.C
-    QTocDialog.C
-    qttableview.C
-    QtView.C
-    QURLDialog.C
-    QVSpaceDialog.C
-    QWrapDialog.C
-    QLToolbar.C
-    socket_callback.C
-    validators.C
-  ''')]
-
-  # manually moc and uic files for better performance
-  qt3_moced_files = [qt3env.Moc(x.replace('.C', '_moc.cpp'), x.replace('.C', '.h')) for x in qt3_moc_files]
-
-  qt3_uiced_files = [qt3env.Uic('$BUILDDIR/common/frontends/qt3/ui/'+x) for x in \
-     utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt3/ui'), pattern = '*.ui')]
-
-  qt3_uiced_cc_files = []
-  for x in qt3_uiced_files:
-    qt3_uiced_cc_files.extend(x[1:])
-
-  qt3 = qt3env.StaticLibrary(
-    target = '$LOCALLIBPATH/qt3',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt3/'), pattern = lyx_ext,
-      build_dir = '$BUILDDIR/common/frontends/qt3') + qt3_moced_files + qt3_uiced_cc_files
-  )
-  Alias('qt3', qt3)
+    print "Processing files in src/frontends/qt3..."
+
+    qt3env = env.Copy()
+    # disable auto scan to speed up non build time
+    qt3env['QT_AUTOSCAN'] = 0
+    qt3env['QT_MOCHPREFIX'] = ''
+
+    # load qt3 tools
+    qt3env.Tool('qt')
+
+    qt3env.AppendUnique(CPPPATH = [
+        '$BUILDDIR/common',
+        '$BUILDDIR/common/images',
+        '$BUILDDIR/common/frontends',
+        '$BUILDDIR/common/frontends/qt3',
+        '$BUILDDIR/common/frontends/controllers',
+        qt_inc_path]
+    )
+
+    qt3_moc_files = ["$BUILDDIR/common/frontends/qt3/%s" % x for x in Split('''
+        BulletsModule.C
+        emptytable.C
+        FileDialog_private.C
+        floatplacement.C
+        iconpalette.C
+        lengthcombo.C
+        panelstack.C
+        QAboutDialog.C
+        QBibitemDialog.C
+        QBibtexDialog.C
+        QBoxDialog.C
+        QBranchDialog.C
+        QBrowseBox.C
+        QChangesDialog.C
+        QCharacterDialog.C
+        QCitationDialog.C
+        QCommandBuffer.C
+        QCommandEdit.C
+        QContentPane.C
+        QDelimiterDialog.C
+        QDocumentDialog.C
+        QErrorListDialog.C
+        QERTDialog.C
+        QExternalDialog.C
+        QFloatDialog.C
+        QGraphicsDialog.C
+        QIncludeDialog.C
+        QIndexDialog.C
+        QLogDialog.C
+        QViewSourceDialog.C
+        QLPopupMenu.C
+        QLPrintDialog.C
+        QMathDialog.C
+        QMathMatrixDialog.C
+        QNoteDialog.C
+        QParagraphDialog.C
+        QPrefsDialog.C
+        QRefDialog.C
+        QSearchDialog.C
+        QSendtoDialog.C
+        qsetborder.C
+        QShowFileDialog.C
+        QSpellcheckerDialog.C
+        QDialogView.C
+        QTabularCreateDialog.C
+        QTabularDialog.C
+        QTexinfoDialog.C
+        QThesaurusDialog.C
+        QTocDialog.C
+        qttableview.C
+        QtView.C
+        QURLDialog.C
+        QVSpaceDialog.C
+        QWrapDialog.C
+        QLToolbar.C
+        socket_callback.C
+        validators.C
+    ''')]
+
+    # manually moc and uic files for better performance
+    qt3_moced_files = [qt3env.Moc(x.replace('.C', '_moc.cpp'), x.replace('.C', '.h')) for x in qt3_moc_files]
+
+    qt3_uiced_files = [qt3env.Uic('$BUILDDIR/common/frontends/qt3/ui/'+x) for x in \
+        utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt3/ui'), pattern = '*.ui')]
+
+    qt3_uiced_cc_files = []
+    for x in qt3_uiced_files:
+        qt3_uiced_cc_files.extend(x[1:])
+
+    qt3 = qt3env.StaticLibrary(
+        target = '$LOCALLIBPATH/qt3',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt3/'), pattern = lyx_ext,
+            build_dir = '$BUILDDIR/common/frontends/qt3') + qt3_moced_files + qt3_uiced_cc_files
+    )
+    Alias('qt3', qt3)
 
 
 if build_qt4:
-  print "Processing files in src/frontends/qt4..."
-
-  qt4env = env.Copy()
-  qt4env['QT_AUTOSCAN'] = 0
-
-  # local qt4 toolset from
-  # http://www.iua.upf.es/~dgarcia/Codders/sconstools.html
-  #
-  # NOTE: I have to patch qt4.py since it does not automatically
-  # process .C file!!! (add to cxx_suffixes )
-  #
-  qt4env.Tool('qt4', [scons_dir])
-  qt4env.EnableQt4Modules(qt_libs, debug = (mode == 'debug'))
-
-  qt4env.AppendUnique(CPPPATH = [
-    '$BUILDDIR/common',
-    '$BUILDDIR/common/images',
-    '$BUILDDIR/common/frontends',
-    '$BUILDDIR/common/frontends/qt4',
-    '$BUILDDIR/common/frontends/controllers',
-    qt_inc_path
-    ]
-  )
-
-  # FIXME: replace by something from pkg_config
-  qt4env.Append(CCFLAGS = [
-    '-DHAVE_CONFIG_H',
-    '-DQT_CLEAN_NAMESPACE',
-    '-DQT_GENUINE_STR',
-    '-DQT_NO_STL',
-    '-DQT3_SUPPORT',
-    ]
-  )
-
-
-  qt4_moc_files = ["$BUILDDIR/common/frontends/qt4/%s" % x for x in Split('''
-    BulletsModule.C
-    emptytable.C
-    FileDialog_private.C
-    floatplacement.C
-    iconpalette.C
-    lengthcombo.C
-    InsertTableWidget.C
-    panelstack.C
-    QAboutDialog.C
-    QBibitemDialog.C
-    QBibtexDialog.C
-    QBoxDialog.C
-    QBranchDialog.C
-    QBranches.C
-    QChangesDialog.C
-    QCharacterDialog.C
-    QCitationDialog.C
-    QCommandBuffer.C
-    QCommandEdit.C
-    QDelimiterDialog.C
-    QDocumentDialog.C
-    QErrorListDialog.C
-    QERTDialog.C
-    QExternalDialog.C
-    QFloatDialog.C
-    QGraphicsDialog.C
-    QIncludeDialog.C
-    QIndexDialog.C
-    Action.C
-    QLogDialog.C
-    QViewSourceDialog.C
-    QViewSource.C
-    QLMenubar.C
-    QLPopupMenu.C
-    QLPrintDialog.C
-    QMathDialog.C
-    QMathMatrixDialog.C
-    QNoteDialog.C
-    QParagraphDialog.C
-    QPrefsDialog.C
-    QRefDialog.C
-    QSearchDialog.C
-    QSendtoDialog.C
-    qsetborder.C
-    QShowFileDialog.C
-    QSpellcheckerDialog.C
-    QDialogView.C
-    QTabularCreateDialog.C
-    QTabularDialog.C
-    QTexinfoDialog.C
-    QThesaurusDialog.C
-    TocModel.C
-    QTocDialog.C
-    GuiView.C
-    QURLDialog.C
-    QVSpaceDialog.C
-    GuiWorkArea.C
-    QWrapDialog.C
-    QLToolbar.C
-    socket_callback.C
-    validators.C
-  ''') ]
-
-  #
-  # Compile resources
-  #
-  resources = [qt4env.Uic4(x.split('.')[0]) for x in \
-    utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt4/ui'), pattern = '*.ui',
-      build_dir = '$BUILDDIR/common/frontends/qt4/ui')]
-
-  #
-  # moc qt4_moc_files, the moced files are included in the original files
-  #
-  qt4_moced_files = [qt4env.Moc4(x.replace('.C', '_moc.cpp'), x.replace('.C', '.h')) for x in qt4_moc_files]
-
-  qt4 = qt4env.StaticLibrary(
-    target = '$LOCALLIBPATH/qt4',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt4'), pattern = lyx_ext,
-      exclude = ['QBrowseBox.C'], build_dir = '$BUILDDIR/common/frontends/qt4')
-  )
-  Alias('qt4', qt4)
+    print "Processing files in src/frontends/qt4..."
 
+    qt4env = env.Copy()
+    qt4env['QT_AUTOSCAN'] = 0
 
-if build_client:
-  #
-  # src/client
-  #
-  env.BuildDir('$BUILDDIR/common', '$TOP_SRCDIR/src', duplicate = 0)
-
-  print "Processing files in src/client..."
-
-  if env['HAVE_FCNTL']:
-    client = env.Program(
-      target = '$BUILDDIR/common/client/lyxclient',
-      LIBS = ['support'] + intl_libs + system_libs +
-        socket_libs + boost_libraries,
-      source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/client'), pattern = lyx_ext,
-        build_dir = '$BUILDDIR/common/client')
+    # local qt4 toolset from
+    # http://www.iua.upf.es/~dgarcia/Codders/sconstools.html
+    #
+    # NOTE: I have to patch qt4.py since it does not automatically
+    # process .C file!!! (add to cxx_suffixes )
+    #
+    qt4env.Tool('qt4', [scons_dir])
+    qt4env.EnableQt4Modules(qt_libs, debug = (mode == 'debug'))
+
+    qt4env.AppendUnique(CPPPATH = [
+        '$BUILDDIR/common',
+        '$BUILDDIR/common/images',
+        '$BUILDDIR/common/frontends',
+        '$BUILDDIR/common/frontends/qt4',
+        '$BUILDDIR/common/frontends/controllers',
+        qt_inc_path
+        ]
+    )
+
+    # FIXME: replace by something from pkg_config
+    qt4env.Append(CCFLAGS = [
+        '-DHAVE_CONFIG_H',
+        '-DQT_CLEAN_NAMESPACE',
+        '-DQT_GENUINE_STR',
+        '-DQT_NO_STL',
+        '-DQT3_SUPPORT',
+        ]
+    )
+
+
+    qt4_moc_files = ["$BUILDDIR/common/frontends/qt4/%s" % x for x in Split('''
+        BulletsModule.C
+        emptytable.C
+        FileDialog_private.C
+        floatplacement.C
+        iconpalette.C
+        lengthcombo.C
+        InsertTableWidget.C
+        panelstack.C
+        QAboutDialog.C
+        QBibitemDialog.C
+        QBibtexDialog.C
+        QBoxDialog.C
+        QBranchDialog.C
+        QBranches.C
+        QChangesDialog.C
+        QCharacterDialog.C
+        QCitationDialog.C
+        QCommandBuffer.C
+        QCommandEdit.C
+        QDelimiterDialog.C
+        QDocumentDialog.C
+        QErrorListDialog.C
+        QERTDialog.C
+        QExternalDialog.C
+        QFloatDialog.C
+        QGraphicsDialog.C
+        QIncludeDialog.C
+        QIndexDialog.C
+        Action.C
+        QLogDialog.C
+        QViewSourceDialog.C
+        QViewSource.C
+        QLMenubar.C
+        QLPopupMenu.C
+        QLPrintDialog.C
+        QMathDialog.C
+        QMathMatrixDialog.C
+        QNoteDialog.C
+        QParagraphDialog.C
+        QPrefsDialog.C
+        QRefDialog.C
+        QSearchDialog.C
+        QSendtoDialog.C
+        qsetborder.C
+        QShowFileDialog.C
+        QSpellcheckerDialog.C
+        QDialogView.C
+        QTabularCreateDialog.C
+        QTabularDialog.C
+        QTexinfoDialog.C
+        QThesaurusDialog.C
+        TocModel.C
+        QTocDialog.C
+        GuiView.C
+        QURLDialog.C
+        QVSpaceDialog.C
+        GuiWorkArea.C
+        QWrapDialog.C
+        QLToolbar.C
+        socket_callback.C
+        validators.C
+    ''') ]
+
+    #
+    # Compile resources
+    #
+    resources = [qt4env.Uic4(x.split('.')[0]) for x in \
+        utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt4/ui'), pattern = '*.ui',
+            build_dir = '$BUILDDIR/common/frontends/qt4/ui')]
+
+    #
+    # moc qt4_moc_files, the moced files are included in the original files
+    #
+    qt4_moced_files = [qt4env.Moc4(x.replace('.C', '_moc.cpp'), x.replace('.C', '.h')) for x in qt4_moc_files]
+
+    qt4 = qt4env.StaticLibrary(
+        target = '$LOCALLIBPATH/qt4',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/frontends/qt4'), pattern = lyx_ext,
+            exclude = ['QBrowseBox.C'], build_dir = '$BUILDDIR/common/frontends/qt4')
     )
-    Alias('client', env.Command(os.path.join('$BUILDDIR', os.path.split(str(client[0]))[1]),
-      client, [Copy('$TARGET', '$SOURCE')]))
-  else:
-    client = None
-  Alias('client', client)
+    Alias('qt4', qt4)
+
+
+if build_client:
+    #
+    # src/client
+    #
+    env.BuildDir('$BUILDDIR/common', '$TOP_SRCDIR/src', duplicate = 0)
+
+    print "Processing files in src/client..."
+
+    if env['HAVE_FCNTL']:
+        client = env.Program(
+            target = '$BUILDDIR/common/client/lyxclient',
+            LIBS = ['support'] + intl_libs + system_libs +
+                socket_libs + boost_libraries,
+            source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/client'), pattern = lyx_ext,
+                build_dir = '$BUILDDIR/common/client')
+        )
+        Alias('client', env.Command(os.path.join('$BUILDDIR', os.path.split(str(client[0]))[1]),
+            client, [Copy('$TARGET', '$SOURCE')]))
+    else:
+        client = None
+    Alias('client', client)
 
 
 if build_tex2lyx:
-  #
-  # tex2lyx
-  #
-  print "Processing files in src/tex2lyx..."
-
-  tex2lyx_env = env.Copy()
-  #
-  tex2lyx_env.Prepend(CPPPATH = ['$BUILDDIR/common/tex2lyx'])
-  tex2lyx_env.AppendUnique(LIBPATH = ['#$LOCALLIBPATH'])
-
-  for file in ['FloatList.C', 'Floating.C', 'counters.C', 'lyxlayout.h', 'lyxlayout.C',
-    'lyxtextclass.h', 'lyxtextclass.C', 'lyxlex.C', 'lyxlex_pimpl.C']:
-    env.Command('$BUILDDIR/common/tex2lyx/'+file, '$TOP_SRCDIR/src/'+file,
-      [Copy('$TARGET', '$SOURCE')])
-
-  tex2lyx = tex2lyx_env.Program(
-    target = '$BUILDDIR/common/tex2lyx/tex2lyx',
-    LIBS = ['support'] + boost_libraries + system_libs,
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/tex2lyx'), pattern = lyx_ext,
-      include = ['FloatList.C', 'Floating.C', 'counters.C', 'lyxlayout.C',
-        'lyxtextclass.C', 'lyxlex.C', 'lyxlex_pimpl.C'],
-      build_dir = '$BUILDDIR/common/tex2lyx')
-  )
-  Alias('tex2lyx', env.Command(os.path.join('$BUILDDIR', os.path.split(str(tex2lyx[0]))[1]),
-    tex2lyx, [Copy('$TARGET', '$SOURCE')]))
-  Alias('tex2lyx', tex2lyx)
+    #
+    # tex2lyx
+    #
+    print "Processing files in src/tex2lyx..."
+
+    tex2lyx_env = env.Copy()
+    #
+    tex2lyx_env.Prepend(CPPPATH = ['$BUILDDIR/common/tex2lyx'])
+    tex2lyx_env.AppendUnique(LIBPATH = ['#$LOCALLIBPATH'])
+
+    for file in ['FloatList.C', 'Floating.C', 'counters.C', 'lyxlayout.h', 'lyxlayout.C',
+        'lyxtextclass.h', 'lyxtextclass.C', 'lyxlex.C', 'lyxlex_pimpl.C']:
+        env.Command('$BUILDDIR/common/tex2lyx/'+file, '$TOP_SRCDIR/src/'+file,
+            [Copy('$TARGET', '$SOURCE')])
+
+    tex2lyx = tex2lyx_env.Program(
+        target = '$BUILDDIR/common/tex2lyx/tex2lyx',
+        LIBS = ['support'] + boost_libraries + system_libs,
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src/tex2lyx'), pattern = lyx_ext,
+            include = ['FloatList.C', 'Floating.C', 'counters.C', 'lyxlayout.C',
+                'lyxtextclass.C', 'lyxlex.C', 'lyxlex_pimpl.C'],
+            build_dir = '$BUILDDIR/common/tex2lyx')
+    )
+    Alias('tex2lyx', env.Command(os.path.join('$BUILDDIR', os.path.split(str(tex2lyx[0]))[1]),
+        tex2lyx, [Copy('$TARGET', '$SOURCE')]))
+    Alias('tex2lyx', tex2lyx)
 
 
 if build_lyxbase:
-  #
-  # src/
-  #
-  print "Processing files in src..."
-
-  env.substFile('$BUILDDIR/common/version.C', '$TOP_SRCDIR/src/version.C.in')
-
-  lyx_post_source = Split('''
-    tabular.C
-    dimension.C
-    PrinterParams.C
-    box.C
-    Thesaurus.C
-    SpellBase.C
-  ''')
-
-  if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
-    lyx_post_source.append('aspell.C')
-  elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
-    lyx_post_source.append('pspell.C')
-  elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
-    lyx_post_source.append('ispell.C')
-
-  # msvc requires at least one source file with main()
-  # so I exclude main.C from lyxbase
-  lyxbase_pre = env.StaticLibrary(
-    target = '$LOCALLIBPATH/lyxbase_pre',
-    source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src'), pattern = lyx_ext,
-      exclude = lyx_post_source + ['main.C', 'aspell.C', 'pspell.C',
-        'ispell.C', 'Variables.C', 'Sectioning.C'],
-      include = ['version.C'], build_dir = '$BUILDDIR/common')
-  )
-  lyxbase_post = env.StaticLibrary(
-    target = '$LOCALLIBPATH/lyxbase_post',
-    source = ["$BUILDDIR/common/%s" % x for x in lyx_post_source]
-  )
-  Alias('lyxbase', lyxbase_pre)
-  Alias('lyxbase', lyxbase_post)
+    #
+    # src/
+    #
+    print "Processing files in src..."
+
+    env.substFile('$BUILDDIR/common/version.C', '$TOP_SRCDIR/src/version.C.in')
+
+    lyx_post_source = Split('''
+        tabular.C
+        dimension.C
+        PrinterParams.C
+        box.C
+        Thesaurus.C
+        SpellBase.C
+    ''')
+
+    if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
+        lyx_post_source.append('aspell.C')
+    elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
+        lyx_post_source.append('pspell.C')
+    elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
+        lyx_post_source.append('ispell.C')
+
+    # msvc requires at least one source file with main()
+    # so I exclude main.C from lyxbase
+    lyxbase_pre = env.StaticLibrary(
+        target = '$LOCALLIBPATH/lyxbase_pre',
+        source = utils.globSource(dir = env.subst('$TOP_SRCDIR/src'), pattern = lyx_ext,
+            exclude = lyx_post_source + ['main.C', 'aspell.C', 'pspell.C',
+                'ispell.C', 'Variables.C', 'Sectioning.C'],
+            include = ['version.C'], build_dir = '$BUILDDIR/common')
+    )
+    lyxbase_post = env.StaticLibrary(
+        target = '$LOCALLIBPATH/lyxbase_post',
+        source = ["$BUILDDIR/common/%s" % x for x in lyx_post_source]
+    )
+    Alias('lyxbase', lyxbase_pre)
+    Alias('lyxbase', lyxbase_post)
 
 
 if build_lyx:
-  #
-  # Build lyx with given frontend
-  #
-  lyx = env.Program(
-    target = '$BUILDDIR/$frontend/lyx',
-    source = ['$BUILDDIR/common/main.C'],
-    LIBS = [
-      'lyxbase_pre',
-      'mathed',
-      'insets',
-      'frontends',
-      frontend,
-      'controllers',
-      'graphics',
-      'support',
-      'lyxbase_post',
-      ] +
-      boost_libraries +
-      frontend_libs +
-      intl_libs +
-      socket_libs +
-      system_libs
-  )
-  # [/path/to/lyx.ext] => lyx-qt3.ext
-  target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx-%s' % frontend)
-  Alias('lyx', env.Command(os.path.join('$BUILDDIR', target_name), lyx,
-    [Copy('$TARGET', '$SOURCE')]))
-  Alias('lyx', lyx)
+    #
+    # Build lyx with given frontend
+    #
+    lyx = env.Program(
+        target = '$BUILDDIR/$frontend/lyx',
+        source = ['$BUILDDIR/common/main.C'],
+        LIBS = [
+            'lyxbase_pre',
+            'mathed',
+            'insets',
+            'frontends',
+            frontend,
+            'controllers',
+            'graphics',
+            'support',
+            'lyxbase_post',
+            ] +
+            boost_libraries +
+            frontend_libs +
+            intl_libs +
+            socket_libs +
+            system_libs
+    )
+    # [/path/to/lyx.ext] => lyx-qt3.ext
+    target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx-%s' % frontend)
+    Alias('lyx', env.Command(os.path.join('$BUILDDIR', target_name), lyx,
+        [Copy('$TARGET', '$SOURCE')]))
+    Alias('lyx', lyx)
 
 
 if build_msvs_projects:
-  def build_project(target, dir, full_target = None,
-    src_pattern = lyx_ext, include = [], resource = None, rebuildTargetOnly = True):
-    ''' build mavs project files
-      target:      alias (correspond to directory name)
-      dir:         source directory or directories (a list)
-      full_target: full path/filename of the target
-      src_pattern: glob pattern
-      include:     files to include into source
-      resource:    directory or directories with resource (.ui) files
-      rebuildTargetOnly:     whether or not only rebuild this target
-
-    For non-debug-able targets like static libraries, target (alias) is
-    enough to build the target. For executable targets, msvs need to know
-    the full path to start debug them.
-    '''
-    if resource is not None:
-      res = utils.globSource(dir = env.subst('$TOP_SRCDIR/'+resource), pattern = '*.ui',
-        build_dir = env.subst('$TOP_SRCDIR/'+resource))
-    else:
-      res = []
-    if rebuildTargetOnly:
-      cmds = 'faststart=yes rebuild='+target
-    else:
-      cmds = 'faststart=yes'
-    if type(dir) == type([]):
-      src = []
-      inc = []
-      for d in dir:
-        src.extend(utils.globSource(dir = env.subst('$TOP_SRCDIR/' + d),
-          pattern = src_pattern, include = include,
-          build_dir = env.subst('$TOP_SRCDIR/' + d) ))
-        inc.extend(utils.globSource(dir = env.subst('$TOP_SRCDIR/' + d),
-          pattern = '*.h',
-          build_dir = env.subst('$TOP_SRCDIR/' + d) ))
-    else:
-      src = utils.globSource(dir = env.subst('$TOP_SRCDIR/' + dir),
-        pattern = src_pattern, include = include,
-        build_dir = env.subst('$TOP_SRCDIR/' + dir) )
-      inc = utils.globSource(dir = env.subst('$TOP_SRCDIR/' + dir),
-        pattern = '*.h',
-        build_dir = env.subst('$TOP_SRCDIR/' + dir) )
-    if full_target is None:
-      build_target = target
+    def build_project(target, dir, full_target = None,
+        src_pattern = lyx_ext, include = [], resource = None, rebuildTargetOnly = True):
+        ''' build mavs project files
+            target:      alias (correspond to directory name)
+            dir:         source directory or directories (a list)
+            full_target: full path/filename of the target
+            src_pattern: glob pattern
+            include:     files to include into source
+            resource:    directory or directories with resource (.ui) files
+            rebuildTargetOnly:     whether or not only rebuild this target
+
+        For non-debug-able targets like static libraries, target (alias) is
+        enough to build the target. For executable targets, msvs need to know
+        the full path to start debug them.
+        '''
+        if resource is not None:
+            res = utils.globSource(dir = env.subst('$TOP_SRCDIR/'+resource), pattern = '*.ui',
+                build_dir = env.subst('$TOP_SRCDIR/'+resource))
+        else:
+            res = []
+        if rebuildTargetOnly:
+            cmds = 'faststart=yes rebuild='+target
+        else:
+            cmds = 'faststart=yes'
+        if type(dir) == type([]):
+            src = []
+            inc = []
+            for d in dir:
+                src.extend(utils.globSource(dir = env.subst('$TOP_SRCDIR/' + d),
+                    pattern = src_pattern, include = include,
+                    build_dir = env.subst('$TOP_SRCDIR/' + d) ))
+                inc.extend(utils.globSource(dir = env.subst('$TOP_SRCDIR/' + d),
+                    pattern = '*.h',
+                    build_dir = env.subst('$TOP_SRCDIR/' + d) ))
+        else:
+            src = utils.globSource(dir = env.subst('$TOP_SRCDIR/' + dir),
+                pattern = src_pattern, include = include,
+                build_dir = env.subst('$TOP_SRCDIR/' + dir) )
+            inc = utils.globSource(dir = env.subst('$TOP_SRCDIR/' + dir),
+                pattern = '*.h',
+                build_dir = env.subst('$TOP_SRCDIR/' + dir) )
+        if full_target is None:
+            build_target = target
+        else:
+            build_target = full_target
+        # project
+        proj = env.MSVSProject(
+            target = target + env['MSVSPROJECTSUFFIX'],
+            srcs = src,
+            incs = [env.subst('$TOP_SRCDIR/src/config.h')],
+            localincs = inc,
+            resources = res,
+            buildtarget = build_target,
+            cmdargs = cmds,
+            variant = 'Debug'
+        )
+        Alias('msvs_projects', proj)
+    #
+    build_project('boost', ['boost/libs/%s/src' % x for x in boost_libs],
+        src_pattern = '*.cpp')
+    #
+    build_project('intl', 'intl', src_pattern = '*.c')
+    #
+    build_project('support', 'src/support', include=['package.C.in'])
+    #
+    build_project('mathed', 'src/mathed')
+    #
+    build_project('insets', 'src/insets')
+    #
+    build_project('frontends', 'src/frontends')
+    #
+    build_project('graphics', 'src/graphics')
+    #
+    build_project('controllers', 'src/frontends/controllers')
+    #
+    build_project('qt3', 'src/frontends/qt3', resource = 'src/frontends/qt3/ui')
+    #
+    build_project('qt4', 'src/frontends/qt4', resource = 'src/frontends/qt4/ui')
+    #
+    build_project('client', 'src/client', rebuildTargetOnly = False,
+        full_target = File(env.subst('$BUILDDIR/common/client/lyxclient$PROGSUFFIX')).abspath)
+    #
+    build_project('tex2lyx', 'src/tex2lyx', rebuildTargetOnly = False,
+        full_target = File(env.subst('$BUILDDIR/common/tex2lyx/tex2lyx$PROGSUFFIX')).abspath)
+    #
+    build_project('lyxbase', 'src')
+    #
+    if frontend == 'qt3':
+        build_project('lyx', ['src', 'src/support', 'src/mathed', 'src/insets',
+            'src/frontends', 'src/graphics', 'src/frontends/controllers',
+            'src/frontends/qt3'], resource = 'src/frontends/qt3/ui',
+            rebuildTargetOnly = False,
+            full_target = File(env.subst('$BUILDDIR/$frontend/lyx$PROGSUFFIX')).abspath)
     else:
-      build_target = full_target
-    # project
-    proj = env.MSVSProject(
-      target = target + env['MSVSPROJECTSUFFIX'],
-      srcs = src,
-      incs = [env.subst('$TOP_SRCDIR/src/config.h')],
-      localincs = inc,
-      resources = res,
-      buildtarget = build_target,
-      cmdargs = cmds,
-      variant = 'Debug'
-    )
-    Alias('msvs_projects', proj)
-  #
-  build_project('boost', ['boost/libs/%s/src' % x for x in boost_libs],
-    src_pattern = '*.cpp')
-  #
-  build_project('intl', 'intl', src_pattern = '*.c')
-  #
-  build_project('support', 'src/support', include=['package.C.in'])
-  #
-  build_project('mathed', 'src/mathed')
-  #
-  build_project('insets', 'src/insets')
-  #
-  build_project('frontends', 'src/frontends')
-  #
-  build_project('graphics', 'src/graphics')
-  #
-  build_project('controllers', 'src/frontends/controllers')
-  #
-  build_project('qt3', 'src/frontends/qt3', resource = 'src/frontends/qt3/ui')
-  #
-  build_project('qt4', 'src/frontends/qt4', resource = 'src/frontends/qt4/ui')
-  #
-  build_project('client', 'src/client', rebuildTargetOnly = False,
-    full_target = File(env.subst('$BUILDDIR/common/client/lyxclient$PROGSUFFIX')).abspath)
-  #
-  build_project('tex2lyx', 'src/tex2lyx', rebuildTargetOnly = False,
-    full_target = File(env.subst('$BUILDDIR/common/tex2lyx/tex2lyx$PROGSUFFIX')).abspath)
-  #
-  build_project('lyxbase', 'src')
-  #
-  if frontend == 'qt3':
-    build_project('lyx', ['src', 'src/support', 'src/mathed', 'src/insets',
-      'src/frontends', 'src/graphics', 'src/frontends/controllers',
-      'src/frontends/qt3'], resource = 'src/frontends/qt3/ui',
-      rebuildTargetOnly = False,
-      full_target = File(env.subst('$BUILDDIR/$frontend/lyx$PROGSUFFIX')).abspath)
-  else:
-    build_project('lyx', ['src', 'src/support', 'src/mathed', 'src/insets',
-      'src/frontends', 'src/graphics', 'src/frontends/controllers',
-      'src/frontends/qt4'], resource = 'src/frontends/qt4/ui',
-      rebuildTargetOnly = False,
-      full_target = File(env.subst('$BUILDDIR/$frontend/lyx$PROGSUFFIX')).abspath)
+        build_project('lyx', ['src', 'src/support', 'src/mathed', 'src/insets',
+            'src/frontends', 'src/graphics', 'src/frontends/controllers',
+            'src/frontends/qt4'], resource = 'src/frontends/qt4/ui',
+            rebuildTargetOnly = False,
+            full_target = File(env.subst('$BUILDDIR/$frontend/lyx$PROGSUFFIX')).abspath)
 
 
 if build_po:
-  #
-  # po/
-  #
-  print 'Processing files in po...'
-
-  import glob
-  # handle po files
-  #
-  # files to translate
-  transfiles = glob.glob(os.path.join(env.subst('$TOP_SRCDIR'), 'po', '*.po'))
-  # possibly *only* handle these languages
-  languages = None
-  if env.has_key('languages'):
-    languages = env.make_list(env['lanauges'])
-  # use defulat msgfmt
-  if not env['MSGFMT']:
-    print 'msgfmt does not exist. Can not process po files'
-  else:
-    # create a builder
-    env['BUILDERS']['Transfiles'] = Builder(action='$MSGFMT $SOURCE -o $TARGET',suffix='.gmo',src_suffix='.po')
-    #
-    gmo_files = []
-    for f in transfiles:
-      # get filename
-      fname = os.path.split(f)[1]
-      # country code
-      country = fname.split('.')[0]
-      #
-      if not languages or country in languages:
-        gmo_files.extend(env.Transfiles(f))
+    #
+    # po/
+    #
+    print 'Processing files in po...'
+
+    import glob
+    # handle po files
+    #
+    # files to translate
+    transfiles = glob.glob(os.path.join(env.subst('$TOP_SRCDIR'), 'po', '*.po'))
+    # possibly *only* handle these languages
+    languages = None
+    if env.has_key('languages'):
+        languages = env.make_list(env['lanauges'])
+    # use defulat msgfmt
+    if not env['MSGFMT']:
+        print 'msgfmt does not exist. Can not process po files'
+    else:
+        # create a builder
+        env['BUILDERS']['Transfiles'] = Builder(action='$MSGFMT $SOURCE -o $TARGET',suffix='.gmo',src_suffix='.po')
+        #
+        gmo_files = []
+        for f in transfiles:
+            # get filename
+            fname = os.path.split(f)[1]
+            # country code
+            country = fname.split('.')[0]
+            #
+            if not languages or country in languages:
+                gmo_files.extend(env.Transfiles(f))
 
 
 if 'install' in targets:
-  #
-  # install to DESTDIR or prefix
-  dest_dir = env.Dir(env.get('DESTDIR', prefix)).abspath
-  # if dest_dir is different from prefix.
-  if env.has_key('exec_prefix'):
-    bin_dest_dir = Dir(env['exec_prefix']).abspath
-  else:
-    bin_dest_dir = os.path.join(dest_dir, 'bin')
-  if add_suffix:
-    share_dest_dir = os.path.join(dest_dir, share_dir + program_suffix)
-  else:
-    share_dest_dir = os.path.join(dest_dir, share_dir)
-  man_dest_dir = os.path.join(dest_dir, man_dir)
-  locale_dest_dir = os.path.join(dest_dir, locale_dir)
-  # create the directory if needed
-  if not os.path.isdir(dest_dir):
-    try:
-      os.makedirs(dest_dir)
-    except:
-      pass
+    #
+    # install to DESTDIR or prefix
+    dest_dir = env.Dir(env.get('DESTDIR', prefix)).abspath
+    # if dest_dir is different from prefix.
+    if env.has_key('exec_prefix'):
+        bin_dest_dir = Dir(env['exec_prefix']).abspath
+    else:
+        bin_dest_dir = os.path.join(dest_dir, 'bin')
+    if add_suffix:
+        share_dest_dir = os.path.join(dest_dir, share_dir + program_suffix)
+    else:
+        share_dest_dir = os.path.join(dest_dir, share_dir)
+    man_dest_dir = os.path.join(dest_dir, man_dir)
+    locale_dest_dir = os.path.join(dest_dir, locale_dir)
+    # create the directory if needed
     if not os.path.isdir(dest_dir):
-      print 'Can not create directory', dest_dir
-      Exit(3)
-  #
-  import glob
-  #
-  # do not install these files
-  exclude_list = ['Makefile.am', 'Makefile.in', 'Makefile',
-    'lyx2lyx_version.py', 'lyx2lyx_version.py.in']
-
-  def install(dest, src):
-    ''' recusive installation of src to dest '''
-    # separate file and directory
-    files = filter(lambda x: os.path.isfile(x) and not os.path.split(x)[1] in exclude_list, src)
-    dirs = filter(os.path.isdir, src)
-    # install file
-    env.Install(dest, files)
-    # install directory
-    ins_dir = [dest]
-    for dir in dirs:
-      ins_dir.extend(install(os.path.join(dest, os.path.basename(dir)),
-        glob.glob(os.path.join(dir, '*'))) )
-    return ins_dir
-  #
-  # executables (some of them may be none)
-  #
-  if add_suffix:
-    version_suffix = program_suffix
-  else:
-    version_suffix = ''
-  #
-  # install lyx
-  target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx%s' % version_suffix)
-  target = os.path.join(bin_dest_dir, target_name)
-  env.InstallAs(target, lyx)
-  Alias('install', target)
-  # install lyx as lyx-qt3
-  target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx-%s%s' % (frontend, version_suffix))
-  target = os.path.join(bin_dest_dir, target_name)
-  env.InstallAs(target, lyx)
-  Alias('install', target)
-  #
-  # install tex2lyx
-  target_name = os.path.split(str(tex2lyx[0]))[1].replace('tex2lyx', 'tex2lyx%s' % version_suffix)
-  target = os.path.join(bin_dest_dir, target_name)
-  env.InstallAs(target, tex2lyx)
-  Alias('install', target)
-  #
-  # install lyxclient, may not exist
-  if client != None:
-    target_name = os.path.split(str(client[0]))[1].replace('client', 'client%s' % version_suffix)
+        try:
+            os.makedirs(dest_dir)
+        except:
+            pass
+        if not os.path.isdir(dest_dir):
+            print 'Can not create directory', dest_dir
+            Exit(3)
+    #
+    import glob
+    #
+    # do not install these files
+    exclude_list = ['Makefile.am', 'Makefile.in', 'Makefile',
+        'lyx2lyx_version.py', 'lyx2lyx_version.py.in']
+
+    def install(dest, src):
+        ''' recusive installation of src to dest '''
+        # separate file and directory
+        files = filter(lambda x: os.path.isfile(x) and not os.path.split(x)[1] in exclude_list, src)
+        dirs = filter(os.path.isdir, src)
+        # install file
+        env.Install(dest, files)
+        # install directory
+        ins_dir = [dest]
+        for dir in dirs:
+            ins_dir.extend(install(os.path.join(dest, os.path.basename(dir)),
+                glob.glob(os.path.join(dir, '*'))) )
+        return ins_dir
+    #
+    # executables (some of them may be none)
+    #
+    if add_suffix:
+        version_suffix = program_suffix
+    else:
+        version_suffix = ''
+    #
+    # install lyx
+    target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx%s' % version_suffix)
+    target = os.path.join(bin_dest_dir, target_name)
+    env.InstallAs(target, lyx)
+    Alias('install', target)
+    # install lyx as lyx-qt3
+    target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx-%s%s' % (frontend, version_suffix))
+    target = os.path.join(bin_dest_dir, target_name)
+    env.InstallAs(target, lyx)
+    Alias('install', target)
+    #
+    # install tex2lyx
+    target_name = os.path.split(str(tex2lyx[0]))[1].replace('tex2lyx', 'tex2lyx%s' % version_suffix)
     target = os.path.join(bin_dest_dir, target_name)
-    env.InstallAs(target, client)
+    env.InstallAs(target, tex2lyx)
     Alias('install', target)
-  #
-  # share/lyx
-  dirs = install(share_dest_dir,
-    [env.subst('$TOP_SRCDIR/lib/') + file for file in ['configure.py', 'encodings',
-     'chkconfig.ltx', 'CREDITS', 'external_templates', 'symbols', 'languages',
-     'lyxrc.example', 'syntax.default', 'bind', 'images', 'layouts', 'scripts',
-     'templates', 'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc',  'ui']]
-  )
-  env.substFile(share_dest_dir + '/lyx2lyx/lyx2lyx_version.py',
-    '$TOP_SRCDIR/lib/lyx2lyx/lyx2lyx_version.py.in')
-  Alias('install', dirs)
-  # man
-  env.InstallAs(os.path.join(man_dest_dir, 'lyx' + version_suffix + '.1'),
-    env.subst('$TOP_SRCDIR/lyx.man'))
-  env.InstallAs(os.path.join(man_dest_dir, 'tex2lyx' + version_suffix + '.1'),
-    env.subst('$TOP_SRCDIR/src/tex2lyx/tex2lyx.man'))
-  env.InstallAs(os.path.join(man_dest_dir, 'lyxclient' + version_suffix + '.1'),
-    env.subst('$TOP_SRCDIR/src/client/lyxclient.man'))
-  Alias('install', [os.path.join(man_dest_dir, x + version_suffix + '.1') for
-    x in ['lyx', 'tex2lyx', 'lyxclient']])
-  # locale files?
-  # ru.gmo ==> ru/LC_MESSAGES/lyxSUFFIX.mo
-  for gmo in gmo_files:
-    lan = os.path.split(str(gmo))[1].split('.')[0]
-    dest_file = os.path.join(locale_dest_dir, lan, 'LC_MESSAGES', 'lyx' + version_suffix + '.mo')
-    env.InstallAs(dest_file, gmo)
-    Alias('install', dest_file)
+    #
+    # install lyxclient, may not exist
+    if client != None:
+        target_name = os.path.split(str(client[0]))[1].replace('client', 'client%s' % version_suffix)
+        target = os.path.join(bin_dest_dir, target_name)
+        env.InstallAs(target, client)
+        Alias('install', target)
+    #
+    # share/lyx
+    dirs = install(share_dest_dir,
+        [env.subst('$TOP_SRCDIR/lib/') + file for file in ['configure.py', 'encodings',
+        'chkconfig.ltx', 'CREDITS', 'external_templates', 'symbols', 'languages',
+        'lyxrc.example', 'syntax.default', 'bind', 'images', 'layouts', 'scripts',
+        'templates', 'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc',  'ui']]
+    )
+    env.substFile(share_dest_dir + '/lyx2lyx/lyx2lyx_version.py',
+        '$TOP_SRCDIR/lib/lyx2lyx/lyx2lyx_version.py.in')
+    Alias('install', dirs)
+    # man
+    env.InstallAs(os.path.join(man_dest_dir, 'lyx' + version_suffix + '.1'),
+        env.subst('$TOP_SRCDIR/lyx.man'))
+    env.InstallAs(os.path.join(man_dest_dir, 'tex2lyx' + version_suffix + '.1'),
+        env.subst('$TOP_SRCDIR/src/tex2lyx/tex2lyx.man'))
+    env.InstallAs(os.path.join(man_dest_dir, 'lyxclient' + version_suffix + '.1'),
+        env.subst('$TOP_SRCDIR/src/client/lyxclient.man'))
+    Alias('install', [os.path.join(man_dest_dir, x + version_suffix + '.1') for
+        x in ['lyx', 'tex2lyx', 'lyxclient']])
+    # locale files?
+    # ru.gmo ==> ru/LC_MESSAGES/lyxSUFFIX.mo
+    for gmo in gmo_files:
+        lan = os.path.split(str(gmo))[1].split('.')[0]
+        dest_file = os.path.join(locale_dest_dir, lan, 'LC_MESSAGES', 'lyx' + version_suffix + '.mo')
+        env.InstallAs(dest_file, gmo)
+        Alias('install', dest_file)
 
 
 Default('lyx')
index ca16f0ad2e120a0ad97a16834dcf319abfe35e55..136ac7a2005c58515c817ff6fd5b482ef0492fb2 100644 (file)
@@ -1,4 +1,4 @@
-# vi:filetype=python:expandtab:tabstop=2:shiftwidth=2
+# vi:filetype=python:expandtab:tabstop=4:shiftwidth=4
 #
 # file scons_utils.py
 #
@@ -17,122 +17,122 @@ from SCons.Util import WhereIs
 
 
 def writeToFile(filename, lines, append = False):
-  " utility function: write or append lines to filename "
-  # create directory if needed
-  dir = os.path.split(filename)[0]
-  if dir != '' and not os.path.isdir(dir):
-    os.makedirs(dir)
-  if append:
-    file = open(filename, 'a')
-  else:
-    file = open(filename, 'w')
-  file.write(lines)
-  file.close()
+    " utility function: write or append lines to filename "
+    # create directory if needed
+    dir = os.path.split(filename)[0]
+    if dir != '' and not os.path.isdir(dir):
+        os.makedirs(dir)
+    if append:
+        file = open(filename, 'a')
+    else:
+        file = open(filename, 'w')
+    file.write(lines)
+    file.close()
 
 
 def env_subst(target, source, env):
-  ''' subst variables in source by those in env, and output to target
-    source and target are scons File() objects
-
-    %key% (not key itself) is an indication of substitution
-  '''
-  assert len(target) == 1
-  assert len(source) == 1
-  target_file = file(str(target[0]), "w")
-  source_file = file(str(source[0]), "r")
-
-  contents = source_file.read()
-  for k, v in env.items():
-    try:
-      val = env.subst('$'+k)
-      # temporary fix for the \Resource backslash problem
-      val = val.replace('\\', '/')
-      # multi-line replacement
-      val = val.replace('\n',r'\\n\\\n')
-      contents = re.sub('@'+k+'@', val, contents)
-      contents = re.sub('%'+k+'%', val, contents)
-    except:
-      pass
-  target_file.write(contents + "\n")
-  target_file.close()
-  #st = os.stat(str(source[0]))
-  #os.chmod(str(target[0]), stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE)
+    ''' subst variables in source by those in env, and output to target
+        source and target are scons File() objects
+
+        %key% (not key itself) is an indication of substitution
+    '''
+    assert len(target) == 1
+    assert len(source) == 1
+    target_file = file(str(target[0]), "w")
+    source_file = file(str(source[0]), "r")
+
+    contents = source_file.read()
+    for k, v in env.items():
+        try:
+            val = env.subst('$'+k)
+            # temporary fix for the \Resource backslash problem
+            val = val.replace('\\', '/')
+            # multi-line replacement
+            val = val.replace('\n',r'\\n\\\n')
+            contents = re.sub('@'+k+'@', val, contents)
+            contents = re.sub('%'+k+'%', val, contents)
+        except:
+            pass
+    target_file.write(contents + "\n")
+    target_file.close()
+    #st = os.stat(str(source[0]))
+    #os.chmod(str(target[0]), stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE)
 
 
 #
 # glob filenames
 #
 def globSource(dir, pattern, build_dir = None, exclude = [], include = []):
-  ''' glob files, in dir and use build_dir as returned path name '''
-  # exclude 'exclude+include' to avoid duplicate items in files
-  files = include + filter(lambda x: x not in exclude + include, glob.glob1(dir, pattern))
-  if build_dir is None:
-    return files
-  else:
-    return ['%s/%s' % (build_dir, x) for x in files]
+    ''' glob files, in dir and use build_dir as returned path name '''
+    # exclude 'exclude+include' to avoid duplicate items in files
+    files = include + filter(lambda x: x not in exclude + include, glob.glob1(dir, pattern))
+    if build_dir is None:
+        return files
+    else:
+        return ['%s/%s' % (build_dir, x) for x in files]
 
 #
 # autoconf tests
 #
 
 def checkPkgConfig(conf, version):
-  ''' Return false if pkg_config does not exist, or is too old '''
-  conf.Message('Checking for pkg-config...')
-  ret = conf.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0]
-  conf.Result(ret)
-  return ret
+    ''' Return false if pkg_config does not exist, or is too old '''
+    conf.Message('Checking for pkg-config...')
+    ret = conf.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0]
+    conf.Result(ret)
+    return ret
 
 
 def checkPackage(conf, pkg):
-  ''' check if pkg is under the control of conf '''
-  conf.Message('Checking for package %s...' % pkg)
-  ret = conf.TryAction("pkg-config --print-errors --exists %s" % pkg)[0]
-  conf.Result(ret)
-  return ret
+    ''' check if pkg is under the control of conf '''
+    conf.Message('Checking for package %s...' % pkg)
+    ret = conf.TryAction("pkg-config --print-errors --exists %s" % pkg)[0]
+    conf.Result(ret)
+    return ret
 
 
 def checkMkdirOneArg(conf):
-  check_mkdir_one_arg_source = """
+    check_mkdir_one_arg_source = """
 #include <sys/stat.h>
 int main()
 {
-  mkdir("somedir");
+    mkdir("somedir");
 }
 """
-  conf.Message('Checking for the number of args for mkdir... ')
-  ret = conf.TryLink(check_mkdir_one_arg_source, '.c') or \
-    conf.TryLink('#include <unistd.h>' + check_mkdir_one_arg_source, '.c') or \
-    conf.TryLink('#include <direct.h>' + check_mkdir_one_arg_source, '.c')
-  if ret:
-    conf.Result('one')
-  else:
-    conf.Result('two')
-  return ret
+    conf.Message('Checking for the number of args for mkdir... ')
+    ret = conf.TryLink(check_mkdir_one_arg_source, '.c') or \
+        conf.TryLink('#include <unistd.h>' + check_mkdir_one_arg_source, '.c') or \
+        conf.TryLink('#include <direct.h>' + check_mkdir_one_arg_source, '.c')
+    if ret:
+        conf.Result('one')
+    else:
+        conf.Result('two')
+    return ret
 
 
 def checkCXXGlobalCstd(conf):
-  ''' Check the use of std::tolower or tolower '''
-  check_global_cstd_source = '''
+    ''' Check the use of std::tolower or tolower '''
+    check_global_cstd_source = '''
 #include <cctype>
 using std::tolower;
 int main()
 {
-  return 0;
+    return 0;
 }
 '''
-  conf.Message('Check for the use of global cstd... ')
-  ret = conf.TryLink(check_global_cstd_source, '.c')
-  conf.Result(ret)
-  return ret
+    conf.Message('Check for the use of global cstd... ')
+    ret = conf.TryLink(check_global_cstd_source, '.c')
+    conf.Result(ret)
+    return ret
 
 
 def checkSelectArgType(conf):
-  ''' Adapted from autoconf '''
-  conf.Message('Checking for arg types for select... ')
-  for arg234 in ['fd_set *', 'int *', 'void *']:
-    for arg1 in ['int', 'size_t', 'unsigned long', 'unsigned']:
-      for arg5 in ['struct timeval *', 'const struct timeval *']:
-        check_select_source = '''
+    ''' Adapted from autoconf '''
+    conf.Message('Checking for arg types for select... ')
+    for arg234 in ['fd_set *', 'int *', 'void *']:
+        for arg1 in ['int', 'size_t', 'unsigned long', 'unsigned']:
+            for arg5 in ['struct timeval *', 'const struct timeval *']:
+                check_select_source = '''
 #if HAVE_SYS_SELECT_H
 # include <sys/select.h>
 #endif
@@ -142,65 +142,65 @@ def checkSelectArgType(conf):
 extern int select (%s, %s, %s, %s, %s);
 int main()
 {
-  return(0);
+    return(0);
 }
 ''' % (arg1, arg234, arg234, arg234, arg5)
-        ret = conf.TryLink(check_select_source, '.c')
-        if ret:
-          conf.Result(ret)
-          return (arg1, arg234, arg5)
-  conf.Result('no (use default)')
-  return ('int', 'int *', 'struct timeval *')
+                ret = conf.TryLink(check_select_source, '.c')
+                if ret:
+                    conf.Result(ret)
+                    return (arg1, arg234, arg5)
+    conf.Result('no (use default)')
+    return ('int', 'int *', 'struct timeval *')
 
 
 def checkBoostLibraries(conf, lib, pathes):
-  ''' look for boost libraries '''
-  conf.Message('Checking for boost library %s... ' % lib)
-  for path in pathes:
-    # direct form: e.g. libboost_iostreams.a
-    if os.path.isfile(os.path.join(path, 'lib%s.a' % lib)):
-      conf.Result('yes')
-      return (path, lib)
-    # check things like libboost_iostreams-gcc.a
-    files = glob.glob(os.path.join(path, 'lib%s-*.a' % lib))
-    # if there are more than one, choose the first one
-    # FIXME: choose the best one.
-    if len(files) >= 1:
-      # get xxx-gcc from /usr/local/lib/libboost_xxx-gcc.a
-      conf.Result('yes')
-      return (path, files[0].split(os.sep)[-1][3:-2])
-  conf.Result('n')
-  return ('','')
+    ''' look for boost libraries '''
+    conf.Message('Checking for boost library %s... ' % lib)
+    for path in pathes:
+        # direct form: e.g. libboost_iostreams.a
+        if os.path.isfile(os.path.join(path, 'lib%s.a' % lib)):
+            conf.Result('yes')
+            return (path, lib)
+        # check things like libboost_iostreams-gcc.a
+        files = glob.glob(os.path.join(path, 'lib%s-*.a' % lib))
+        # if there are more than one, choose the first one
+        # FIXME: choose the best one.
+        if len(files) >= 1:
+            # get xxx-gcc from /usr/local/lib/libboost_xxx-gcc.a
+            conf.Result('yes')
+            return (path, files[0].split(os.sep)[-1][3:-2])
+    conf.Result('n')
+    return ('','')
 
 
 def checkCommand(conf, cmd):
-  ''' check the existence of a command
-    return full path to the command, or none
-  '''
-  conf.Message('Checking for command %s...' % cmd)
-  res = WhereIs(cmd)
-  conf.Result(res is not None)
-  return res
+    ''' check the existence of a command
+        return full path to the command, or none
+    '''
+    conf.Message('Checking for command %s...' % cmd)
+    res = WhereIs(cmd)
+    conf.Result(res is not None)
+    return res
 
 
 def checkLC_MESSAGES(conf):
-  ''' check the definition of LC_MESSAGES '''
-  check_LC_MESSAGES = '''
+    ''' check the definition of LC_MESSAGES '''
+    check_LC_MESSAGES = '''
 #include <locale.h>
 int main()
 {
-  return LC_MESSAGES;
+    return LC_MESSAGES;
 }
 '''
-  conf.Message('Check for LC_MESSAGES in locale.h... ')
-  ret = conf.TryLink(check_LC_MESSAGES, '.c')
-  conf.Result(ret)
-  return ret
+    conf.Message('Check for LC_MESSAGES in locale.h... ')
+    ret = conf.TryLink(check_LC_MESSAGES, '.c')
+    conf.Result(ret)
+    return ret
 
 
 def checkIconvConst(conf):
-  ''' check the declaration of iconv '''
-  check_iconv_const = '''
+    ''' check the declaration of iconv '''
+    check_iconv_const = '''
 #include <stdlib.h>
 #include <iconv.h>
 extern
@@ -208,144 +208,144 @@ extern
 "C"
 #endif
 #if defined(__STDC__) || defined(__cplusplus)
- #ifndef LIBICONV_DLL_EXPORTED
- size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
- #endif
+#ifndef LIBICONV_DLL_EXPORTED
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#endif
 #else
 size_t iconv();
 #endif
 
 int main()
 {
-  return 1;
+    return 1;
 }
 '''
-  conf.Message('Check if the declaration of iconv needs const... ')
-  ret = conf.TryLink(check_iconv_const, '.c')
-  conf.Result(ret)
-  return ret
+    conf.Message('Check if the declaration of iconv needs const... ')
+    ret = conf.TryLink(check_iconv_const, '.c')
+    conf.Result(ret)
+    return ret
 
 
 def createConfigFile(conf, config_file,
-  config_pre = '', config_post = '',
-  headers = [], functions = [], types = [], libs = [],
-  custom_tests = [], extra_items = []):
-  ''' create a configuration file, with options
-    config_file: which file to create
-    config_pre: first part of the config file
-    config_post: last part of the config file
-    headers: header files to check, in the form of a list of
-      ('file', 'HAVE_FILE', 'c'/'c++')
-    functions: functions to check, in the form of a list of
-      ('func', 'HAVE_func', 'include lines'/None)
-    types: types to check, in the form of a list of
-      ('type', 'HAVE_TYPE', 'includelines'/None)
-    libs: libraries to check, in the form of a list of
-      ('lib', 'HAVE_LIB', 'LIB_NAME'). HAVE_LIB will be set if 'lib' exists,
-      or any of the libs exists if 'lib' is a list of libs.
-      Optionally, user can provide another key LIB_NAME, that will
-      be set to the detected lib (or None otherwise).
-    custom_tests: extra tests to perform, in the form of a list of
-      (test (True/False), 'key', 'desc', 'true config line', 'false config line')
-      If the last two are ignored, '#define key 1' '/*#undef key */'
-      will be used.
-    extra_items: extra configuration lines, in the form of a list of
-      ('config', 'description')
-  Return:
-    The result of each test, as a dictioanry of
-      res['XXX'] = True/False
-    XXX are keys defined in each argument.
-  '''
-  cont = config_pre + '\n'
-  result = {}
-  # add to this string, in appropriate format
-  def configString(lines, desc=''):
-    text = ''
-    if lines.strip() != '':
-      if desc != '':
-        text += '/* ' + desc + ' */\n'
-      text += lines + '\n\n'
-    return text
-  #
-  # headers
-  for header in headers:
-    description = "Define to 1 if you have the <%s> header file." % header[0]
-    if (header[2] == 'c' and conf.CheckCHeader(header[0])) or \
-      (header[2] == 'cxx' and conf.CheckCXXHeader(header[0])):
-      result[header[1]] = True
-      cont += configString('#define %s 1' % header[1], desc = description)
-    else:
-      result[header[1]] = False
-      cont += configString('/* #undef %s */' % header[1], desc = description)
-  # functions
-  for func in functions:
-    description = "Define to 1 if you have the `%s' function." % func[0]
-    if conf.CheckFunc(func[0], header=func[2]):
-      result[func[1]] = True
-      cont += configString('#define %s 1' % func[1], desc = description)
-    else:
-      result[func[1]] = False
-      cont += configString('/* #undef %s */' % func[1], desc = description)
-  # types
-  for t in types:
-    description = "Define to 1 if you have the `%s' type." % t[0]
-    if conf.CheckType(t[0], includes=t[2]):
-      result[t[1]] = True
-      cont += configString('#define %s 1' % t[1], desc = description)
-    else:
-      result[t[1]] = False
-      cont += configString('/* #undef %s */' % t[1],  desc = description)
-  # libraries
-  for lib in libs:
-    description = "Define to 1 if you have the `%s' library (-l%s)." % (lib[0], lib[0])
-    if type(lib[0]) is type(''):
-      lib_list = [lib[0]]
-    else:
-      lib_list = lib[0]
-    # check if any of the lib exists
-    result[lib[1]] = False
-    # if user want the name of the lib detected
-    if len(lib) == 3:
-      result[lib[2]] = None
-    for ll in lib_list:
-      if conf.CheckLib(ll):
-        result[lib[1]] = True
+    config_pre = '', config_post = '',
+    headers = [], functions = [], types = [], libs = [],
+    custom_tests = [], extra_items = []):
+    ''' create a configuration file, with options
+        config_file: which file to create
+        config_pre: first part of the config file
+        config_post: last part of the config file
+        headers: header files to check, in the form of a list of
+            ('file', 'HAVE_FILE', 'c'/'c++')
+        functions: functions to check, in the form of a list of
+            ('func', 'HAVE_func', 'include lines'/None)
+        types: types to check, in the form of a list of
+            ('type', 'HAVE_TYPE', 'includelines'/None)
+        libs: libraries to check, in the form of a list of
+            ('lib', 'HAVE_LIB', 'LIB_NAME'). HAVE_LIB will be set if 'lib' exists,
+            or any of the libs exists if 'lib' is a list of libs.
+            Optionally, user can provide another key LIB_NAME, that will
+            be set to the detected lib (or None otherwise).
+        custom_tests: extra tests to perform, in the form of a list of
+            (test (True/False), 'key', 'desc', 'true config line', 'false config line')
+            If the last two are ignored, '#define key 1' '/*#undef key */'
+            will be used.
+        extra_items: extra configuration lines, in the form of a list of
+            ('config', 'description')
+    Return:
+        The result of each test, as a dictioanry of
+            res['XXX'] = True/False
+        XXX are keys defined in each argument.
+    '''
+    cont = config_pre + '\n'
+    result = {}
+    # add to this string, in appropriate format
+    def configString(lines, desc=''):
+        text = ''
+        if lines.strip() != '':
+            if desc != '':
+                text += '/* ' + desc + ' */\n'
+            text += lines + '\n\n'
+        return text
+    #
+    # headers
+    for header in headers:
+        description = "Define to 1 if you have the <%s> header file." % header[0]
+        if (header[2] == 'c' and conf.CheckCHeader(header[0])) or \
+            (header[2] == 'cxx' and conf.CheckCXXHeader(header[0])):
+            result[header[1]] = True
+            cont += configString('#define %s 1' % header[1], desc = description)
+        else:
+            result[header[1]] = False
+            cont += configString('/* #undef %s */' % header[1], desc = description)
+    # functions
+    for func in functions:
+        description = "Define to 1 if you have the `%s' function." % func[0]
+        if conf.CheckFunc(func[0], header=func[2]):
+            result[func[1]] = True
+            cont += configString('#define %s 1' % func[1], desc = description)
+        else:
+            result[func[1]] = False
+            cont += configString('/* #undef %s */' % func[1], desc = description)
+    # types
+    for t in types:
+        description = "Define to 1 if you have the `%s' type." % t[0]
+        if conf.CheckType(t[0], includes=t[2]):
+            result[t[1]] = True
+            cont += configString('#define %s 1' % t[1], desc = description)
+        else:
+            result[t[1]] = False
+            cont += configString('/* #undef %s */' % t[1],  desc = description)
+    # libraries
+    for lib in libs:
+        description = "Define to 1 if you have the `%s' library (-l%s)." % (lib[0], lib[0])
+        if type(lib[0]) is type(''):
+            lib_list = [lib[0]]
+        else:
+            lib_list = lib[0]
+        # check if any of the lib exists
+        result[lib[1]] = False
+        # if user want the name of the lib detected
         if len(lib) == 3:
-          result[lib[2]] = ll
-        cont += configString('#define %s 1' % lib[1], desc = description)
-        break
-    # if not found        
-    if not result[lib[1]]:
-      cont += configString('/* #undef %s */' % lib[1], desc = description)
-  # custom tests
-  for test in custom_tests:
-    if test[0]:
-      result[test[1]] = True
-      if len(test) == 3:
-        cont += configString('#define %s 1' % test[1], desc = test[2])
-      else:
-        cont += configString(test[3], desc = test[2])
-    else:
-      result[test[1]] = False
-      if len(test) == 3:
-        cont += configString('/* #undef %s */' % test[1], desc = test[2])
-      else:
-        cont += configString(test[4], desc = test[2])
-  # extra items (no key is returned)
-  for item in extra_items:
-    cont += configString(item[0], desc = item[1])
-  # add the last part
-  cont += '\n' + config_post + '\n'
-  # write to file
-  writeToFile(config_file, cont)
-  return result
+            result[lib[2]] = None
+        for ll in lib_list:
+            if conf.CheckLib(ll):
+                result[lib[1]] = True
+                if len(lib) == 3:
+                    result[lib[2]] = ll
+                cont += configString('#define %s 1' % lib[1], desc = description)
+                break
+        # if not found        
+        if not result[lib[1]]:
+            cont += configString('/* #undef %s */' % lib[1], desc = description)
+    # custom tests
+    for test in custom_tests:
+        if test[0]:
+            result[test[1]] = True
+            if len(test) == 3:
+                cont += configString('#define %s 1' % test[1], desc = test[2])
+            else:
+                cont += configString(test[3], desc = test[2])
+        else:
+            result[test[1]] = False
+            if len(test) == 3:
+                cont += configString('/* #undef %s */' % test[1], desc = test[2])
+            else:
+                cont += configString(test[4], desc = test[2])
+    # extra items (no key is returned)
+    for item in extra_items:
+        cont += configString(item[0], desc = item[1])
+    # add the last part
+    cont += '\n' + config_post + '\n'
+    # write to file
+    writeToFile(config_file, cont)
+    return result
 
 
 def installCygwinLDScript(path):
-  ''' Install i386pe.x-no-rdata '''
-  ld_script = os.path.join(path, 'i386pe.x-no-rdata')
-  script = open(ld_script, 'w')
-  script.write('''/* specific linker script avoiding .rdata sections, for normal executables
+    ''' Install i386pe.x-no-rdata '''
+    ld_script = os.path.join(path, 'i386pe.x-no-rdata')
+    script = open(ld_script, 'w')
+    script.write('''/* specific linker script avoiding .rdata sections, for normal executables
 for a reference see
 http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html
 http://www.cygwin.com/ml/cygwin-apps/2004-09/msg00309.html
@@ -357,26 +357,26 @@ SECTIONS
 {
   .text  __image_base__ + __section_alignment__  :
   {
-     *(.init)
+    *(.init)
     *(.text)
     *(SORT(.text$*))
     *(.glue_7t)
     *(.glue_7)
-     ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
+    ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
                        LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*));  LONG (0);
-     ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
+    ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
                        LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*));  LONG (0);
-     *(.fini)
+    *(.fini)
     /* ??? Why is .gcc_exc here?  */
-     *(.gcc_exc)
+    *(.gcc_exc)
     PROVIDE (etext = .);
     *(.gcc_except_table)
   }
   /* The Cygwin32 library uses a section to avoid copying certain data
-     on fork.  This used to be named ".data".  The linker used
-     to include this between __data_start__ and __data_end__, but that
-     breaks building the cygwin32 dll.  Instead, we name the section
-     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
+    on fork.  This used to be named ".data".  The linker used
+    to include this between __data_start__ and __data_end__, but that
+    breaks building the cygwin32 dll.  Instead, we name the section
+    ".data_cygwin_nocopy" and explictly include it after __data_end__. */
   .data BLOCK(__section_alignment__) :
   {
     __data_start__ = . ;
@@ -463,7 +463,7 @@ SECTIONS
     /* end is deprecated, don't use it */
     PROVIDE (end = .);
     PROVIDE ( _end = .);
-     __end__ = .;
+    __end__ = .;
   }
   .rsrc BLOCK(__section_alignment__) :
   {
@@ -483,9 +483,9 @@ SECTIONS
     *(.stabstr)
   }
   /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section.  Unlike other targets that fake this by putting the
-     section VMA at 0, the PE format will not allow it.  */
+    Symbols in the DWARF debugging sections are relative to the beginning
+    of the section.  Unlike other targets that fake this by putting the
+    section VMA at 0, the PE format will not allow it.  */
   /* DWARF 1.1 and DWARF 2.  */
   .debug_aranges BLOCK(__section_alignment__) (NOLOAD) :
   {
@@ -548,82 +548,82 @@ SECTIONS
   }
 }
 ''')
-  script.close()
-  return(ld_script)
+    script.close()
+    return(ld_script)
 
 
 try:
-  # these will be used under win32
-  import win32file
-  import win32event
-  import win32process
-  import win32security
+    # these will be used under win32
+    import win32file
+    import win32event
+    import win32process
+    import win32security
 except:
-  # does not matter if it fails on other systems
-  pass
+    # does not matter if it fails on other systems
+    pass
 
 
 class loggedSpawn:
-  def __init__(self, env, logfile, longarg, info):
-    # save the spawn system
-    self.env = env
-    self.logfile = logfile
-    # clear the logfile (it may not exist)
-    if logfile != '':
-      # this will overwrite existing content.
-      writeToFile(logfile, info, append=False)
-    #
-    self.longarg = longarg
-    # get hold of the old spawn? (necessary?)
-    self._spawn = env['SPAWN']
-
-  # define new SPAWN
-  def spawn(self, sh, escape, cmd, args, spawnenv):
-    # get command line
-    newargs = ' '.join(map(escape, args[1:]))
-    cmdline = cmd + " " + newargs
-    #
-    # if log is not empty, write to it
-    if self.logfile != '':
-      # this tend to be slow (?) but ensure correct output
-      # Note that cmdline may be long so I do not escape it
-      try:
-        # since this is not an essential operation, proceed if things go wrong here.
-        writeToFile(self.logfile, cmd + " " + ' '.join(args[1:]) + '\n', append=True)
-      except:
-        print "Warning: can not write to log file ", self.logfile
-    #
-    # if the command is not too long, use the old
-    if not self.longarg or len(cmdline) < 8000:
-      exit_code = self._spawn(sh, escape, cmd, args, spawnenv)
-    else:
-      sAttrs = win32security.SECURITY_ATTRIBUTES()
-      StartupInfo = win32process.STARTUPINFO()
-      for var in spawnenv:
-        spawnenv[var] = spawnenv[var].encode('ascii', 'replace')
-      # check for any special operating system commands
-      if cmd == 'del':
-        for arg in args[1:]:
-          win32file.DeleteFile(arg)
-        exit_code = 0
-      else:
-        # otherwise execute the command.
-        hProcess, hThread, dwPid, dwTid = win32process.CreateProcess(None, cmdline, None, None, 1, 0, spawnenv, None, StartupInfo)
-        win32event.WaitForSingleObject(hProcess, win32event.INFINITE)
-        exit_code = win32process.GetExitCodeProcess(hProcess)
-        win32file.CloseHandle(hProcess);
-        win32file.CloseHandle(hThread);
-    return exit_code
+    def __init__(self, env, logfile, longarg, info):
+        # save the spawn system
+        self.env = env
+        self.logfile = logfile
+        # clear the logfile (it may not exist)
+        if logfile != '':
+            # this will overwrite existing content.
+            writeToFile(logfile, info, append=False)
+        #
+        self.longarg = longarg
+        # get hold of the old spawn? (necessary?)
+        self._spawn = env['SPAWN']
+
+    # define new SPAWN
+    def spawn(self, sh, escape, cmd, args, spawnenv):
+        # get command line
+        newargs = ' '.join(map(escape, args[1:]))
+        cmdline = cmd + " " + newargs
+        #
+        # if log is not empty, write to it
+        if self.logfile != '':
+            # this tend to be slow (?) but ensure correct output
+            # Note that cmdline may be long so I do not escape it
+            try:
+                # since this is not an essential operation, proceed if things go wrong here.
+                writeToFile(self.logfile, cmd + " " + ' '.join(args[1:]) + '\n', append=True)
+            except:
+                print "Warning: can not write to log file ", self.logfile
+        #
+        # if the command is not too long, use the old
+        if not self.longarg or len(cmdline) < 8000:
+            exit_code = self._spawn(sh, escape, cmd, args, spawnenv)
+        else:
+            sAttrs = win32security.SECURITY_ATTRIBUTES()
+            StartupInfo = win32process.STARTUPINFO()
+            for var in spawnenv:
+                spawnenv[var] = spawnenv[var].encode('ascii', 'replace')
+            # check for any special operating system commands
+            if cmd == 'del':
+                for arg in args[1:]:
+                    win32file.DeleteFile(arg)
+                exit_code = 0
+            else:
+                # otherwise execute the command.
+                hProcess, hThread, dwPid, dwTid = win32process.CreateProcess(None, cmdline, None, None, 1, 0, spawnenv, None, StartupInfo)
+                win32event.WaitForSingleObject(hProcess, win32event.INFINITE)
+                exit_code = win32process.GetExitCodeProcess(hProcess)
+                win32file.CloseHandle(hProcess);
+                win32file.CloseHandle(hThread);
+        return exit_code
 
 
 def setLoggedSpawn(env, logfile = '', longarg=False, info=''):
-  ''' This function modify env and allow logging of
-    commands to a logfile. If the argument is too long
-    a win32 spawn will be used instead of the system one
-  '''
-  #
-  # create a new spwn object
-  ls = loggedSpawn(env, logfile, longarg, info)
-  # replace the old SPAWN by the new function
-  env['SPAWN'] = ls.spawn
+    ''' This function modify env and allow logging of
+        commands to a logfile. If the argument is too long
+        a win32 spawn will be used instead of the system one
+    '''
+    #
+    # create a new spwn object
+    ls = loggedSpawn(env, logfile, longarg, info)
+    # replace the old SPAWN by the new function
+    env['SPAWN'] = ls.spawn
 
index 252f070f74573c77fae9887469005f759d3e3803..8748943e85e7fece11e5021e13d6d455ec14255a 100644 (file)
@@ -14,218 +14,218 @@ import sys, os, re, shutil, glob
 
 
 def writeToFile(filename, lines, append = False):
-  " utility function: write or append lines to filename "
-  if append:
-    file = open(filename, 'a')
-  else:
-    file = open(filename, 'w')
-  file.write(lines)
-  file.close()
+    " utility function: write or append lines to filename "
+    if append:
+        file = open(filename, 'a')
+    else:
+        file = open(filename, 'w')
+    file.write(lines)
+    file.close()
 
 
 def addToRC(lines):
-  ''' utility function: shortcut for appending lines to outfile
-    add newline at the end of lines.
-  '''
-  if lines.strip() != '':
-    writeToFile(outfile, lines + '\n', append = True)
+    ''' utility function: shortcut for appending lines to outfile
+        add newline at the end of lines.
+    '''
+    if lines.strip() != '':
+        writeToFile(outfile, lines + '\n', append = True)
 
 
 def removeFiles(filenames):
-  '''utility function: 'rm -f'
-    ignore errors when file does not exist, or is a directory.
-  '''
-  for file in filenames:
-    try:
-      os.remove(file)
-    except:
-      pass
+    '''utility function: 'rm -f'
+        ignore errors when file does not exist, or is a directory.
+    '''
+    for file in filenames:
+        try:
+            os.remove(file)
+        except:
+            pass
 
 
 def cmdOutput(cmd):
-  '''utility function: run a command and get its output as a string
-    cmd: command to run
-  '''
-  fout = os.popen(cmd)
-  output = fout.read()
-  fout.close()
-  return output.strip()
+    '''utility function: run a command and get its output as a string
+        cmd: command to run
+    '''
+    fout = os.popen(cmd)
+    output = fout.read()
+    fout.close()
+    return output.strip()
 
 
 def setEnviron():
-  ''' I do not really know why this is useful, but we might as well keep it.
-    NLS nuisances.
-    Only set these to C if already set.  These must not be set unconditionally
-    because not all systems understand e.g. LANG=C (notably SCO).
-    Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-    Non-C LC_CTYPE values break the ctype check.
-  '''
-  os.environ['LANG'] = os.getenv('LANG', 'C')
-  os.environ['LC'] = os.getenv('LC_ALL', 'C')
-  os.environ['LC_MESSAGE'] = os.getenv('LC_MESSAGE', 'C')
-  os.environ['LC_CTYPE'] = os.getenv('LC_CTYPE', 'C')
+    ''' I do not really know why this is useful, but we might as well keep it.
+        NLS nuisances.
+        Only set these to C if already set.  These must not be set unconditionally
+        because not all systems understand e.g. LANG=C (notably SCO).
+        Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+        Non-C LC_CTYPE values break the ctype check.
+    '''
+    os.environ['LANG'] = os.getenv('LANG', 'C')
+    os.environ['LC'] = os.getenv('LC_ALL', 'C')
+    os.environ['LC_MESSAGE'] = os.getenv('LC_MESSAGE', 'C')
+    os.environ['LC_CTYPE'] = os.getenv('LC_CTYPE', 'C')
 
 
 def createDirectories():
-  ''' Create the build directories if necessary '''
-  for dir in ['bind', 'clipart', 'doc', 'examples', 'images', 'kbd', \
-    'layouts', 'scripts', 'templates', 'ui' ]:
-    if not os.path.isdir( dir ):
-      try:
-        os.mkdir( dir)
-      except:
-        print "Failed to create directory ", dir
-        sys.exit(1)
+    ''' Create the build directories if necessary '''
+    for dir in ['bind', 'clipart', 'doc', 'examples', 'images', 'kbd', \
+        'layouts', 'scripts', 'templates', 'ui' ]:
+        if not os.path.isdir( dir ):
+            try:
+                os.mkdir( dir)
+            except:
+                print "Failed to create directory ", dir
+                sys.exit(1)
 
 
 def checkTeXPaths():
-  ''' Determine the path-style needed by the TeX engine on Win32 (Cygwin) '''
-  windows_style_tex_paths = ''
-  if os.name == 'nt' or sys.platform == 'cygwin':
-    from tempfile import mkstemp
-    fd, tmpfname = mkstemp(suffix='.ltx')
-    # a wrapper file
-    wfd, wtmpfname = mkstemp(suffix='.ltx')
-    if os.name == 'nt':
-      inpname = tmpfname.replace('\\', '/')
-      wtmpfname = wtmpfname.replace('\\', '/')
-    else:
-      inpname = cmdOutput('cygpath -m ' + tmpfname)
-      wtmpfname = cmdOutput('cygpath -m ' + wtmpfname)
-    os.write(fd, r'''
+    ''' Determine the path-style needed by the TeX engine on Win32 (Cygwin) '''
+    windows_style_tex_paths = ''
+    if os.name == 'nt' or sys.platform == 'cygwin':
+        from tempfile import mkstemp
+        fd, tmpfname = mkstemp(suffix='.ltx')
+        # a wrapper file
+        wfd, wtmpfname = mkstemp(suffix='.ltx')
+        if os.name == 'nt':
+            inpname = tmpfname.replace('\\', '/')
+            wtmpfname = wtmpfname.replace('\\', '/')
+        else:
+            inpname = cmdOutput('cygpath -m ' + tmpfname)
+            wtmpfname = cmdOutput('cygpath -m ' + wtmpfname)
+        os.write(fd, r'''
 \documentstyle{article}
 \begin{document}\end{document}
-  ''')
-    os.close(fd)
-    os.write(wfd, r'\input{' + inpname.replace('~', '\\string~') + '}' )
-    os.close(wfd)
-    if cmdOutput('latex ' + wtmpfname).find('Error') != -1:
-      print "configure: TeX engine needs posix-style paths in latex files"
-      windows_style_tex_paths = 'false'
-    else:
-      print "configure: TeX engine needs windows-style paths in latex files"
-      windows_style_tex_paths = 'true'
-    tmpbname,ext = os.path.splitext(os.path.basename(tmpfname))
-    wtmpbname,ext = os.path.splitext(os.path.basename(wtmpfname))
-    removeFiles( [ tmpfname, wtmpfname, tmpbname + '.log', \
+    ''')
+        os.close(fd)
+        os.write(wfd, r'\input{' + inpname.replace('~', '\\string~') + '}' )
+        os.close(wfd)
+        if cmdOutput('latex ' + wtmpfname).find('Error') != -1:
+            print "configure: TeX engine needs posix-style paths in latex files"
+            windows_style_tex_paths = 'false'
+        else:
+            print "configure: TeX engine needs windows-style paths in latex files"
+            windows_style_tex_paths = 'true'
+        tmpbname,ext = os.path.splitext(os.path.basename(tmpfname))
+        wtmpbname,ext = os.path.splitext(os.path.basename(wtmpfname))
+        removeFiles( [ tmpfname, wtmpfname, tmpbname + '.log', \
            tmpbname + '.aux', wtmpbname + '.log', wtmpbname + '.aux' ] )
-  return windows_style_tex_paths
+    return windows_style_tex_paths
 
 
 ## Searching some useful programs
 def checkProg(description, progs, rc_entry = [], path = [], not_found = ''):
-  '''
-    This function will search a program in $PATH plus given path
-    If found, return directory and program name (not the options).
-
-    description: description of the program
-
-    progs: check programs, for each prog, the first word is used
-      for searching but the whole string is used to replace
-      %% for a rc_entry. So, feel free to add '$$i' etc for programs.
-
-    path: additional pathes
-
-    rc_entry: entry to outfile, can be
-      1. emtpy: no rc entry will be added
-      2. one pattern: %% will be replaced by the first found program,
-         or '' if no program is found.
-      3. several patterns for each prog and not_found. This is used 
-         when different programs have different usages. If you do not 
-         want not_found entry to be added to the RC file, you can specify 
-         an entry for each prog and use '' for the not_found entry.
-
-    not_found: the value that should be used instead of '' if no program
-      was found
-
-  '''
-  # one rc entry for each progs plus not_found entry
-  if len(rc_entry) > 1 and len(rc_entry) != len(progs) + 1:
-    print "rc entry should have one item or item for each prog and not_found."
-    sys.exit(2)
-  print 'checking for ' + description + '...'
-  ## print '(' + ','.join(progs) + ')',
-  for idx in range(len(progs)):
-    # ac_prog may have options, ac_word is the command name
-    ac_prog = progs[idx]
-    ac_word = ac_prog.split(' ')[0]
-    print '+checking for "' + ac_word + '"... ',
-    path = os.environ["PATH"].split(os.pathsep) + path
-    for ac_dir in path:
-      # check both ac_word and ac_word.exe (for windows system)
-      if os.path.isfile( os.path.join(ac_dir, ac_word) ) or \
-         os.path.isfile( os.path.join(ac_dir, ac_word + ".exe") ):
-        print ' yes'
-        # write rc entries for this command
-        if len(rc_entry) == 1:
-          addToRC(rc_entry[0].replace('%%', ac_prog))
-        elif len(rc_entry) > 1:
-          addToRC(rc_entry[idx].replace('%%', ac_prog))
-        return [ac_dir, ac_word]
-    # if not successful
-    print ' no'
-  # write rc entries for 'not found'
-  if len(rc_entry) > 0:  # the last one.
-    addToRC(rc_entry[-1].replace('%%', not_found))
-  return ['', not_found]
+    '''
+        This function will search a program in $PATH plus given path
+        If found, return directory and program name (not the options).
+
+        description: description of the program
+
+        progs: check programs, for each prog, the first word is used
+            for searching but the whole string is used to replace
+            %% for a rc_entry. So, feel free to add '$$i' etc for programs.
+
+        path: additional pathes
+
+        rc_entry: entry to outfile, can be
+            1. emtpy: no rc entry will be added
+            2. one pattern: %% will be replaced by the first found program,
+                or '' if no program is found.
+            3. several patterns for each prog and not_found. This is used 
+                when different programs have different usages. If you do not 
+                want not_found entry to be added to the RC file, you can specify 
+                an entry for each prog and use '' for the not_found entry.
+
+        not_found: the value that should be used instead of '' if no program
+            was found
+
+    '''
+    # one rc entry for each progs plus not_found entry
+    if len(rc_entry) > 1 and len(rc_entry) != len(progs) + 1:
+        print "rc entry should have one item or item for each prog and not_found."
+        sys.exit(2)
+    print 'checking for ' + description + '...'
+    ## print '(' + ','.join(progs) + ')',
+    for idx in range(len(progs)):
+        # ac_prog may have options, ac_word is the command name
+        ac_prog = progs[idx]
+        ac_word = ac_prog.split(' ')[0]
+        print '+checking for "' + ac_word + '"... ',
+        path = os.environ["PATH"].split(os.pathsep) + path
+        for ac_dir in path:
+            # check both ac_word and ac_word.exe (for windows system)
+            if os.path.isfile( os.path.join(ac_dir, ac_word) ) or \
+                os.path.isfile( os.path.join(ac_dir, ac_word + ".exe") ):
+                print ' yes'
+                # write rc entries for this command
+                if len(rc_entry) == 1:
+                    addToRC(rc_entry[0].replace('%%', ac_prog))
+                elif len(rc_entry) > 1:
+                    addToRC(rc_entry[idx].replace('%%', ac_prog))
+                return [ac_dir, ac_word]
+        # if not successful
+        print ' no'
+    # write rc entries for 'not found'
+    if len(rc_entry) > 0:  # the last one.
+        addToRC(rc_entry[-1].replace('%%', not_found))
+    return ['', not_found]
 
 
 def checkViewer(description, progs, rc_entry = [], path = []):
-  ''' The same as checkProg, but for viewers and editors '''
-  return checkProg(description, progs, rc_entry, path, not_found = 'auto')
+    ''' The same as checkProg, but for viewers and editors '''
+    return checkProg(description, progs, rc_entry, path, not_found = 'auto')
 
 
 def checkLatex():
-  ''' Check latex, return lyx_check_config '''
-  # Find programs! Returned path is not used now
-  if ((os.name == 'nt' or sys.platform == 'cygwin') and
-      checkProg('DVI to DTL converter', ['dv2dt']) != ['', ''] and
-      checkProg('DTL to DVI converter', ['dt2dv']) != ['', '']):
-    # Windows only: DraftDVI
-    converter_entry = r'''\converter latex      dvi2       "%%"        "latex"
+    ''' Check latex, return lyx_check_config '''
+    # Find programs! Returned path is not used now
+    if ((os.name == 'nt' or sys.platform == 'cygwin') and
+            checkProg('DVI to DTL converter', ['dv2dt']) != ['', ''] and
+            checkProg('DTL to DVI converter', ['dt2dv']) != ['', '']):
+        # Windows only: DraftDVI
+        converter_entry = r'''\converter latex      dvi2       "%%"    "latex"
 \converter dvi2       dvi        "python $$s/scripts/clean_dvi.py $$i $$o"     ""'''
-  else:
-    converter_entry = r'\converter latex      dvi        "%%"  "latex"'
-  path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'latex $$i', 'latex2e $$i'],
-    rc_entry = [converter_entry])
-  # no latex
-  if LATEX != '':
-    # Check if latex is usable
-    writeToFile('chklatex.ltx', '''
+    else:
+        converter_entry = r'\converter latex      dvi        "%%"      "latex"'
+    path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'latex $$i', 'latex2e $$i'],
+        rc_entry = [converter_entry])
+    # no latex
+    if LATEX != '':
+        # Check if latex is usable
+        writeToFile('chklatex.ltx', '''
 \\nonstopmode\\makeatletter
 \\ifx\\undefined\\documentclass\\else
   \\message{ThisIsLaTeX2e}
 \\fi
 \\@@end
 ''')
-    # run latex on chklatex.ltx and check result
-    if cmdOutput(LATEX + ' chklatex.ltx').find('ThisIsLaTeX2e') != -1:
-      # valid latex2e
-      return LATEX
-    else:
-      print "Latex not usable (not LaTeX2e) "
-    # remove temporary files
-    removeFiles(['chklatex.ltx', 'chklatex.log'])
-  return ''
+        # run latex on chklatex.ltx and check result
+        if cmdOutput(LATEX + ' chklatex.ltx').find('ThisIsLaTeX2e') != -1:
+            # valid latex2e
+            return LATEX
+        else:
+            print "Latex not usable (not LaTeX2e) "
+        # remove temporary files
+        removeFiles(['chklatex.ltx', 'chklatex.log'])
+    return ''
 
 
 def checkFormatEntries():  
-  ''' Check all formats (\Format entries) '''
-  checkViewer('a Tgif viewer and editor', ['tgif'],
-    rc_entry = [r'\Format tgif       obj     Tgif                   "" "%%"    "%%"    ""'])
-  #
-  checkViewer('a FIG viewer and editor', ['xfig'],
-    rc_entry = [r'\Format fig        fig     FIG                    "" "%%"    "%%"    ""'])
-  #
-  checkViewer('a Grace viewer and editor', ['xmgrace'],
-    rc_entry = [r'\Format agr        agr     Grace                  "" "%%"    "%%"    ""'])
-  #
-  checkViewer('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'],
-    rc_entry = [r'\Format fen        fen     FEN                    "" "%%"    "%%"    ""'])
-  #
-  path, iv = checkViewer('a raster image viewer', ['xv', 'kview', 'gimp'])
-  path, ie = checkViewer('a raster image editor', ['gimp'])
-  addToRC(r'''\Format bmp        bmp     BMP                    "" "%s"        "%s"    ""
+    ''' Check all formats (\Format entries) '''
+    checkViewer('a Tgif viewer and editor', ['tgif'],
+        rc_entry = [r'\Format tgif       obj     Tgif                   "" "%%"        "%%"    ""'])
+    #
+    checkViewer('a FIG viewer and editor', ['xfig'],
+        rc_entry = [r'\Format fig        fig     FIG                    "" "%%"        "%%"    ""'])
+    #
+    checkViewer('a Grace viewer and editor', ['xmgrace'],
+        rc_entry = [r'\Format agr        agr     Grace                  "" "%%"        "%%"    ""'])
+    #
+    checkViewer('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'],
+        rc_entry = [r'\Format fen        fen     FEN                    "" "%%"        "%%"    ""'])
+    #
+    path, iv = checkViewer('a raster image viewer', ['xv', 'kview', 'gimp'])
+    path, ie = checkViewer('a raster image editor', ['gimp'])
+    addToRC(r'''\Format bmp        bmp     BMP                    "" "%s"      "%s"    ""
 \Format gif        gif     GIF                    "" "%s"      "%s"    ""
 \Format jpg        jpg     JPEG                   "" "%s"      "%s"    ""
 \Format pbm        pbm     PBM                    "" "%s"      "%s"    ""
@@ -235,11 +235,11 @@ def checkFormatEntries():
 \Format tiff       tif     TIFF                   "" "%s"      "%s"    ""
 \Format xbm        xbm     XBM                    "" "%s"      "%s"    ""
 \Format xpm        xpm     XPM                    "" "%s"      "%s"    ""''' % \
-    (iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie) )
-  #
-  checkViewer('a text editor', ['xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \
-    'nedit', 'gedit', 'notepad'],
-    rc_entry = [r'''\Format asciichess asc    "Plain text (chess output)"  "" ""       "%%"    ""
+        (iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie) )
+    #
+    checkViewer('a text editor', ['xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \
+        'nedit', 'gedit', 'notepad'],
+        rc_entry = [r'''\Format asciichess asc    "Plain text (chess output)"  "" ""   "%%"    ""
 \Format asciiimage asc    "Plain text (image)"         "" ""   "%%"    ""
 \Format asciixfig  asc    "Plain text (Xfig output)"   "" ""   "%%"    ""
 \Format dateout    tmp    "date (output)"         "" ""        "%%"    ""
@@ -251,32 +251,32 @@ def checkFormatEntries():
 \Format pdflatex   tex    "LaTeX (pdflatex)"      "" ""        "%%"    "document"
 \Format text       txt    "Plain text"            a  ""        "%%"    "document"
 \Format textparagraph txt "Plain text (paragraphs)"    "" ""   "%%"    "document"''' ])
-  #
-  #checkProg('a Postscript interpreter', ['gs'],
-  #  rc_entry = [ r'\ps_command "%%"' ])
-  checkViewer('a Postscript previewer', ['gv', 'ghostview -swap', 'kghostview'],
-    rc_entry = [r'''\Format eps        eps     EPS                    "" "%%"  ""      ""
+    #
+    #checkProg('a Postscript interpreter', ['gs'],
+    #  rc_entry = [ r'\ps_command "%%"' ])
+    checkViewer('a Postscript previewer', ['gv', 'ghostview -swap', 'kghostview'],
+        rc_entry = [r'''\Format eps        eps     EPS                    "" "%%"      ""      ""
 \Format ps         ps      Postscript             t  "%%"      ""      "document"'''])
-  #
-  checkViewer('a PDF previewer', ['acrobat', 'acroread', 'gv', 'ghostview', \
-              'xpdf', 'kpdf', 'kghostview'],
-    rc_entry = [r'''\Format pdf        pdf    "PDF (ps2pdf)"          P  "%%"  ""      "document"
+    #
+    checkViewer('a PDF previewer', ['acrobat', 'acroread', 'gv', 'ghostview', \
+                            'xpdf', 'kpdf', 'kghostview'],
+        rc_entry = [r'''\Format pdf        pdf    "PDF (ps2pdf)"          P  "%%"      ""      "document"
 \Format pdf2       pdf    "PDF (pdflatex)"        F  "%%"      ""      "document"
 \Format pdf3       pdf    "PDF (dvipdfm)"         m  "%%"      ""      "document"'''])
-  #
-  checkViewer('a DVI previewer', ['xdvi', 'kdvi'],
-    rc_entry = [r'\Format dvi        dvi     DVI                    D  "%%"    ""      "document"'])
-  if ((os.name == 'nt' or sys.platform == 'cygwin') and
-      checkProg('DVI to DTL converter', ['dv2dt']) != ['', ''] and
-      checkProg('DTL to DVI converter', ['dt2dv']) != ['', '']):
-    # Windows only: DraftDVI
-    addToRC(r'\Format dvi2       dvi     DraftDVI               ""     ""      "document"')
-  #
-  checkViewer('a HTML previewer', ['mozilla file://$$p$$i', 'netscape'],
-    rc_entry = [r'\Format html       html    HTML                   H  "%%"    ""      "document"'])
-  #
-  # entried that do not need checkProg
-  addToRC(r'''\Format date       ""     "date command"          "" ""  ""      ""
+    #
+    checkViewer('a DVI previewer', ['xdvi', 'kdvi'],
+        rc_entry = [r'\Format dvi        dvi     DVI                    D  "%%"        ""      "document"'])
+    if ((os.name == 'nt' or sys.platform == 'cygwin') and
+            checkProg('DVI to DTL converter', ['dv2dt']) != ['', ''] and
+            checkProg('DTL to DVI converter', ['dt2dv']) != ['', '']):
+        # Windows only: DraftDVI
+        addToRC(r'\Format dvi2       dvi     DraftDVI               "" ""      "document"')
+    #
+    checkViewer('a HTML previewer', ['mozilla file://$$p$$i', 'netscape'],
+        rc_entry = [r'\Format html       html    HTML                   H  "%%"        ""      "document"'])
+    #
+    # entried that do not need checkProg
+    addToRC(r'''\Format date       ""     "date command"          "" ""        ""      ""
 \Format fax        ""      Fax                    "" ""        ""      "document"
 \Format lyx        lyx     LyX                    "" ""        ""      ""
 \Format lyx13x     lyx13  "LyX 1.3.x"             "" ""        ""      "document"
@@ -291,103 +291,103 @@ def checkFormatEntries():
 
 
 def checkConverterEntries():
-  ''' Check all converters (\converter entries) '''
-  checkProg('the pdflatex program', ['pdflatex $$i'],
-    rc_entry = [ r'\converter pdflatex   pdf2       "%%"       "latex"' ])
-  
-  ''' If we're running LyX in-place then tex2lyx will be found in
-      ../src/tex2lyx. Add this directory to the PATH temporarily and
-      search for tex2lyx.
-      Use PATH to avoid any problems with paths-with-spaces.
-  '''
-  path_orig = os.environ["PATH"]
-  os.environ["PATH"] = os.path.join('..', 'src', 'tex2lyx') + \
-    os.pathsep + path_orig
-
-  checkProg('a LaTeX -> LyX converter', ['tex2lyx -f $$i $$o', \
-    'tex2lyx' +  version_suffix + ' -f $$i $$o' ],
-    rc_entry = [ r'\converter latex      lyx        "%%"       ""' ])
-
-  os.environ["PATH"] = path_orig
-
-  #
-  checkProg('a Noweb -> LyX converter', ['noweb2lyx' + version_suffix + ' $$i $$o'], path = ['./reLyX'],
-    rc_entry = [ r'\converter literate   lyx        "%%"       ""' ])
-  #
-  checkProg('a Noweb -> LaTeX converter', ['noweave -delay -index $$i > $$o'],
-    rc_entry = [ r'\converter literate   latex      "%%"       ""' ])
-  #
-  checkProg('a HTML -> LaTeX converter', ['html2latex $$i'],
-    rc_entry = [ r'\converter html       latex      "%%"       ""' ])
-  #
-  checkProg('a MSWord -> LaTeX converter', ['wvCleanLatex $$i $$o'],
-    rc_entry = [ r'\converter word       latex      "%%"       ""' ])
-  #
-  checkProg('a LaTeX -> MS Word converter', ["htlatex $$i 'html,word' 'symbol/!' '-cvalidate'"],
-    rc_entry = [ r'\converter latex      wordhtml   "%%"       ""' ])
-  #
-  checkProg('an OpenOffice.org -> LaTeX converter', ['w2l -clean $$i'],
-    rc_entry = [ r'\converter sxw        latex      "%%"       ""' ])
-  #
-  checkProg('an LaTeX -> OpenOffice.org LaTeX converter', ['oolatex $$i', 'oolatex.sh $$i'],
-    rc_entry = [ r'\converter latex      sxw        "%%"       "latex"' ])
-  #
-  checkProg('a PS to PDF converter', ['ps2pdf13 $$i $$o'],
-    rc_entry = [ r'\converter ps         pdf        "%%"       ""' ])
-  #
-  checkProg('a DVI to PS converter', ['dvips -o $$o $$i'],
-    rc_entry = [ r'\converter dvi        ps         "%%"       ""' ])
-  #
-  checkProg('a DVI to PDF converter', ['dvipdfmx -o $$o $$i', 'dvipdfm -o $$o $$i'],
-    rc_entry = [ r'\converter dvi        pdf3       "%%"       ""' ])
-  #
-  path, dvipng = checkProg('dvipng', ['dvipng'])
-  if dvipng == "dvipng":
-    addToRC(r'\converter lyxpreview png        "python $$s/scripts/lyxpreview2bitmap.py"       ""')
-  else:
-    addToRC(r'\converter lyxpreview png        ""      ""')
-  #  
-  checkProg('a fax program', ['kdeprintfax $$i', 'ksendfax $$i'],
-    rc_entry = [ r'\converter ps         fax        "%%"       ""'])
-  #
-  checkProg('a FIG -> EPS/PPM converter', ['fig2dev'],
-    rc_entry = [
-      r'''\converter fig        eps        "fig2dev -L eps $$i $$o"    ""
+    ''' Check all converters (\converter entries) '''
+    checkProg('the pdflatex program', ['pdflatex $$i'],
+        rc_entry = [ r'\converter pdflatex   pdf2       "%%"   "latex"' ])
+    
+    ''' If we're running LyX in-place then tex2lyx will be found in
+            ../src/tex2lyx. Add this directory to the PATH temporarily and
+            search for tex2lyx.
+            Use PATH to avoid any problems with paths-with-spaces.
+    '''
+    path_orig = os.environ["PATH"]
+    os.environ["PATH"] = os.path.join('..', 'src', 'tex2lyx') + \
+        os.pathsep + path_orig
+
+    checkProg('a LaTeX -> LyX converter', ['tex2lyx -f $$i $$o', \
+        'tex2lyx' +  version_suffix + ' -f $$i $$o' ],
+        rc_entry = [ r'\converter latex      lyx        "%%"   ""' ])
+
+    os.environ["PATH"] = path_orig
+
+    #
+    checkProg('a Noweb -> LyX converter', ['noweb2lyx' + version_suffix + ' $$i $$o'], path = ['./reLyX'],
+        rc_entry = [ r'\converter literate   lyx        "%%"   ""' ])
+    #
+    checkProg('a Noweb -> LaTeX converter', ['noweave -delay -index $$i > $$o'],
+        rc_entry = [ r'\converter literate   latex      "%%"   ""' ])
+    #
+    checkProg('a HTML -> LaTeX converter', ['html2latex $$i'],
+        rc_entry = [ r'\converter html       latex      "%%"   ""' ])
+    #
+    checkProg('a MSWord -> LaTeX converter', ['wvCleanLatex $$i $$o'],
+        rc_entry = [ r'\converter word       latex      "%%"   ""' ])
+    #
+    checkProg('a LaTeX -> MS Word converter', ["htlatex $$i 'html,word' 'symbol/!' '-cvalidate'"],
+        rc_entry = [ r'\converter latex      wordhtml   "%%"   ""' ])
+    #
+    checkProg('an OpenOffice.org -> LaTeX converter', ['w2l -clean $$i'],
+        rc_entry = [ r'\converter sxw        latex      "%%"   ""' ])
+    #
+    checkProg('an LaTeX -> OpenOffice.org LaTeX converter', ['oolatex $$i', 'oolatex.sh $$i'],
+        rc_entry = [ r'\converter latex      sxw        "%%"   "latex"' ])
+    #
+    checkProg('a PS to PDF converter', ['ps2pdf13 $$i $$o'],
+        rc_entry = [ r'\converter ps         pdf        "%%"   ""' ])
+    #
+    checkProg('a DVI to PS converter', ['dvips -o $$o $$i'],
+        rc_entry = [ r'\converter dvi        ps         "%%"   ""' ])
+    #
+    checkProg('a DVI to PDF converter', ['dvipdfmx -o $$o $$i', 'dvipdfm -o $$o $$i'],
+        rc_entry = [ r'\converter dvi        pdf3       "%%"   ""' ])
+    #
+    path, dvipng = checkProg('dvipng', ['dvipng'])
+    if dvipng == "dvipng":
+        addToRC(r'\converter lyxpreview png        "python $$s/scripts/lyxpreview2bitmap.py"   ""')
+    else:
+        addToRC(r'\converter lyxpreview png        ""  ""')
+    #  
+    checkProg('a fax program', ['kdeprintfax $$i', 'ksendfax $$i'],
+        rc_entry = [ r'\converter ps         fax        "%%"   ""'])
+    #
+    checkProg('a FIG -> EPS/PPM converter', ['fig2dev'],
+        rc_entry = [
+            r'''\converter fig        eps        "fig2dev -L eps $$i $$o"      ""
 \converter fig        ppm        "fig2dev -L ppm $$i $$o"      ""
 \converter fig        png        "fig2dev -L png $$i $$o"      ""''',
-      ''])
-  #
-  checkProg('a TIFF -> PS converter', ['tiff2ps $$i > $$o'],
-    rc_entry = [ r'\converter tiff       eps        "%%"       ""', ''])
-  #
-  checkProg('a TGIF -> EPS/PPM converter', ['tgif'],
-    rc_entry = [
-      r'''\converter tgif       eps        "tgif -stdout -print -color -eps $$i > $$o" ""
+            ''])
+    #
+    checkProg('a TIFF -> PS converter', ['tiff2ps $$i > $$o'],
+        rc_entry = [ r'\converter tiff       eps        "%%"   ""', ''])
+    #
+    checkProg('a TGIF -> EPS/PPM converter', ['tgif'],
+        rc_entry = [
+            r'''\converter tgif       eps        "tgif -stdout -print -color -eps $$i > $$o"   ""
 \converter tgif       ppm        "tgif -stdout -print -color -ppm $$i > $$o"   ""
 \converter tgif       png        "tgif -stdout -print -color -png $$i > $$o"   ""
 \converter tgif       pdf        "tgif -stdout -print -color -pdf $$i > $$o"   ""''',
-      ''])
-  #
-  checkProg('a EPS -> PDF converter', ['epstopdf'],
-    rc_entry = [ r'\converter eps        pdf        "epstopdf --outfile=$$o $$i"       ""', ''])
-  #
-  checkProg('a Grace -> Image converter', ['gracebat'],
-    rc_entry = [
-      r'''\converter agr        eps        "gracebat -hardcopy -printfile $$o -hdevice EPS $$i 2>/dev/null"    ""
+            ''])
+    #
+    checkProg('a EPS -> PDF converter', ['epstopdf'],
+        rc_entry = [ r'\converter eps        pdf        "epstopdf --outfile=$$o $$i"   ""', ''])
+    #
+    checkProg('a Grace -> Image converter', ['gracebat'],
+        rc_entry = [
+            r'''\converter agr        eps        "gracebat -hardcopy -printfile $$o -hdevice EPS $$i 2>/dev/null"      ""
 \converter agr        png        "gracebat -hardcopy -printfile $$o -hdevice PNG $$i 2>/dev/null"      ""
 \converter agr        jpg        "gracebat -hardcopy -printfile $$o -hdevice JPEG $$i 2>/dev/null"     ""
 \converter agr        ppm        "gracebat -hardcopy -printfile $$o -hdevice PNM $$i 2>/dev/null"      ""''',
-      ''])
-  #
-  checkProg('a LaTeX -> HTML converter', ['htlatex $$i', 'tth  -t -e2 -L$$b < $$i > $$o', \
-    'latex2html -no_subdir -split 0 -show_section_numbers $$i', 'hevea -s $$i'],
-    rc_entry = [ r'\converter latex      html       "%%"       "originaldir,needaux"' ])
-  #
-  # FIXME: no rc_entry? comment it out
-  # checkProg('Image converter', ['convert $$i $$o'])
-  #
-  # Entried that do not need checkProg
-  addToRC(r'''\converter lyxpreview ppm        "python $$s/scripts/lyxpreview2bitmap.py"       ""
+            ''])
+    #
+    checkProg('a LaTeX -> HTML converter', ['htlatex $$i', 'tth  -t -e2 -L$$b < $$i > $$o', \
+        'latex2html -no_subdir -split 0 -show_section_numbers $$i', 'hevea -s $$i'],
+        rc_entry = [ r'\converter latex      html       "%%"   "originaldir,needaux"' ])
+    #
+    # FIXME: no rc_entry? comment it out
+    # checkProg('Image converter', ['convert $$i $$o'])
+    #
+    # Entried that do not need checkProg
+    addToRC(r'''\converter lyxpreview ppm        "python $$s/scripts/lyxpreview2bitmap.py"     ""
 \converter date       dateout    "date +%d-%m-%Y > $$o"        ""
 \converter docbook    docbook-xml "cp $$i $$o" "xml"
 \converter fen        asciichess "python $$s/scripts/fen2ascii.py $$i $$o"     ""
@@ -398,328 +398,328 @@ def checkConverterEntries():
 
 
 def checkLinuxDoc():
-  ''' Check linuxdoc '''
-  #
-  path, LINUXDOC = checkProg('SGML-tools 1.x (LinuxDoc)', ['sgml2lyx'],
-    rc_entry = [
-    r'''\converter linuxdoc   lyx        "sgml2lyx $$i"        ""
+    ''' Check linuxdoc '''
+    #
+    path, LINUXDOC = checkProg('SGML-tools 1.x (LinuxDoc)', ['sgml2lyx'],
+        rc_entry = [
+        r'''\converter linuxdoc   lyx        "sgml2lyx $$i"    ""
 \converter linuxdoc   latex      "sgml2latex $$i"      ""
 \converter linuxdoc   dvi        "sgml2latex -o dvi $$i"       ""
 \converter linuxdoc   html       "sgml2html $$i"       ""''',
-    r'''\converter linuxdoc   lyx        ""    ""
+        r'''\converter linuxdoc   lyx        ""        ""
 \converter linuxdoc   latex      ""    ""
 \converter linuxdoc   dvi        ""    ""
 \converter linuxdoc   html       ""    ""''' ])
-  if LINUXDOC != '':
-    return ('yes', 'true', '\\def\\haslinuxdoc{yes}')
-  else:
-    return ('no', 'false', '')
+    if LINUXDOC != '':
+        return ('yes', 'true', '\\def\\haslinuxdoc{yes}')
+    else:
+        return ('no', 'false', '')
 
 
 def checkDocBook():
-  ''' Check docbook '''
-  path, DOCBOOK = checkProg('SGML-tools 2.x (DocBook) or db2x scripts', ['sgmltools', 'db2dvi'],
-    rc_entry = [
-      r'''\converter docbook    dvi        "sgmltools -b dvi $$i"      ""
+    ''' Check docbook '''
+    path, DOCBOOK = checkProg('SGML-tools 2.x (DocBook) or db2x scripts', ['sgmltools', 'db2dvi'],
+        rc_entry = [
+            r'''\converter docbook    dvi        "sgmltools -b dvi $$i"        ""
 \converter docbook    html       "sgmltools -b html $$i"       ""''',
-      r'''\converter docbook    dvi        "db2dvi $$i"        ""
+            r'''\converter docbook    dvi        "db2dvi $$i"  ""
 \converter docbook    html       "db2html $$i" ""''',
-      r'''\converter docbook    dvi        ""  ""
+            r'''\converter docbook    dvi        ""    ""
 \converter docbook    html       ""    ""'''])
-  #
-  if DOCBOOK != '':
-    return ('yes', 'true', '\\def\\hasdocbook{yes}')
-  else:
-    return ('no', 'false', '')
+    #
+    if DOCBOOK != '':
+        return ('yes', 'true', '\\def\\hasdocbook{yes}')
+    else:
+        return ('no', 'false', '')
 
 
 def checkOtherEntries():
-  ''' entries other than Format and Converter '''
-  checkProg('a *roff formatter', ['groff', 'nroff'],
-    rc_entry = [
-      r'\ascii_roff_command "groff -t -Tlatin1 $$FName"',
-      r'\ascii_roff_command "tbl $$FName | nroff"',
-      r'\ascii_roff_command ""' ])
-  checkProg('ChkTeX', ['chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38'],
-    rc_entry = [ r'\chktex_command "%%"' ])
-  checkProg('a spellchecker', ['ispell'],
-    rc_entry = [ r'\spell_command "%%"' ])
-  ## FIXME: OCTAVE is not used anywhere
-  # path, OCTAVE = checkProg('Octave', ['octave'])
-  ## FIXME: MAPLE is not used anywhere
-  # path, MAPLE = checkProg('Maple', ['maple'])
-  checkProg('a spool command', ['lp', 'lpr'],
-    rc_entry = [
-      r'''\print_spool_printerprefix "-d "
+    ''' entries other than Format and Converter '''
+    checkProg('a *roff formatter', ['groff', 'nroff'],
+        rc_entry = [
+            r'\ascii_roff_command "groff -t -Tlatin1 $$FName"',
+            r'\ascii_roff_command "tbl $$FName | nroff"',
+            r'\ascii_roff_command ""' ])
+    checkProg('ChkTeX', ['chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38'],
+        rc_entry = [ r'\chktex_command "%%"' ])
+    checkProg('a spellchecker', ['ispell'],
+        rc_entry = [ r'\spell_command "%%"' ])
+    ## FIXME: OCTAVE is not used anywhere
+    # path, OCTAVE = checkProg('Octave', ['octave'])
+    ## FIXME: MAPLE is not used anywhere
+    # path, MAPLE = checkProg('Maple', ['maple'])
+    checkProg('a spool command', ['lp', 'lpr'],
+        rc_entry = [
+            r'''\print_spool_printerprefix "-d "
 \print_spool_command "lp"''',
-      r'''\print_spool_printerprefix "-P",
+            r'''\print_spool_printerprefix "-P",
 \print_spool_command "lpr"''',
-      ''])
-  # Add the rest of the entries (no checkProg is required)
-  addToRC(r'''\copier    fig        "sh $$s/scripts/fig_copy.sh $$i $$o"
+            ''])
+    # Add the rest of the entries (no checkProg is required)
+    addToRC(r'''\copier    fig        "sh $$s/scripts/fig_copy.sh $$i $$o"
 \copier    pstex      "python $$s/scripts/tex_copy.py $$i $$o $$l"
 \copier    pdftex     "python $$s/scripts/tex_copy.py $$i $$o $$l"
 ''')
 
 
 def processLayoutFile(file, bool_docbook, bool_linuxdoc):
-  ''' process layout file and get a line of result
-    
-    Declear line are like this: (article.layout, scrbook.layout, svjog.layout)
-    
-    \DeclareLaTeXClass{article}
-    \DeclareLaTeXClass[scrbook]{book (koma-script)}
-    \DeclareLaTeXClass[svjour,svjog.clo]{article (Springer - svjour/jog)}
+    ''' process layout file and get a line of result
+        
+        Declear line are like this: (article.layout, scrbook.layout, svjog.layout)
+        
+        \DeclareLaTeXClass{article}
+        \DeclareLaTeXClass[scrbook]{book (koma-script)}
+        \DeclareLaTeXClass[svjour,svjog.clo]{article (Springer - svjour/jog)}
+
+        we expect output:
+        
+        "article" "article" "article" "false"
+        "scrbook" "scrbook" "book (koma-script)" "false"
+        "svjog" "svjour" "article (Springer - svjour/jog)" "false"
+    '''
+    classname = file.split(os.sep)[-1].split('.')[0]
+    # return ('LaTeX', '[a,b]', 'a', ',b,c', 'article') for \DeclearLaTeXClass[a,b,c]{article}
+    p = re.compile(r'\Declare(LaTeX|DocBook|LinuxDoc)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
+    for line in open(file).readlines():
+        res = p.search(line)
+        if res != None:
+            (classtype, optAll, opt, opt1, desc) = res.groups()
+            avai = {'LaTeX':'false', 'DocBook':bool_docbook, 'LinuxDoc':bool_linuxdoc}[classtype]
+            if opt == None:
+                opt = classname
+            return '"%s" "%s" "%s" "%s"\n' % (classname, opt, desc, avai)
+    print "Layout file without \DeclearXXClass line. "
+    sys.exit(2)
 
-    we expect output:
     
-    "article" "article" "article" "false"
-    "scrbook" "scrbook" "book (koma-script)" "false"
-    "svjog" "svjour" "article (Springer - svjour/jog)" "false"
-  '''
-  classname = file.split(os.sep)[-1].split('.')[0]
-  # return ('LaTeX', '[a,b]', 'a', ',b,c', 'article') for \DeclearLaTeXClass[a,b,c]{article}
-  p = re.compile(r'\Declare(LaTeX|DocBook|LinuxDoc)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
-  for line in open(file).readlines():
-    res = p.search(line)
-    if res != None:
-      (classtype, optAll, opt, opt1, desc) = res.groups()
-      avai = {'LaTeX':'false', 'DocBook':bool_docbook, 'LinuxDoc':bool_linuxdoc}[classtype]
-      if opt == None:
-        opt = classname
-      return '"%s" "%s" "%s" "%s"\n' % (classname, opt, desc, avai)
-  print "Layout file without \DeclearXXClass line. "
-  sys.exit(2)
-
-  
 def checkLatexConfig(check_config, bool_docbook, bool_linuxdoc):
-  ''' Explore the LaTeX configuration '''
-  print 'checking LaTeX configuration... ',
-  # First, remove the files that we want to re-create
-  removeFiles(['textclass.lst', 'packages.lst', 'chkconfig.sed'])
-  #
-  if not check_config:
-    print ' default values'
-    print '+checking list of textclasses... '
-    tx = open('textclass.lst', 'w')
-    tx.write('''
+    ''' Explore the LaTeX configuration '''
+    print 'checking LaTeX configuration... ',
+    # First, remove the files that we want to re-create
+    removeFiles(['textclass.lst', 'packages.lst', 'chkconfig.sed'])
+    #
+    if not check_config:
+        print ' default values'
+        print '+checking list of textclasses... '
+        tx = open('textclass.lst', 'w')
+        tx.write('''
 # This file declares layouts and their associated definition files
 # (include dir. relative to the place where this file is).
 # It contains only default values, since chkconfig.ltx could not be run
 # for some reason. Run ./configure if you need to update it after a
 # configuration change.
 ''')
-    # build the list of available layout files and convert it to commands
-    # for chkconfig.ltx
-    foundClasses = []
-    for file in glob.glob( os.path.join('layouts', '*.layout') ) + \
-      glob.glob( os.path.join(srcdir, 'layouts', '*.layout' ) ) :
-      # valid file?
-      if not os.path.isfile(file): 
-        continue
-      # get stuff between /xxxx.layout .
-      classname = file.split(os.sep)[-1].split('.')[0]
-      #  tr ' -' '__'`
-      cleanclass = classname.replace(' ', '_')
-      cleanclass = cleanclass.replace('-', '_')
-      # make sure the same class is not considered twice
-      if foundClasses.count(cleanclass) == 0: # not found before
-        foundClasses.append(cleanclass)
-        tx.write(processLayoutFile(file, bool_docbook, bool_linuxdoc))
-    tx.close()
-    print '\tdone'
-  else:
-    print '\tauto'
-    removeFiles(['wrap_chkconfig.ltx', 'chkconfig.vars', \
-      'chkconfig.classes', 'chklayouts.tex'])
-    rmcopy = False
-    if not os.path.isfile( 'chkconfig.ltx' ):
-      shutil.copy( os.path.join(srcdir, 'chkconfig.ltx'),  'chkconfig.ltx' )
-      rmcopy = True
-    writeToFile('wrap_chkconfig.ltx', '%s\n%s\n\\input{chkconfig.ltx}\n' \
-      % (linuxdoc_cmd, docbook_cmd) )
-    # Construct the list of classes to test for.
-    # build the list of available layout files and convert it to commands
-    # for chkconfig.ltx
-    p1 = re.compile(r'\Declare(LaTeX|DocBook|LinuxDoc)Class')
-    testclasses = list()
-    for file in glob.glob( os.path.join('layouts', '*.layout') ) + \
-      glob.glob( os.path.join(srcdir, 'layouts', '*.layout' ) ) :
-      if not os.path.isfile(file):
-        continue
-      classname = file.split(os.sep)[-1].split('.')[0]
-      for line in open(file).readlines():
-        if p1.search(line) == None:
-          continue
-        if line[0] != '#':
-          print "Wrong input layout file with line '" + line
-          sys.exit(3)
-        testclasses.append("\\TestDocClass{%s}{%s}" % (classname, line[1:].strip()))
-        break
-    testclasses.sort()
-    cl = open('chklayouts.tex', 'w')
-    for line in testclasses:
-      cl.write(line + '\n')
-    cl.close()
-    #
-    # we have chklayouts.tex, then process it
-    for line in cmdOutput(LATEX + ' wrap_chkconfig.ltx').splitlines():
-      if re.match('^\+', line):
-        print line
-    #
-    # currently, values in chhkconfig are only used to set
-    # \font_encoding
-    values = {}
-    for line in open('chkconfig.vars').readlines():
-      key, val = re.sub('-', '_', line).split('=')
-      val = val.strip()
-      values[key] = val.strip("'")
-    # chk_fontenc may not exist 
-    try:
-      addToRC(r'\font_encoding "%s"' % values["chk_fontenc"])
-    except:
-      pass
-    if rmcopy:   # remove the copied file
-      removeFiles( [ 'chkconfig.ltx' ] )
+        # build the list of available layout files and convert it to commands
+        # for chkconfig.ltx
+        foundClasses = []
+        for file in glob.glob( os.path.join('layouts', '*.layout') ) + \
+            glob.glob( os.path.join(srcdir, 'layouts', '*.layout' ) ) :
+            # valid file?
+            if not os.path.isfile(file): 
+                continue
+            # get stuff between /xxxx.layout .
+            classname = file.split(os.sep)[-1].split('.')[0]
+            #  tr ' -' '__'`
+            cleanclass = classname.replace(' ', '_')
+            cleanclass = cleanclass.replace('-', '_')
+            # make sure the same class is not considered twice
+            if foundClasses.count(cleanclass) == 0: # not found before
+                foundClasses.append(cleanclass)
+                tx.write(processLayoutFile(file, bool_docbook, bool_linuxdoc))
+        tx.close()
+        print '\tdone'
+    else:
+        print '\tauto'
+        removeFiles(['wrap_chkconfig.ltx', 'chkconfig.vars', \
+            'chkconfig.classes', 'chklayouts.tex'])
+        rmcopy = False
+        if not os.path.isfile( 'chkconfig.ltx' ):
+            shutil.copy( os.path.join(srcdir, 'chkconfig.ltx'),  'chkconfig.ltx' )
+            rmcopy = True
+        writeToFile('wrap_chkconfig.ltx', '%s\n%s\n\\input{chkconfig.ltx}\n' \
+            % (linuxdoc_cmd, docbook_cmd) )
+        # Construct the list of classes to test for.
+        # build the list of available layout files and convert it to commands
+        # for chkconfig.ltx
+        p1 = re.compile(r'\Declare(LaTeX|DocBook|LinuxDoc)Class')
+        testclasses = list()
+        for file in glob.glob( os.path.join('layouts', '*.layout') ) + \
+            glob.glob( os.path.join(srcdir, 'layouts', '*.layout' ) ) :
+            if not os.path.isfile(file):
+                continue
+            classname = file.split(os.sep)[-1].split('.')[0]
+            for line in open(file).readlines():
+                if p1.search(line) == None:
+                    continue
+                if line[0] != '#':
+                    print "Wrong input layout file with line '" + line
+                    sys.exit(3)
+                testclasses.append("\\TestDocClass{%s}{%s}" % (classname, line[1:].strip()))
+                break
+        testclasses.sort()
+        cl = open('chklayouts.tex', 'w')
+        for line in testclasses:
+            cl.write(line + '\n')
+        cl.close()
+        #
+        # we have chklayouts.tex, then process it
+        for line in cmdOutput(LATEX + ' wrap_chkconfig.ltx').splitlines():
+            if re.match('^\+', line):
+                print line
+        #
+        # currently, values in chhkconfig are only used to set
+        # \font_encoding
+        values = {}
+        for line in open('chkconfig.vars').readlines():
+            key, val = re.sub('-', '_', line).split('=')
+            val = val.strip()
+            values[key] = val.strip("'")
+        # chk_fontenc may not exist 
+        try:
+            addToRC(r'\font_encoding "%s"' % values["chk_fontenc"])
+        except:
+            pass
+        if rmcopy:   # remove the copied file
+            removeFiles( [ 'chkconfig.ltx' ] )
 
 
 def createLaTeXConfig():
-  ''' create LaTeXConfig.lyx '''
-  # if chkconfig.sed does not exist (because LaTeX did not run),
-  # then provide a standard version.
-  if not os.path.isfile('chkconfig.sed'):
-    writeToFile('chkconfig.sed', 's!@.*@!???!g\n')
-  print "creating packages.lst"
-  # if packages.lst does not exist (because LaTeX did not run),
-  # then provide a standard version.
-  if not os.path.isfile('packages.lst'):
-    writeToFile('packages.lst', '''
+    ''' create LaTeXConfig.lyx '''
+    # if chkconfig.sed does not exist (because LaTeX did not run),
+    # then provide a standard version.
+    if not os.path.isfile('chkconfig.sed'):
+        writeToFile('chkconfig.sed', 's!@.*@!???!g\n')
+    print "creating packages.lst"
+    # if packages.lst does not exist (because LaTeX did not run),
+    # then provide a standard version.
+    if not os.path.isfile('packages.lst'):
+        writeToFile('packages.lst', '''
 ### This file should contain the list of LaTeX packages that have been
 ### recognized by LyX. Unfortunately, since configure could not find
 ### your LaTeX2e program, the tests have not been run. Run ./configure
 ### if you need to update it after a configuration change.
 ''')
-  print 'creating doc/LaTeXConfig.lyx'
-  #
-  # This is originally done by sed, using a
-  # tex-generated file chkconfig.sed
-  ##sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in
-  ##  >doc/LaTeXConfig.lyx
-  # Now, we have to do it by hand (python).
-  #
-  # add to chekconfig.sed
-  writeToFile('chkconfig.sed', '''s!@chk_linuxdoc@!%s!g
+    print 'creating doc/LaTeXConfig.lyx'
+    #
+    # This is originally done by sed, using a
+    # tex-generated file chkconfig.sed
+    ##sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in
+    ##  >doc/LaTeXConfig.lyx
+    # Now, we have to do it by hand (python).
+    #
+    # add to chekconfig.sed
+    writeToFile('chkconfig.sed', '''s!@chk_linuxdoc@!%s!g
 s!@chk_docbook@!%s!g
-  ''' % (chk_linuxdoc, chk_docbook) , append=True)
-  # process this sed file!!!!
-  lyxin = open( os.path.join(srcdir, 'doc', 'LaTeXConfig.lyx.in')).readlines()
-  # get the rules
-  p = re.compile(r's!(.*)!(.*)!g')
-  # process each sed replace.
-  for sed in open('chkconfig.sed').readlines():
-    if sed.strip() == '':
-      continue
-    try:
-      fr, to = p.match(sed).groups()
-      # if latex did not run, change all @name@ to '???'
-      if fr == '@.*@':
-        for line in range(len(lyxin)):
-          lyxin[line] = re.sub('@.*@', to, lyxin[line])
-      else:
-        for line in range(len(lyxin)):
-          lyxin[line] = lyxin[line].replace(fr, to)
-    except:  # wrong sed entry?
-      print "Wrong sed entry in chkconfig.sed: '" + sed + "'"
-      sys.exit(4)
-  # 
-  writeToFile( os.path.join('doc', 'LaTeXConfig.lyx'),
-    ''.join(lyxin))
+    ''' % (chk_linuxdoc, chk_docbook) , append=True)
+    # process this sed file!!!!
+    lyxin = open( os.path.join(srcdir, 'doc', 'LaTeXConfig.lyx.in')).readlines()
+    # get the rules
+    p = re.compile(r's!(.*)!(.*)!g')
+    # process each sed replace.
+    for sed in open('chkconfig.sed').readlines():
+        if sed.strip() == '':
+            continue
+        try:
+            fr, to = p.match(sed).groups()
+            # if latex did not run, change all @name@ to '???'
+            if fr == '@.*@':
+                for line in range(len(lyxin)):
+                    lyxin[line] = re.sub('@.*@', to, lyxin[line])
+            else:
+                for line in range(len(lyxin)):
+                    lyxin[line] = lyxin[line].replace(fr, to)
+        except:  # wrong sed entry?
+            print "Wrong sed entry in chkconfig.sed: '" + sed + "'"
+            sys.exit(4)
+    
+    writeToFile( os.path.join('doc', 'LaTeXConfig.lyx'),
+        ''.join(lyxin))
 
 
 def checkTeXAllowSpaces():
-  ''' Let's check whether spaces are allowed in TeX file names '''
-  tex_allows_spaces = 'false'
-  if lyx_check_config:
-    print "Checking whether TeX allows spaces in file names... ",
-    writeToFile('a b.tex', r'\message{working^^J}' )
-    # FIXME: the bsh version uses < /dev/null which is not portable.
-    # Can anyone confirm if this option (-interaction) is available
-    # at other flavor of latex as well? (MikTex/win, Web2C/linux are fine.) 
-    if ''.join(cmdOutput(LATEX + ' -interaction=nonstopmode "a b"')).find('working') != -1:
-      print 'yes'
-      tex_allows_spaces = 'true'
-    else:
-      print 'no'
-      tex_allows_spaces = 'false'
-    addToRC(r'\tex_allows_spaces ' + tex_allows_spaces)
-    removeFiles( [ 'a b.tex', 'a b.log', 'texput.log' ])
+    ''' Let's check whether spaces are allowed in TeX file names '''
+    tex_allows_spaces = 'false'
+    if lyx_check_config:
+        print "Checking whether TeX allows spaces in file names... ",
+        writeToFile('a b.tex', r'\message{working^^J}' )
+        # FIXME: the bsh version uses < /dev/null which is not portable.
+        # Can anyone confirm if this option (-interaction) is available
+        # at other flavor of latex as well? (MikTex/win, Web2C/linux are fine.) 
+        if ''.join(cmdOutput(LATEX + ' -interaction=nonstopmode "a b"')).find('working') != -1:
+            print 'yes'
+            tex_allows_spaces = 'true'
+        else:
+            print 'no'
+            tex_allows_spaces = 'false'
+        addToRC(r'\tex_allows_spaces ' + tex_allows_spaces)
+        removeFiles( [ 'a b.tex', 'a b.log', 'texput.log' ])
 
 
 def removeTempFiles():
-  # Final clean-up
-  if not lyx_keep_temps:
-    removeFiles(['chkconfig.sed', 'chkconfig.vars',  \
-      'wrap_chkconfig.ltx', 'wrap_chkconfig.log', \
-      'chklayouts.tex', 'missfont.log', 
-      'chklatex.ltx', 'chklatex.log'])
+    # Final clean-up
+    if not lyx_keep_temps:
+        removeFiles(['chkconfig.sed', 'chkconfig.vars',  \
+            'wrap_chkconfig.ltx', 'wrap_chkconfig.log', \
+            'chklayouts.tex', 'missfont.log', 
+            'chklatex.ltx', 'chklatex.log'])
 
 
 if __name__ == '__main__':
-  lyx_check_config = True
-  outfile = 'lyxrc.defaults'
-  rc_entries = ''
-  lyx_keep_temps = False
-  version_suffix = ''
-  ## Parse the command line
-  for op in sys.argv[1:]:   # default shell/for list is $*, the options
-    if op in [ '-help', '--help', '-h' ]:
-      print '''Usage: configure [options]
+    lyx_check_config = True
+    outfile = 'lyxrc.defaults'
+    rc_entries = ''
+    lyx_keep_temps = False
+    version_suffix = ''
+    ## Parse the command line
+    for op in sys.argv[1:]:   # default shell/for list is $*, the options
+        if op in [ '-help', '--help', '-h' ]:
+            print '''Usage: configure [options]
 Options:
-  --help                   show this help lines
-  --keep-temps             keep temporary files (for debug. purposes)
-  --without-latex-config   do not run LaTeX to determine configuration
-  --with-version-suffix=suffix suffix of binary installed files
+    --help                   show this help lines
+    --keep-temps             keep temporary files (for debug. purposes)
+    --without-latex-config   do not run LaTeX to determine configuration
+    --with-version-suffix=suffix suffix of binary installed files
 '''
-      sys.exit(0)
-    elif op == '--without-latex-config':
-      lyx_check_config = False
-    elif op == '--keep-temps':
-      lyx_keep_temps = True
-    elif op[0:22] == '--with-version-suffix=':  # never mind if op is not long enough
-      version_suffix = op[22:]
-    else:
-      print "Unknown option", op
-      sys.exit(1)
-  #    
-  # check if we run from the right directory
-  srcdir = os.path.dirname(sys.argv[0])
-  if srcdir == '':
-    srcdir = '.'
-  if not os.path.isfile( os.path.join(srcdir, 'chkconfig.ltx') ):
-    print "configure: error: cannot find chkconfig.ltx script"
-    sys.exit(1)
-  setEnviron()
-  createDirectories()
-  windows_style_tex_paths = checkTeXPaths()
-  ## Write the first part of outfile
-  writeToFile(outfile, '''# This file has been automatically generated by LyX' lib/configure.py
+            sys.exit(0)
+        elif op == '--without-latex-config':
+            lyx_check_config = False
+        elif op == '--keep-temps':
+            lyx_keep_temps = True
+        elif op[0:22] == '--with-version-suffix=':  # never mind if op is not long enough
+            version_suffix = op[22:]
+        else:
+            print "Unknown option", op
+            sys.exit(1)
+    #    
+    # check if we run from the right directory
+    srcdir = os.path.dirname(sys.argv[0])
+    if srcdir == '':
+        srcdir = '.'
+    if not os.path.isfile( os.path.join(srcdir, 'chkconfig.ltx') ):
+        print "configure: error: cannot find chkconfig.ltx script"
+        sys.exit(1)
+    setEnviron()
+    createDirectories()
+    windows_style_tex_paths = checkTeXPaths()
+    ## Write the first part of outfile
+    writeToFile(outfile, '''# This file has been automatically generated by LyX' lib/configure.py
 # script. It contains default settings that have been determined by
 # examining your system. PLEASE DO NOT MODIFY ANYTHING HERE! If you
 # want to customize LyX, make a copy of the file LYXDIR/lyxrc as
 # ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
 # override the values given here.
 ''')
-  # check latex
-  LATEX = checkLatex()
-  checkFormatEntries()
-  checkConverterEntries()
-  (chk_linuxdoc, bool_linuxdoc, linuxdoc_cmd) = checkLinuxDoc()
-  (chk_docbook, bool_docbook, docbook_cmd) = checkDocBook()
-  checkTeXAllowSpaces()
-  if windows_style_tex_paths != '':
-    addToRC(r'\tex_expects_windows_paths %s' % windows_style_tex_paths)
-  checkOtherEntries()
-  # --without-latex-config can disable lyx_check_config
-  checkLatexConfig( lyx_check_config and LATEX != '', bool_docbook, bool_linuxdoc)
-  createLaTeXConfig()
-  removeTempFiles()
+    # check latex
+    LATEX = checkLatex()
+    checkFormatEntries()
+    checkConverterEntries()
+    (chk_linuxdoc, bool_linuxdoc, linuxdoc_cmd) = checkLinuxDoc()
+    (chk_docbook, bool_docbook, docbook_cmd) = checkDocBook()
+    checkTeXAllowSpaces()
+    if windows_style_tex_paths != '':
+        addToRC(r'\tex_expects_windows_paths %s' % windows_style_tex_paths)
+    checkOtherEntries()
+    # --without-latex-config can disable lyx_check_config
+    checkLatexConfig( lyx_check_config and LATEX != '', bool_docbook, bool_linuxdoc)
+    createLaTeXConfig()
+    removeTempFiles()
index 375d88e389ae2aa30a1526a9ef618ee39d8dbcad..bf85ebf44d80f2fa9d21b1a81b5bfbd13e7973b8 100755 (executable)
@@ -41,30 +41,30 @@ bst_stylefile = 'bstFiles.lst'
 bib_files = 'bibFiles.lst'
 
 def cmdOutput(cmd):
-  '''utility function: run a command and get its output as a string
-    cmd: command to run
-  '''
-  fout = os.popen(cmd)
-  output = fout.read()
-  fout.close()
-  return output
+    '''utility function: run a command and get its output as a string
+        cmd: command to run
+    '''
+    fout = os.popen(cmd)
+    output = fout.read()
+    fout.close()
+    return output
 
 # processing command line options
 if len(sys.argv) > 1:
-  if sys.argv[1] in ['--help', '-help']:
-    print '''Usage: TeXFiles.py [-version | cls | sty | bst | bib ]
-       Default is without any Parameters,
-       so that all files will be created'''
-    sye.exit(0)
-  else:
-    types = sys.argv[1:]
-    for type in types:
-      if type not in ['cls', 'sty', 'bst', 'bib']:
-        print 'ERROR: unknown type', type
-        sys.exit(1)
+    if sys.argv[1] in ['--help', '-help']:
+        print '''Usage: TeXFiles.py [-version | cls | sty | bst | bib ]
+            Default is without any Parameters,
+            so that all files will be created'''
+        sye.exit(0)
+    else:
+        types = sys.argv[1:]
+        for type in types:
+            if type not in ['cls', 'sty', 'bst', 'bib']:
+                print 'ERROR: unknown type', type
+                sys.exit(1)
 else:
-  # if no parameter is specified, assume all
-  types = ['cls', 'sty', 'bst', 'bib']
+    # if no parameter is specified, assume all
+    types = ['cls', 'sty', 'bst', 'bib']
 
 #
 # MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate
@@ -73,44 +73,45 @@ else:
 # Create a variable that holds the right character to be used by the scripts.
 path_sep = os.pathsep
 if sys.platform == 'cygwin':
-  # MikTeX's kpsewhich says "kpathsea emulation version x.x.x", whereas
-  # teTeX's simply "kpathsea version x.x.x".
-  if 'emulation' in cmdOutput('kpsewhich --version'):
-    path_sep = ';'
-  else:
-    path_sep = ':'
+    # MikTeX's kpsewhich says "kpathsea emulation version x.x.x", whereas
+    # teTeX's simply "kpathsea version x.x.x".
+    if 'emulation' in cmdOutput('kpsewhich --version'):
+        path_sep = ';'
+    else:
+        path_sep = ':'
 
 # process each file type
 for type in types:
-  print "Indexing files of type", type
-  if type == 'cls':
-    outfile = cls_stylefile
-    kpsetype = '.tex'
-  elif type == 'sty':
-    outfile = sty_stylefile
-    kpsetype = '.tex'
-  elif type == 'bst':
-    outfile = bst_stylefile
-    kpsetype = '.bst'
-  elif type == 'bib':
-    outfile = bib_files
-    kpsetype = '.bib'
+    print "Indexing files of type", type
+    if type == 'cls':
+        outfile = cls_stylefile
+        kpsetype = '.tex'
+    elif type == 'sty':
+        outfile = sty_stylefile
+        kpsetype = '.tex'
+    elif type == 'bst':
+        outfile = bst_stylefile
+        kpsetype = '.bst'
+    elif type == 'bib':
+        outfile = bib_files
+        kpsetype = '.bib'
 
-  dirs = cmdOutput('kpsewhich --show-path=' + kpsetype).replace('!!', '').strip()
-  # remove excessive //
-  dirs = re.sub('//+', '/', dirs)
-  
-  file_ext = '.' + type
-  out = open(outfile, 'w')
-  for dir in dirs.split(path_sep):
-    # for each valid directory
-    if os.path.isdir(dir):
-      # walk down the file hierarchy
-      for root,path,files in os.walk(dir):
-        # check file type
-        for file in files:
-          if len(file) > 4 and file[-4:] == file_ext:
-            # force the use of / since miktex uses / even under windows
-            print >> out, root.replace('\\', '/') + '/' + file
-  out.close()
+    dirs = cmdOutput('kpsewhich --show-path=' + kpsetype).replace('!!', '').strip()
+    # remove excessive //
+    dirs = re.sub('//+', '/', dirs)
+    
+    file_ext = '.' + type
+    out = open(outfile, 'w')
+    for dir in dirs.split(path_sep):
+        # for each valid directory
+        if not os.path.isdir(dir):
+            continue
+        # walk down the file hierarchy
+        for root,path,files in os.walk(dir):
+            # check file type
+            for file in files:
+                if len(file) > 4 and file[-4:] == file_ext:
+                    # force the use of / since miktex uses / even under windows
+                    print >> out, root.replace('\\', '/') + '/' + file
+    out.close()
 
index a71af439996fd3d8e021c8f225594684eea3e503..acc0853321b5d3286e7c59a0d52771cdcf28c077 100644 (file)
@@ -19,6 +19,6 @@
 # converts an image from $1 to $2 format
 import os, sys
 if os.system(r'convert -depth 8 "%s" "%s"' % (sys.argv[1], sys.argv[2])) != 0:
-  print >> sys.stderr, sys.argv[0], 'ERROR'
-  print >> sys.stderr, 'Execution of "convert" failed.'
-  sys.exit(1)
+    print >> sys.stderr, sys.argv[0], 'ERROR'
+    print >> sys.stderr, 'Execution of "convert" failed.'
+    sys.exit(1)