]> git.lyx.org Git - features.git/commitdiff
More bugs fixes to scons system, and finer target control.
authorBo Peng <bpeng@lyx.org>
Thu, 11 May 2006 17:20:25 +0000 (17:20 +0000)
committerBo Peng <bpeng@lyx.org>
Thu, 11 May 2006 17:20:25 +0000 (17:20 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13834 a592a061-630c-0410-9148-cb99ea01b6c8

development/scons/SConscript
development/scons/SConstruct

index 607826484c66946b0539a963e0309e2ce9e20239..89718110c6d7eae9ecc062692d7db9fdc9955cf1 100644 (file)
@@ -12,10 +12,29 @@ import os, sys
 
 Import('env')
 
+targets = env['BUILD_TARGETS']
+
+if targets == [] or 'lyx' in targets:
+  targets += ['supports', 'mathed', 'insets', 'frontends', \
+    'graphics', 'controllers', env['frontend'], 'lyx']
+  if env['INCLUDED_BOOST']:
+    targets.append('boost')
+elif 'client' in targets:
+  targets.append('supports')
+  if env['INCLUDED_BOOST']:
+    targets.append('boost')
+elif 'tex2lyx' in targets:
+  targets.append('supports')
+  if env['INCLUDED_BOOST']:
+    targets.append('boost')
+
+# unique target in the set (then I will need python 2.4)
+#targets = set(targets)
+
 #
 # boost libraries
 #
-if env['INCLUDED_BOOST']:
+if env['INCLUDED_BOOST'] or 'boost' in targets:
   env.BuildDir('$BUILDDIR/boost', '$TOP_SRC_DIR/boost/libs', duplicate = 0)
   
   boostenv = env.Copy()
@@ -75,7 +94,10 @@ if env['INCLUDED_BOOST']:
       zlib.cpp
     ''') ]
   )
-  
+  Alias('boost', filesystem)
+  Alias('boost', regex)
+  Alias('boost', signals)
+  Alias('boost', iostreams)
   
 #
 # Now, src code under src/
@@ -87,305 +109,324 @@ env.BuildDir('$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
 # src/support 
 #
 
-print "Processing files in src/support"
-
-env.Append(CPPPATH = ['.'])
-
-env['SUBST_KEYS'] = ['LYX_DIR', 'LOCALEDIR', 'TOP_SRCDIR', 'PROGRAM_SUFFIX']
-env.substFile('$BUILDDIR/common/support/package.C', '$TOP_SRC_DIR/src/support/package.C.in')
-
-supports = env.StaticLibrary(
-  target = '$LOCALLIBPATH/supports',
-  source = ['$BUILDDIR/common/support/%s' % x for x in Split('''
-    FileMonitor.C
-    abort.C
-    chdir.C
-    convert.C
-    copy.C
-    environment.C
-    filefilterlist.C
-    filename.C
-    filetools.C
-    forkedcall.C
-    forkedcallqueue.C
-    forkedcontr.C
-    fs_extras.C
-    getcwd.C
-    kill.C
-    lstrings.C
-    lyxtime.C
-    lyxsum.C
-    mkdir.C
-    os.C
-    path.C
-    package.C
-    rename.C
-    socktools.C
-    systemcall.C
-    tempname.C
-    userinfo.C
-    unlink.C
-  ''')]
-)
+if 'supports' in targets:
+  print "Processing files in src/support"
+  
+  env.Append(CPPPATH = ['.'])
+  
+  env['SUBST_KEYS'] = ['LYX_DIR', 'LOCALEDIR', 'TOP_SRCDIR', 'PROGRAM_SUFFIX']
+  env.substFile('$BUILDDIR/common/support/package.C', '$TOP_SRC_DIR/src/support/package.C.in')
+  
+  supports = env.StaticLibrary(
+    target = '$LOCALLIBPATH/supports',
+    source = ['$BUILDDIR/common/support/%s' % x for x in Split('''
+      FileMonitor.C
+      abort.C
+      chdir.C
+      convert.C
+      copy.C
+      environment.C
+      filefilterlist.C
+      filename.C
+      filetools.C
+      forkedcall.C
+      forkedcallqueue.C
+      forkedcontr.C
+      fs_extras.C
+      getcwd.C
+      kill.C
+      lstrings.C
+      lyxtime.C
+      lyxsum.C
+      mkdir.C
+      os.C
+      path.C
+      package.C
+      rename.C
+      socktools.C
+      systemcall.C
+      tempname.C
+      userinfo.C
+      unlink.C
+    ''')]
+  )
+  Alias('supports', supports)
 
 #
 # src/mathed
 #
+  
+if 'mathed' in targets:
+  print "Processing files in src/mathed"
+  
+  mathed = env.StaticLibrary(
+    target = '$LOCALLIBPATH/mathed',
+    source = ["$BUILDDIR/common/mathed/%s" % x for x in Split('''
+      textpainter.C
+      math_amsarrayinset.C
+      math_arrayinset.C
+      math_atom.C
+      math_autocorrect.C
+      math_biginset.C
+      math_binominset.C
+      math_boldsymbolinset.C
+      math_boxinset.C
+      math_boxedinset.C
+      math_braceinset.C
+      math_casesinset.C
+      math_charinset.C
+      math_colorinset.C
+      math_commentinset.C
+      math_data.C
+      math_decorationinset.C
+      math_deliminset.C
+      math_dfracinset.C
+      math_diffinset.C
+      math_diminset.C
+      math_dotsinset.C
+      math_envinset.C
+      math_extern.C
+      math_exfuncinset.C
+      math_exintinset.C
+      math_factory.C
+      math_fboxinset.C
+      math_frameboxinset.C
+      math_fontinset.C
+      math_fontoldinset.C
+      math_fracinset.C
+      math_fracbase.C
+      math_gridinset.C
+      math_hullinset.C
+      math_inset.C
+      math_kerninset.C
+      math_lefteqninset.C
+      math_liminset.C
+      math_macro.C
+      math_macroarg.C
+      math_macrotemplate.C
+      math_macrotable.C
+      math_makeboxinset.C
+      math_mathmlstream.C
+      math_matrixinset.C
+      math_nestinset.C
+      math_numberinset.C
+      math_oversetinset.C
+      math_parinset.C
+      math_parser.C
+      math_phantominset.C
+      math_rootinset.C
+      math_scriptinset.C
+      math_sizeinset.C
+      math_spaceinset.C
+      math_splitinset.C
+      math_sqrtinset.C
+      math_stackrelinset.C
+      math_streamstr.C
+      math_stringinset.C
+      math_substackinset.C
+      math_support.C
+      math_symbolinset.C
+      math_tabularinset.C
+      math_tfracinset.C
+      math_unknowninset.C
+      math_undersetinset.C
+      math_xarrowinset.C
+      math_xymatrixinset.C
+      command_inset.C
+      ref_inset.C
+    ''')]
+  )
+  Alias('mathed', mathed)
 
-print "Processing files in src/mathed"
-
-mathed = env.StaticLibrary(
-  target = '$LOCALLIBPATH/mathed',
-  source = ["$BUILDDIR/common/mathed/%s" % x for x in Split('''
-    textpainter.C
-    math_amsarrayinset.C
-    math_arrayinset.C
-    math_atom.C
-    math_autocorrect.C
-    math_biginset.C
-    math_binominset.C
-    math_boldsymbolinset.C
-    math_boxinset.C
-    math_boxedinset.C
-    math_braceinset.C
-    math_casesinset.C
-    math_charinset.C
-    math_colorinset.C
-    math_commentinset.C
-    math_data.C
-    math_decorationinset.C
-    math_deliminset.C
-    math_dfracinset.C
-    math_diffinset.C
-    math_diminset.C
-    math_dotsinset.C
-    math_envinset.C
-    math_extern.C
-    math_exfuncinset.C
-    math_exintinset.C
-    math_factory.C
-    math_fboxinset.C
-    math_frameboxinset.C
-    math_fontinset.C
-    math_fontoldinset.C
-    math_fracinset.C
-    math_fracbase.C
-    math_gridinset.C
-    math_hullinset.C
-    math_inset.C
-    math_kerninset.C
-    math_lefteqninset.C
-    math_liminset.C
-    math_macro.C
-    math_macroarg.C
-    math_macrotemplate.C
-    math_macrotable.C
-    math_makeboxinset.C
-    math_mathmlstream.C
-    math_matrixinset.C
-    math_nestinset.C
-    math_numberinset.C
-    math_oversetinset.C
-    math_parinset.C
-    math_parser.C
-    math_phantominset.C
-    math_rootinset.C
-    math_scriptinset.C
-    math_sizeinset.C
-    math_spaceinset.C
-    math_splitinset.C
-    math_sqrtinset.C
-    math_stackrelinset.C
-    math_streamstr.C
-    math_stringinset.C
-    math_substackinset.C
-    math_support.C
-    math_symbolinset.C
-    math_tabularinset.C
-    math_tfracinset.C
-    math_unknowninset.C
-    math_undersetinset.C
-    math_xarrowinset.C
-    math_xymatrixinset.C
-    command_inset.C
-    ref_inset.C
-  ''')]
-)
-
-#
-# src/insets
-#
-
-print "Processing files in src/insets"
-
-insets = env.StaticLibrary(
-  target = '$LOCALLIBPATH/insets',
-  source = ["$BUILDDIR/common/insets/%s" % x for x in Split('''
-    mailinset.C
-    ExternalSupport.C
-    ExternalTemplate.C
-    ExternalTransforms.C
-    render_button.C
-    render_graphic.C
-    render_preview.C
-    inset.C
-    insetbase.C
-    insetbibitem.C
-    insetbibtex.C
-    insetbox.C
-    insetbranch.C
-    insetcaption.C
-    insetcharstyle.C
-    insetcite.C
-    insetcollapsable.C
-    insetcommand.C
-    insetcommandparams.C
-    insetenv.C
-    insetert.C
-    insetexternal.C
-    insetfloat.C
-    insetfloatlist.C
-    insetfoot.C
-    insetfootlike.C
-    insetgraphicsParams.C
-    insetgraphics.C
-    insethfill.C
-    insetinclude.C
-    insetindex.C
-    insetlabel.C
-    insetlatexaccent.C
-    insetline.C
-    insetmarginal.C
-    insetnewline.C
-    insetnote.C
-    insetoptarg.C
-    insetpagebreak.C
-    insetquotes.C
-    insetref.C
-    insetspace.C
-    insetspecialchar.C
-    insettabular.C
-    insettext.C
-    insettoc.C
-    inseturl.C
-    insetvspace.C
-    insetwrap.C
-  ''')]
-)
-
-
-#
-# src/frontends
-#
-
-print "Processing files in src/frontends"
-
-frontends = env.StaticLibrary(
-  target = '$LOCALLIBPATH/frontends',
-  source = ["$BUILDDIR/common/frontends/%s" % x for x in Split('''
-    Alert.C
-    Dialogs.C
-    LyXView.C
-    Painter.C
-    Timeout.C
-    Toolbars.C
-    guiapi.C
-    nullpainter.C
-    screen.C
-  ''')]
-)
-
-
-#
-# src/graphics
-#
-
-print "Processing files in src/graphics"
-
-graphics = env.StaticLibrary(
-  target = '$LOCALLIBPATH/graphics',
-  source = ["$BUILDDIR/common/graphics/%s" % x for x in Split('''
-    GraphicsCache.C
-    GraphicsCacheItem.C
-    GraphicsConverter.C
-    GraphicsImage.C
-    GraphicsLoader.C
-    GraphicsParams.C
-    LoaderQueue.C
-    GraphicsTypes.C
-    PreviewImage.C
-    PreviewLoader.C
-    Previews.C
-  ''')]
-)
 
-#
-# src/frontends/controllers
-#
+if 'insets' in targets:
+  #
+  # src/insets
+  #
+  
+  print "Processing files in src/insets"
+  
+  insets = env.StaticLibrary(
+    target = '$LOCALLIBPATH/insets',
+    source = ["$BUILDDIR/common/insets/%s" % x for x in Split('''
+      mailinset.C
+      ExternalSupport.C
+      ExternalTemplate.C
+      ExternalTransforms.C
+      render_button.C
+      render_graphic.C
+      render_preview.C
+      inset.C
+      insetbase.C
+      insetbibitem.C
+      insetbibtex.C
+      insetbox.C
+      insetbranch.C
+      insetcaption.C
+      insetcharstyle.C
+      insetcite.C
+      insetcollapsable.C
+      insetcommand.C
+      insetcommandparams.C
+      insetenv.C
+      insetert.C
+      insetexternal.C
+      insetfloat.C
+      insetfloatlist.C
+      insetfoot.C
+      insetfootlike.C
+      insetgraphicsParams.C
+      insetgraphics.C
+      insethfill.C
+      insetinclude.C
+      insetindex.C
+      insetlabel.C
+      insetlatexaccent.C
+      insetline.C
+      insetmarginal.C
+      insetnewline.C
+      insetnote.C
+      insetoptarg.C
+      insetpagebreak.C
+      insetquotes.C
+      insetref.C
+      insetspace.C
+      insetspecialchar.C
+      insettabular.C
+      insettext.C
+      insettoc.C
+      inseturl.C
+      insetvspace.C
+      insetwrap.C
+    ''')]
+  )
+  
+if 'frontends' in targets:
+  #
+  # src/frontends
+  #
+  
+  print "Processing files in src/frontends"
+  
+  frontends = env.StaticLibrary(
+    target = '$LOCALLIBPATH/frontends',
+    source = ["$BUILDDIR/common/frontends/%s" % x for x in Split('''
+      Alert.C
+      Dialogs.C
+      LyXView.C
+      Painter.C
+      Timeout.C
+      Toolbars.C
+      guiapi.C
+      nullpainter.C
+      screen.C
+    ''')]
+  )
+  Alias('frontends', frontends)
 
-print "Processing files in src/frontends/controllers"
 
-controllers = env.StaticLibrary(
-  target = '$LOCALLIBPATH/controllers',
-  source = ["$BUILDDIR/common/frontends/controllers/%s" % x for x in Split('''
-    Dialog.C
-    Kernel.C
-    biblio.C
-    character.C
-    frnt_lang.C
-    tex_helpers.C
-    BCView.C
-    ButtonController.C
-    ButtonPolicies.C
-    ControlAboutlyx.C
-    ControlBibtex.C
-    ControlBox.C
-    ControlBranch.C
-    ControlCharacter.C
-    ControlChanges.C
-    ControlCitation.C
-    ControlCommand.C
-    ControlCommandBuffer.C
-    ControlDocument.C
-    ControlErrorList.C
-    ControlERT.C
-    ControlExternal.C
-    ControlFloat.C
-    ControlGraphics.C
-    ControlInclude.C
-    ControlLog.C
-    ControlViewSource.C
-    ControlMath.C
-    ControlNote.C
-    ControlParagraph.C
-    ControlPreamble.C
-    ControlPrefs.C
-    ControlPrint.C
-    ControlRef.C
-    ControlSearch.C
-    ControlSendto.C
-    ControlShowFile.C
-    ControlSpellchecker.C
-    ControlTabular.C
-    ControlTabularCreate.C
-    ControlTexinfo.C
-    ControlThesaurus.C
-    ControlToc.C
-    ControlVSpace.C
-    ControlWrap.C
-    helper_funcs.C
-    helper_funcs.h
-  ''')]
+if 'graphics' in targets:  
+  #
+  # src/graphics
+  #
+  
+  print "Processing files in src/graphics"
+  
+  graphics = env.StaticLibrary(
+    target = '$LOCALLIBPATH/graphics',
+    source = ["$BUILDDIR/common/graphics/%s" % x for x in Split('''
+      GraphicsCache.C
+      GraphicsCacheItem.C
+      GraphicsConverter.C
+      GraphicsImage.C
+      GraphicsLoader.C
+      GraphicsParams.C
+      LoaderQueue.C
+      GraphicsTypes.C
+      PreviewImage.C
+      PreviewLoader.C
+      Previews.C
+    ''')]
   )
+  Alias('graphics', graphics)
 
 
+if 'controllers' in targets:
+  #
+  # src/frontends/controllers
+  #
+  
+  print "Processing files in src/frontends/controllers"
+  
+  controllers = env.StaticLibrary(
+    target = '$LOCALLIBPATH/controllers',
+    source = ["$BUILDDIR/common/frontends/controllers/%s" % x for x in Split('''
+      Dialog.C
+      Kernel.C
+      biblio.C
+      character.C
+      frnt_lang.C
+      tex_helpers.C
+      BCView.C
+      ButtonController.C
+      ButtonPolicies.C
+      ControlAboutlyx.C
+      ControlBibtex.C
+      ControlBox.C
+      ControlBranch.C
+      ControlCharacter.C
+      ControlChanges.C
+      ControlCitation.C
+      ControlCommand.C
+      ControlCommandBuffer.C
+      ControlDocument.C
+      ControlErrorList.C
+      ControlERT.C
+      ControlExternal.C
+      ControlFloat.C
+      ControlGraphics.C
+      ControlInclude.C
+      ControlLog.C
+      ControlViewSource.C
+      ControlMath.C
+      ControlNote.C
+      ControlParagraph.C
+      ControlPreamble.C
+      ControlPrefs.C
+      ControlPrint.C
+      ControlRef.C
+      ControlSearch.C
+      ControlSendto.C
+      ControlShowFile.C
+      ControlSpellchecker.C
+      ControlTabular.C
+      ControlTabularCreate.C
+      ControlTexinfo.C
+      ControlThesaurus.C
+      ControlToc.C
+      ControlVSpace.C
+      ControlWrap.C
+      helper_funcs.C
+      helper_funcs.h
+    ''')]
+    )
+  Alias('controllers', controllers)
+
 #
 # src/frontend/qt3/4
 #
-
-frontend = env['frontend']
-env.BuildDir('$BUILDDIR/$frontend', '$TOP_SRC_DIR/src/frontend/$frontend', duplicate = 0)
-
+if env['frontend'] in targets:
+  frontend = env['frontend']
+  env.BuildDir('$BUILDDIR/$frontend', '$TOP_SRC_DIR/src/frontend/$frontend', duplicate = 0)
+else:
+  # frontend is qt3, but specify target qt4, OK
+  if 'qt3' in targets:
+    frontned = 'qt3'
+  elif 'qt4' in targets:
+    frontend = 'qt4'
+  else:
+    frontend = None
+  
 if frontend == 'qt3':
   print "Processing files in src/frontends/qt3"
 
@@ -397,11 +438,11 @@ if frontend == 'qt3':
   qt3env.Append(CPPPATH = [
     '$BUILDDIR/common',
     '$BUILDDIR/common/frontends',
+    '$BUILDDIR/common/frontends/qt3',
     '$BUILDDIR/common/images',
     '$BUILDDIR/common/frontends/controllers',
     '$BUILDDIR/common/frontends/qt3',
-    '$QT_INC_DIR',
-    '.']
+    '$QT_INC_DIR']
   )
   
   qt3_ui_files = Split('''
@@ -543,7 +584,7 @@ if frontend == 'qt3':
   # file extension from .C to .cpp
   qt3_moced_files = []
   if os.name == 'nt' or sys.platform == 'cygwin':
-    qt3_moced_files = [qt3env.Moc('$BUILDDIR/common/frontends/qt3/'+x.replace('.C', '.h')) for x in qt3_moc_files]
+    qt3_moced_files = [qt3env.Moc(x.replace('.C', '.h')) for x in qt3_moc_files]
   
   qt3 = qt3env.StaticLibrary(
     target = '$LOCALLIBPATH/qt3',
@@ -612,6 +653,9 @@ if frontend == 'qt3':
     qt3_moc_files + qt3_moced_files +
     ['$BUILDDIR/common/frontends/qt3/ui/' + x for x in qt3_ui_files]
   )
+  Alias('qt3', qt3)
+
+
 elif frontend == 'qt4':
   print "Processing files in src/frontends/qt4"
 
@@ -623,9 +667,8 @@ elif frontend == 'qt4':
   # NOTE: I have to patch qt4.py since it does not automatically
   # process .C file!!! (add to cxx_suffixes )
   #
-  if frontend == 'qt4':
-    qt4env.Tool('qt4', [env['SCONS_DIR']])
-    qt4env.EnableQt4Modules(env['QT_LIB'], debug = False)
+  qt4env.Tool('qt4', [env['SCONS_DIR']])
+  qt4env.EnableQt4Modules(env['QT_LIB'], debug = False)
   
   qt4env.Append(CPPPATH = [
     '$BUILDDIR/common',
@@ -860,234 +903,239 @@ elif frontend == 'qt4':
     source = ["$BUILDDIR/common/frontends/qt4/%s" % x for x in qt4_source_files] + \
        ["$BUILDDIR/common/frontends/qt4/%s" % x for x in qt4_moc_files]
    )
+  Alias('qt4', qt4)
 
 
-#
-# src/client
-#
-
-env.BuildDir('$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
-
-print "Processing files in src/client"
-
-lyxclient = env.Program(
-  target = '$BUILDDIR/common/client/lyxclient',
-  LIBS = env['BOOST_LIBRARIES'] + env['socket_libs'] + ['supports'],
-  source = ["$BUILDDIR/common/client/%s" % x for x in Split('''
-    boost.C
-    client.C
-    debug.C
-    gettext.C
-    messages.C
-  ''')]
-)
-env.fileCopy('$BUILDDIR/lyxclient', '$BUILDDIR/common/client/lyxclient')
-Alias('lyxclient', lyxclient)
-#
-# tex2lyx
-#
-print "Processing files in src/tex2lyx"
-
-tex2lyx_env = env.Copy()
-# the order is important here.
-tex2lyx_env.Prepend(CPPPATH = ['$BUILDDIR/common/tex2lyx'])
-tex2lyx_env.Append(LIBPATH = ['#$LOCALLIBPATH'])
+if 'client' in targets:
+  #
+  # src/client
+  #
+  env.BuildDir('$BUILDDIR/common', '$TOP_SRC_DIR/src', duplicate = 0)
+  
+  print "Processing files in src/client"
+  
+  client = env.Program(
+    target = '$BUILDDIR/common/client/lyxclient',
+    LIBS = env['BOOST_LIBRARIES'] + env['socket_libs'] + ['supports'],
+    source = ["$BUILDDIR/common/client/%s" % x for x in Split('''
+      boost.C
+      client.C
+      debug.C
+      gettext.C
+      messages.C
+    ''')]
+  )
+  env.fileCopy('$BUILDDIR/lyxclient', '$BUILDDIR/common/client/lyxclient')
+  Alias('client', client)
 
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/FloatList.C', '$TOP_SRC_DIR/src/FloatList.C')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/Floating.C', '$TOP_SRC_DIR/src/Floating.C')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/counters.C', '$TOP_SRC_DIR/src/counters.C')
-# for some reason I do not know, I have to copy the header files as well.
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlayout.h', '$TOP_SRC_DIR/src/lyxlayout.h')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlayout.C', '$TOP_SRC_DIR/src/lyxlayout.C')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxtextclass.h', '$TOP_SRC_DIR/src/lyxtextclass.h')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxtextclass.C', '$TOP_SRC_DIR/src/lyxtextclass.C')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlex.C', '$TOP_SRC_DIR/src/lyxlex.C')
-tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlex_pimpl.C', '$TOP_SRC_DIR/src/lyxlex_pimpl.C')
 
-tex2lyx = tex2lyx_env.Program(
-  target = '$BUILDDIR/common/tex2lyx/tex2lyx',
-  LIBS = ['supports'] + env['BOOST_LIBRARIES'] + env['SYSTEM_LIBS'],
-  source = ["$BUILDDIR/common/tex2lyx/%s" % x for x in Split('''
+if 'tex2lyx' in targets:
+  #
+  # tex2lyx
+  #
+  print "Processing files in src/tex2lyx"
+  
+  tex2lyx_env = env.Copy()
+  # the order is important here.
+  tex2lyx_env.Prepend(CPPPATH = ['$BUILDDIR/common/tex2lyx'])
+  tex2lyx_env.Append(LIBPATH = ['#$LOCALLIBPATH'])
+  
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/FloatList.C', '$TOP_SRC_DIR/src/FloatList.C')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/Floating.C', '$TOP_SRC_DIR/src/Floating.C')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/counters.C', '$TOP_SRC_DIR/src/counters.C')
+  # for some reason I do not know, I have to copy the header files as well.
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlayout.h', '$TOP_SRC_DIR/src/lyxlayout.h')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlayout.C', '$TOP_SRC_DIR/src/lyxlayout.C')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxtextclass.h', '$TOP_SRC_DIR/src/lyxtextclass.h')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxtextclass.C', '$TOP_SRC_DIR/src/lyxtextclass.C')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlex.C', '$TOP_SRC_DIR/src/lyxlex.C')
+  tex2lyx_env.fileCopy('$BUILDDIR/common/tex2lyx/lyxlex_pimpl.C', '$TOP_SRC_DIR/src/lyxlex_pimpl.C')
+  
+  tex2lyx = tex2lyx_env.Program(
+    target = '$BUILDDIR/common/tex2lyx/tex2lyx',
+    LIBS = ['supports'] + env['BOOST_LIBRARIES'] + env['SYSTEM_LIBS'],
+    source = ["$BUILDDIR/common/tex2lyx/%s" % x for x in Split('''
+      FloatList.C
+      Floating.C
+      counters.C
+      lyxlayout.C
+      lyxtextclass.C
+      lyxlex.C
+      lyxlex_pimpl.C
+      boost.C
+      context.C
+      gettext.C
+      lengthcommon.C
+      lyxfont.C
+      texparser.C
+      tex2lyx.C
+      preamble.C
+      math.C
+      table.C
+      text.C
+    ''')]
+  )
+  env.fileCopy('$BUILDDIR/tex2lyx', '$BUILDDIR/common/tex2lyx/tex2lyx')
+  Alias('tex2lyx', tex2lyx)
+  #
+  # src/
+  #
+  
+if 'lyx' in targets:
+  print "Processing files in src"
+  
+  env['SUBST_KEYS'] = ['PACKAGE_VERSION', 'VERSION_INFO']
+  env.substFile('$BUILDDIR/common/version.C', '$TOP_SRC_DIR/src/version.C.in')
+  
+  lyx_source = Split('''
+    Bidi.C
+    BufferView.C
+    BufferView_pimpl.C
+    Bullet.C
+    BranchList.C
+    Chktex.C
+    Color.C
+    CutAndPaste.C
+    DepTable.C
     FloatList.C
     Floating.C
-    counters.C
-    lyxlayout.C
-    lyxtextclass.C
-    lyxlex.C
-    lyxlex_pimpl.C
+    FontIterator.C
+    FuncStatus.C
+    InsetList.C
+    LColor.C
+    LaTeX.C
+    LaTeXFeatures.C
+    LyXAction.C
+    MenuBackend.C
+    ParagraphParameters.C
+    PrinterParams.C
+    Spacing.C
+    Thesaurus.C
+    ToolbarBackend.C
+    author.C
     boost.C
-    context.C
+    box.C
+    buffer.C
+    buffer_funcs.C
+    bufferlist.C
+    bufferparams.C
+    bufferview_funcs.C
+    changes.C
+    chset.C
+    converter.C
+    counters.C
+    coordcache.C
+    cursor.C
+    cursor_slice.C
+    debug.C
+    dimension.C
+    dociterator.C
+    encoding.C
+    errorlist.C
+    exporter.C
     gettext.C
+    factory.C
+    format.C
+    funcrequest.C
+    graph.C
+    importer.C
+    intl.C
+    insetiterator.C
+    kbmap.C
+    kbsequence.C
+    language.C
+    session.C
     lengthcommon.C
+    lyx_cb.C
+    lyx_main.C
+    lyx_sty.C
     lyxfont.C
-    texparser.C
-    tex2lyx.C
-    preamble.C
-    math.C
-    table.C
+    lyxfind.C
+    lyxfunc.C
+    lyxgluelength.C
+    lyxlayout.C
+    lyxlength.C
+    lyxlex.C
+    lyxlex_pimpl.C
+    lyxrc.C
+    lyxrow.C
+    lyxrow_funcs.C
+    lyxserver.C
+    lyxsocket.C
+    lyxtextclass.C
+    lyxtextclasslist.C
+    lyxvc.C
+    messages.C
+    metricsinfo.C
+    mover.C
+    output.C
+    outputparams.C
+    output_docbook.C
+    output_latex.C
+    output_linuxdoc.C
+    output_plaintext.C
+    paragraph.C
+    paragraph_funcs.C
+    paragraph_pimpl.C
+    pariterator.C
+    SpellBase.C
+    rowpainter.C
+    sgml.C
+    tabular.C
+    tex-accent.C
+    tex-strings.C
+    texrow.C
     text.C
-  ''')]
-)
-env.fileCopy('$BUILDDIR/tex2lyx', '$BUILDDIR/common/tex2lyx/tex2lyx')
-Alias('tex2lyx', tex2lyx)
-#
-# src/
-#
-
-print "Processing files in src"
-
-env['SUBST_KEYS'] = ['PACKAGE_VERSION', 'VERSION_INFO']
-env.substFile('$BUILDDIR/common/version.C', '$TOP_SRC_DIR/src/version.C.in')
-
-lyx_source = Split('''
-  Bidi.C
-  BufferView.C
-  BufferView_pimpl.C
-  Bullet.C
-  BranchList.C
-  Chktex.C
-  Color.C
-  CutAndPaste.C
-  DepTable.C
-  FloatList.C
-  Floating.C
-  FontIterator.C
-  FuncStatus.C
-  InsetList.C
-  LColor.C
-  LaTeX.C
-  LaTeXFeatures.C
-  LyXAction.C
-  MenuBackend.C
-  ParagraphParameters.C
-  PrinterParams.C
-  Spacing.C
-  Thesaurus.C
-  ToolbarBackend.C
-  author.C
-  boost.C
-  box.C
-  buffer.C
-  buffer_funcs.C
-  bufferlist.C
-  bufferparams.C
-  bufferview_funcs.C
-  changes.C
-  chset.C
-  converter.C
-  counters.C
-  coordcache.C
-  cursor.C
-  cursor_slice.C
-  debug.C
-  dimension.C
-  dociterator.C
-  encoding.C
-  errorlist.C
-  exporter.C
-  gettext.C
-  factory.C
-  format.C
-  funcrequest.C
-  graph.C
-  importer.C
-  intl.C
-  insetiterator.C
-  kbmap.C
-  kbsequence.C
-  language.C
-  session.C
-  lengthcommon.C
-  lyx_cb.C
-  lyx_main.C
-  lyx_sty.C
-  lyxfont.C
-  lyxfind.C
-  lyxfunc.C
-  lyxgluelength.C
-  lyxlayout.C
-  lyxlength.C
-  lyxlex.C
-  lyxlex_pimpl.C
-  lyxrc.C
-  lyxrow.C
-  lyxrow_funcs.C
-  lyxserver.C
-  lyxsocket.C
-  lyxtextclass.C
-  lyxtextclasslist.C
-  lyxvc.C
-  messages.C
-  metricsinfo.C
-  mover.C
-  output.C
-  outputparams.C
-  output_docbook.C
-  output_latex.C
-  output_linuxdoc.C
-  output_plaintext.C
-  paragraph.C
-  paragraph_funcs.C
-  paragraph_pimpl.C
-  pariterator.C
-  SpellBase.C
-  rowpainter.C
-  sgml.C
-  tabular.C
-  tex-accent.C
-  tex-strings.C
-  texrow.C
-  text.C
-  text2.C
-  text3.C
-  TocBackend.C
-  toc.C
-  trans.C
-  trans_mgr.C
-  undo.C
-  vc-backend.C
-  version.C
-  vspace.C
-  main.C
-''')
-
-if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
-  lyx_source.append('aspell.C')
-elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
-  lyx_source.append('pspell.C')
-elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
-  lyx_source.append('ispell.C')
-
-#
-# Build lyx with given frontend
-#
-lyx = env.Program(
-  target = '$BUILDDIR/$frontend/lyx',
-  source = ["$BUILDDIR/common/%s" % x for x in lyx_source],
-  LIBS = [
-    'mathed',
-    'insets',
-    'frontends',
-    env['frontend'],
-    'controllers',
-    'graphics',
-    'supports'] +
-    env['BOOST_LIBRARIES'] +
-    env['EXTRA_LIBS'] +
-    env['SYSTEM_LIBS']
-)
-Alias('lyx', lyx)
-
-env.fileCopy('$BUILDDIR/lyx$frontend', '$BUILDDIR/$frontend/lyx')
-
-# other targets include client, tex2lyx
-Default('lyx')
-
-Alias('install', env.installProg(Dir(env['BIN_DIR']), 
-  [lyx, tex2lyx, lyxclient]))
-## Alias('install', env.installProg(Dir(os.path.join(env['PREFIX'], 'share/lyx/')), 
-##   [Dir(env.subst('$TOP_SRC_DIR/lib/') + dir) for dir in ['images', 'layouts', 'scripts', 'templates', \
-##   'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc',  'ui'] ] + \
-##   [File(env.subst('$TOP_SRC_DIR/lib/') + file) for file in ['configure.py', 'encodings', 'chkconfig.ltx', 'CREDITS', \
-##   'external_templates', 'symbols', 'languages', 'lyxrc.example', 'syntax.default']]))
+    text2.C
+    text3.C
+    TocBackend.C
+    toc.C
+    trans.C
+    trans_mgr.C
+    undo.C
+    vc-backend.C
+    version.C
+    vspace.C
+    main.C
+  ''')
+  
+  if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
+    lyx_source.append('aspell.C')
+  elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
+    lyx_source.append('pspell.C')
+  elif env.has_key('USE_ISPELL') and env['USE_ISPELL']:
+    lyx_source.append('ispell.C')
+  
+  #
+  # Build lyx with given frontend
+  #
+  lyx = env.Program(
+    target = '$BUILDDIR/$frontend/lyx',
+    source = ["$BUILDDIR/common/%s" % x for x in lyx_source],
+    LIBS = [
+      'mathed',
+      'insets',
+      'frontends',
+      env['frontend'],
+      'controllers',
+      'graphics',
+      'supports'] +
+      env['BOOST_LIBRARIES'] +
+      env['EXTRA_LIBS'] +
+      env['SYSTEM_LIBS']
+  )
+  Alias('lyx', lyx)
+  
+if 'install' in targets:
+  env.fileCopy('$BUILDDIR/lyx$frontend', '$BUILDDIR/$frontend/lyx')
+  
+  # other targets include client, tex2lyx
+  Default('lyx')
+  
+  Alias('install', env.installProg(Dir(env['BIN_DIR']), 
+    [lyx, tex2lyx, lyxclient]))
+  ## Alias('install', env.installProg(Dir(os.path.join(env['PREFIX'], 'share/lyx/')), 
+  ##   [Dir(env.subst('$TOP_SRC_DIR/lib/') + dir) for dir in ['images', 'layouts', 'scripts', 'templates', \
+  ##   'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc',  'ui'] ] + \
+  ##   [File(env.subst('$TOP_SRC_DIR/lib/') + file) for file in ['configure.py', 'encodings', 'chkconfig.ltx', 'CREDITS', \
+  ##   'external_templates', 'symbols', 'languages', 'lyxrc.example', 'syntax.default']]))
index 2c0a16c509c3c994bf9c40ccdbb35dcc4351b512..3e546d7c9c1f56ce93dcc546274124aa9c07ce37 100644 (file)
@@ -885,7 +885,6 @@ opts.Save('options.cache', env)
 Help(opts.GenerateHelpText(env))
 
 
-
 #----------------------------------------------------------
 # Start building
 #----------------------------------------------------------
@@ -893,6 +892,8 @@ Export('env')
 
 SConsignFile(os.path.abspath('%s/sconsign' % env['BUILDDIR']))
 
+env['BUILD_TARGETS'] = BUILD_TARGETS
+
 print "Building all targets recursively"
 
 env.SConscript('$SCONS_DIR/SConscript', duplicate = 0)