1. SCons
  2. Core
  3. SCons

Commits

Stefan Zimmermann  committed b34785a Merge

Merged with [default]

  • Participants
  • Parent commits 935ca6a, fb3fa7f
  • Branches python3-port

Comments (0)

Files changed (643)

File QMTest/TestCmd.py

View file
  • Ignore whitespace
 PIPE = subprocess.PIPE
 
 if subprocess.mswindows:
-    from win32file import ReadFile, WriteFile
-    from win32pipe import PeekNamedPipe
+    try:
+        from win32file import ReadFile, WriteFile
+        from win32pipe import PeekNamedPipe
+    except ImportError:
+        # If PyWin32 is not available, try ctypes instead
+        # XXX These replicate _just_enough_ PyWin32 behaviour for our purposes
+        import ctypes; from ctypes.wintypes import DWORD
+        def ReadFile(hFile, bufSize, ol=None):
+            assert ol is None
+            lpBuffer = ctypes.create_string_buffer(bufSize)
+            bytesRead = DWORD()
+            bErr = ctypes.windll.kernel32.ReadFile( 
+                    hFile, lpBuffer, bufSize, ctypes.byref(bytesRead), ol)
+            if not bErr: raise ctypes.WinError()
+            return (0, ctypes.string_at(lpBuffer, bytesRead.value))
+        def WriteFile(hFile, data, ol=None):
+            assert ol is None
+            bytesWritten = DWORD()
+            bErr = ctypes.windll.kernel32.WriteFile(
+                    hFile, data, len(data), ctypes.byref(bytesWritten), ol)
+            if not bErr: raise ctypes.WinError()
+            return (0, bytesWritten.value)
+        def PeekNamedPipe(hPipe, size):
+            assert size == 0
+            bytesAvail = DWORD()
+            bErr = ctypes.windll.kernel32.PeekNamedPipe(
+                    hPipe, None, size, None, ctypes.byref(bytesAvail), None)
+            if not bErr: raise ctypes.WinError()
+            return ("", bytesAvail.value, None)
     import msvcrt
 else:
     import select

File QMTest/TestSCons.py

View file
  • Ignore whitespace
 
 default_version = '2.3.1.alpha.yyyymmdd'
 
-copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013'
-
 python_version_unsupported = (2, 3, 0)
 python_version_deprecated = (2, 7, 0)
 

File ReleaseConfig

View file
  • Ignore whitespace
 #month_year = 'December 2012'
 
 # If copyright years is not given, the release year is used as the end.
-#copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012'
+copyright_years = '2001 - 2014'
 
 # Local Variables:
 # tab-width:4

File SConstruct

View file
  • Ignore whitespace
 # See the README.rst file for an overview of how SCons is built and tested.
 from __future__ import print_function
 
-# When this gets changed, you must also change the copyright_years string
-# in QMTest/TestSCons.py so the test scripts look for the right string.
-copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013'
+copyright_years = '2001 - 2014'
 
 # This gets inserted into the man pages to reflect the month of release.
 month_year = 'MONTH YEAR'

File bin/SConsDoc.py

View file
  • Ignore whitespace
             fout.close()
 
         def decorateWithHeader(self, root):
-            root.attrib["{"+xsi+"}schemaLocation"] = "%s/scons.xsd scons.xsd" % dbxsd
+            root.attrib["{"+xsi+"}schemaLocation"] = "%s %s/scons.xsd" % (dbxsd, dbxsd)
             return root
             
         def newXmlTree(self, root):
             xi = root.newNs(xsi, 'xsi')
             root.setNs(ns)  #put this node in the target namespace
     
-            root.setNsProp(xi, 'schemaLocation', "%s/scons.xsd scons.xsd" % dbxsd)
+            root.setNsProp(xi, 'schemaLocation', "%s %s/scons.xsd" % (dbxsd, dbxsd))
         
             return root
 

File bin/update-release-info.py

View file
  • Ignore whitespace
 try:
     copyright_years = config['copyright_years']
 except KeyError:
-    copyright_years = ', '.join(map(str, list(range(2001, release_date[0] + 1))))
+    copyright_years = '2001 - %d'%(release_date[0] + 1)
 if DEBUG: print('copyright years', copyright_years)
 
 class UpdateFile(object):
 
 # Update doc/user/main.{in,xml}
 
-docyears = ', '.join(map(str, range(2004, release_date[0] + 1)))
+docyears = '2004 - %d' % release_date[0]
 if os.path.exists(os.path.join('doc', 'user', 'main.in')):
     # this is no longer used as of Dec 2013
     t = UpdateFile(os.path.join('doc', 'user', 'main.in'))

File bin/upload-release-files.sh

View file
  • Ignore whitespace
 
 #
 # scons.org stuff:
-# 
+#
 # Doc: copy the doc tgz over; we'll unpack later
 $RSYNC $RSYNCOPTS \
   scons-doc-$VERSION.tar.gz \
   cd ..
   rm latest; ln -s $VERSION latest
   rm production; ln -s $VERSION production
-  for f in HTML PDF PS TEXT; do rm $f; ln -s $VERSION/$f $f; done
+  for f in HTML PDF EPUB PS TEXT; do rm \$f; ln -s $VERSION/\$f \$f; done
 "
 echo '*****'
 echo '***** Now manually update index.php, includes/versions.php and news-raw.xhtml on scons.org.'

File doc/SConscript

View file
  • Ignore whitespace
 xep = whereis('xep')
 epydoc_cli = whereis('epydoc')
 gs = whereis('gs')
+lynx = whereis('lynx')
 
 #
 #
 if skip_doc:
     print("doc: ...skipping building User Guide.")
 else:
+    if not lynx:
+        print("doc: Warning, lynx is not installed...created release packages won't be complete!")
+    
     #
     # Always create a version.xml file containing the version information
     # for this run.  Ignore it for dependency purposes so we don't
     date, ver, rev = env.Dictionary('DATE', 'VERSION', 'REVISION')
     version_xml = File(os.path.join(build, "version.xml"))
     writeVersionXml(str(version_xml), date, ver, rev)
-    
+
+    import shutil
+    import SCons.Builder
+    import SCons.Util
+    #
+    # Builder for copying files to an Install dir, based
+    # on their extension (better: glob matching pattern)...
+    #    
+    def _glob_install_action(target, source, env):
+        if not SCons.Util.is_List(target):
+            target = [target]
+        if not SCons.Util.is_List(source):
+            source = [source]
+        for t, s in zip(target, source):
+            shutil.copy(str(s), str(t))
+    def _glob_install_emitter(target, source, env):
+        if not SCons.Util.is_List(target):
+            target = [target]
+        if not SCons.Util.is_List(source):
+            source = [source]
+            
+        res = []
+        res_src = []
+        tdir = env.Dir(target[0])
+        for g in glob.glob(str(source[0])):
+            head, tail = os.path.split(g)
+            res.append(os.path.join(str(tdir), tail))
+            res_src.append(g)
+        return res, res_src
+    _glob_install_builder = SCons.Builder.Builder(action=_glob_install_action,
+                                                  emitter=_glob_install_emitter)
+    env['BUILDERS']['GlobInstall'] = _glob_install_builder
+
+    #
+    # Builder for copying ChunkedHTML files to an Install dir...
+    #    
+    def _chunked_install_action(target, source, env):
+        if not SCons.Util.is_List(target):
+            target = [target]
+        if not SCons.Util.is_List(source):
+            source = [source]
+        tdir, tail = os.path.split(str(target[0]))
+        spattern = os.path.join(os.path.split(str(source[0]))[0], '*.html')
+        for g in glob.glob(spattern):
+            shutil.copy(g, tdir)
+            
+    def _chunked_install_emitter(target, source, env):
+        if not SCons.Util.is_List(target):
+            target = [target]
+        if not SCons.Util.is_List(source):
+            source = [source]
+            
+        tdir = env.Dir(target[0])
+        head, tail = os.path.split(str(source[0]))
+        return os.path.join(str(tdir), tail), source
+    _chunked_install_builder = SCons.Builder.Builder(action=_chunked_install_action,
+                                                     emitter=_chunked_install_emitter)
+    env['BUILDERS']['ChunkedInstall'] = _chunked_install_builder
+
     if not env.GetOption('clean'):
         #
         # Ensure that all XML files are valid against our XSD, and
             print("Not all example names and suffixes are unique! Please correct the errors listed above and try again.")
             sys.exit(0)
     
-        #
-        # Copy generated files (.gen/.mod/.xml) to the build folder
-        #
-        env.Execute(Mkdir(os.path.join(build, 'generated')))
-        env.Execute(Mkdir(os.path.join(build, 'generated', 'examples')))
-        for g in glob.glob(os.path.join('generated', '*.gen')):
-            env.Execute(Copy(os.path.join(build, 'generated'), g))
-        for g in glob.glob(os.path.join('generated', '*.mod')):
-            env.Execute(Copy(os.path.join(build, 'generated'), g))
-        for g in glob.glob(os.path.join('generated', 'examples', '*')):
-            env.Execute(Copy(os.path.join(build, 'generated', 'examples'), g))
+    # List of prerequisite files in the build/doc folder
+    buildsuite = []
+    
+    def copy_dbfiles(env, toolpath, paths, fpattern, use_builddir=True):
+        """ Helper function, copies a bunch of files matching
+            the given fpattern to a target directory.
+        """
+        global buildsuite
+        if not SCons.Util.is_List(toolpath):
+            toolpath = [toolpath]
+        if not SCons.Util.is_List(paths):
+            paths = [paths]
+        if not SCons.Util.is_List(fpattern):
+            fpattern = [fpattern]
 
-        #
-        # Copy XSLT files (.xslt) to the build folder
-        #
-        env.Execute(Mkdir(os.path.join(build, 'xslt')))
-        for g in glob.glob(os.path.join('xslt','*.*')):
-            env.Execute(Copy(os.path.join(build, 'xslt'), g))
+        if use_builddir:
+            target_dir = env.Dir(os.path.join(build_dir, *(toolpath+paths)))
+            buildsuite.extend(env.GlobInstall(target_dir,
+                                              os.path.join('..', *(toolpath+paths+fpattern))))
+        else:
+            target_dir = env.Dir(os.path.join(*(toolpath+paths)))
+            buildsuite.extend(env.GlobInstall(target_dir,
+                                              os.path.join(*(paths + fpattern))))
+    
+    #
+    # Copy generated files (.gen/.mod/.xml) to the build folder
+    #
+    copy_dbfiles(env, build, 'generated', '*.gen', False)
+    copy_dbfiles(env, build, 'generated', '*.mod', False)
+    copy_dbfiles(env, build, ['generated','examples'], '*', False)
 
-        #
-        # Copy Docbook stylesheets and Tool to the build folder
-        #
-        dbtoolpath = ['src', 'engine', 'SCons', 'Tool', 'docbook']
-        env.Execute(Mkdir(os.path.join(build_dir, *dbtoolpath)))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbtoolpath + ['utils']))))
-        env.Execute(Copy(os.path.join(build_dir, *dbtoolpath),
-                         os.path.join('..', *(dbtoolpath + ['__init__.py']))))
-        env.Execute(Copy(os.path.join(build_dir, *(dbtoolpath + ['utils'])),
-                         os.path.join('..', *(dbtoolpath + ['utils', 'xmldepend.xsl']))))
-        dbpath = dbtoolpath + ['docbook-xsl-1.76.1']
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['common']))))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['lib']))))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['html']))))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['fo']))))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['manpages']))))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['epub']))))
-        env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['xhtml-1_1']))))
-        env.Execute(Copy(os.path.join(build_dir, *dbpath),
-                         os.path.join('..', *(dbpath + ['VERSION']))))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['common', '*.*']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['common'])), g))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['lib', '*.*']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['lib'])), g))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['html', '*.*']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['html'])), g))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['fo', '*.*']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['fo'])), g))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['manpages', '*.*']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['manpages'])), g))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['epub', '*.xsl']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['epub'])), g))
-        for g in glob.glob(os.path.join('..', *(dbpath + ['xhtml-1_1', '*.*']))):
-            env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['xhtml-1_1'])), g))
+    #
+    # Copy XSLT files (.xslt) to the build folder
+    #
+    copy_dbfiles(env, build, 'xslt', '*.*', False)
 
-        #
-        # Copy additional Tools (gs, zip)
-        #
-        toolpath = ['src', 'engine', 'SCons', 'Tool']
-        env.Execute(Copy(os.path.join(build_dir, *toolpath),
-                         os.path.join('..', *(toolpath + ['gs.py']))))
-        env.Execute(Copy(os.path.join(build_dir, *toolpath),
-                         os.path.join('..', *(toolpath + ['zip.py']))))
+    #
+    # Copy DocBook stylesheets and Tool to the build folder
+    #
+    dbtoolpath = ['src', 'engine', 'SCons', 'Tool', 'docbook']
+    copy_dbfiles(env, dbtoolpath, [], '__init__.py')
+    copy_dbfiles(env, dbtoolpath, 'utils', 'xmldepend.xsl')
+    dbpath = dbtoolpath + ['docbook-xsl-1.76.1']
+    copy_dbfiles(env, dbpath, [], 'VERSION')
+    copy_dbfiles(env, dbpath, ['common'], '*.*')
+    copy_dbfiles(env, dbpath, ['lib'], '*.*')
+    copy_dbfiles(env, dbpath, ['html'], '*.*')
+    copy_dbfiles(env, dbpath, ['fo'], '*.*')
+    copy_dbfiles(env, dbpath, ['manpages'], '*.*')
+    copy_dbfiles(env, dbpath, ['epub'], '*.xsl')
+    copy_dbfiles(env, dbpath, ['xhtml-1_1'], '*.*')
 
+    #
+    # Copy additional Tools (gs, zip)
+    #
+    toolpath = ['src', 'engine', 'SCons', 'Tool']
+    copy_dbfiles(env, toolpath, [], 'gs.py')
+    copy_dbfiles(env, toolpath, [], 'zip.py')
 
     #
     # Each document will live in its own subdirectory.  List them here
     # of the outputs get installed to the build folder and added to
     # the different source and binary packages in the end.
     #
-    docs = {'design' : ['chtml','pdf'],
-            #'python10' : ['chtml','html','pdf'],
-            'reference' : ['chtml','html','pdf'],
-            #'developer' : ['chtml','html','pdf'],
-            'user' : ['chtml','html','pdf','epub'],
-            'man' : ['man','epub']
+    docs = {'design' : ['chunked','pdf'],
+            #'python10' : ['chunked','html','pdf'],
+            'reference' : ['chunked','html','pdf'],
+            #'developer' : ['chunked','html','pdf'],
+            'user' : ['chunked','html','pdf','epub','text'],
+            'man' : ['man','epub','text']
            }
+           
     # The names of the target files for the MAN pages
     man_page_list = ['scons.1','scons-time.1','sconsign.1']
     
             continue
         base, ext = os.path.splitext(s)
         if ext in ['.fig', '.jpg']:
-            env.Execute(Copy(build, s))
+            buildsuite.extend(env.Command(os.path.join(build, s), 
+                                          s, 
+                                          Copy("$TARGET", "$SOURCE")))
         else:
-            revaction([env.File(os.path.join(build, s))], 
+            revaction([env.File(os.path.join(build, s))],
                       [env.File(s)], env)
 
-    #
-    # For each document, build the document itself in HTML,
-    # and PDF formats.
-    #
     for doc in docs:
         
         #
         # build directory, while branding them with the
         # SCons copyright and the current revision number...
         #
-        env.Execute(Mkdir(os.path.join(build, doc)))
-        env.Execute(Mkdir(os.path.join(build, doc, 'titlepage')))
+        if not os.path.exists(os.path.join(build, doc)):
+            env.Execute(Mkdir(os.path.join(build, doc)))
+        if not os.path.exists(os.path.join(build, doc, 'titlepage')):
+            env.Execute(Mkdir(os.path.join(build, doc, 'titlepage')))
         manifest = File(os.path.join(doc, 'MANIFEST')).rstr()
         src_files = bootstrap.parseManifestLines(doc, open(manifest).readlines())
         for s in src_files:
             doc_s = os.path.join(doc, s)
             build_s = os.path.join(build, doc, s)
             base, ext = os.path.splitext(doc_s)
+            head, tail = os.path.split(s)
+            if head:
+                target_dir = os.path.join(build, doc, head)
+            else:
+                target_dir = os.path.join(build, doc)
             if ext in ['.fig', '.jpg', '.svg']:
-                env.Execute(Copy(build_s, doc_s))
+                buildsuite.extend(env.Command(build_s, doc_s, 
+                                              Copy("$TARGET", "$SOURCE")))
             else:
                 revaction([env.File(build_s)], 
                           [env.File(doc_s)], env)
 
+
+    #
+    # For each document, build the document itself in HTML,
+    # and PDF formats.
+    #
+    docnodes = {}
+    for doc in docs:
+
         #
-        # Call SCons in each local doc folder directly, such that
-        # we can Glob for the created *.html files afterwards to
-        # get the dependencies for the install targets right.
+        # Call SCons in each local doc folder
         #
         cleanopt = ''
         if env.GetOption('clean'):
             cleanopt = ' -c'
-        cmd = env.subst("cd %s && $PYTHON ${SCONS_PY.abspath}" % os.path.join(build, doc))+cleanopt
-        os.system(cmd)
+        scdir = os.path.join(build, doc)
+        sctargets = []
+        if 'html' in docs[doc]:
+            sctargets.append(env.File(os.path.join(scdir, 'index.html')))
+        if 'chunked' in docs[doc]:
+            sctargets.append(env.File(os.path.join(scdir, 'scons-%s' % doc, 'index.html')))
+        if 'pdf' in docs[doc]:
+            sctargets.append(env.File(os.path.join(scdir, 'scons-%s.pdf' % doc)))
+        if 'epub' in docs[doc]:
+            sctargets.append(env.File(os.path.join(scdir, 'scons-%s.epub' % doc)))
+            
+        if 'man' in docs[doc]:
+            for m in man_page_list:
+                sctargets.append(os.path.join(scdir, m))
+                man, _1 = os.path.splitext(m)
+            
+                sctargets.append(os.path.join(scdir, 'scons-%s.pdf' % man))
+                sctargets.append(os.path.join(scdir, 'scons-%s.html' % man))
+        
+        docnodes[doc] = env.Command(sctargets, buildsuite, 
+                                    "cd %s && $PYTHON ${SCONS_PY.abspath}%s" % (scdir, cleanopt))
+        
+    install_css = False
+    for doc in docs:
 
         # Collect the output files for this subfolder
         htmldir = os.path.join(build, 'HTML', 'scons-%s' % doc)
         html = os.path.join(build, 'HTML', 'scons-%s.html' % doc)
         pdf = os.path.join(build, 'PDF', 'scons-%s.pdf' % doc)
         epub = os.path.join(build, 'EPUB', 'scons-%s.epub' % doc)
-        if 'chtml' in docs[doc]:
-            env.Install(htmldir, Glob(os.path.join(build, doc,'scons-%s' % doc, '*.html')))
-            tar_deps.extend([htmlindex])
+        text = os.path.join(build, 'TEXT', 'scons-%s.txt' % doc)
+        if 'chunked' in docs[doc]:
+            installed_chtml = env.ChunkedInstall(env.Dir(htmldir), 
+                                                 os.path.join(build, doc,'scons-%s' % doc, 'index.html'))
+            installed_chtml_css = env.Install(env.Dir(htmldir),
+                                              os.path.join(build, doc, 'scons.css'))
+            env.Depends(installed_chtml, docnodes[doc])
+            env.Depends(installed_chtml_css, docnodes[doc])
+            
+            tar_deps.extend([htmlindex, installed_chtml_css])
             tar_list.extend([htmldir])
             Local(htmlindex)
             env.Ignore(htmlindex, version_xml)
 
         if 'html' in docs[doc]:
-            env.InstallAs(html, os.path.join(build, doc,'index.html'))
+            env.InstallAs(env.File(html), env.File(os.path.join(build, doc,'index.html')))
             tar_deps.extend([html])
             tar_list.extend([html])
             Local(html)
             env.Ignore(html, version_xml)
+            install_css = True
             
         if 'pdf' in docs[doc]:
-            env.InstallAs(pdf, os.path.join(build, doc,'scons-%s.pdf' % doc))
+            env.InstallAs(env.File(pdf), env.File(os.path.join(build, doc,'scons-%s.pdf' % doc)))
             Local(pdf)
             env.Ignore(pdf, version_xml)
 
             tar_list.append(pdf)
 
         if 'epub' in docs[doc] and gs:
-            env.InstallAs(epub, os.path.join(build, doc,'scons-%s.epub' % doc))
+            env.InstallAs(env.File(epub), env.File(os.path.join(build, doc,'scons-%s.epub' % doc)))
             Local(epub)
             env.Ignore(epub, version_xml)
 
             tar_deps.append(epub)
             tar_list.append(epub)
             
+        if ('text' in docs[doc] and lynx and 
+            (('html' in docs[doc]) or (doc == 'man'))):
+            texthtml = os.path.join(build, doc,'index.html')
+            if doc == 'man':
+                # Special handling for single MAN file
+                texthtml = os.path.join(build, doc, 'scons-scons.html')
+            
+            env.Command(text, env.File(texthtml), "lynx -dump ${SOURCE.abspath} > $TARGET")
+            Local(text)
+
+            env.Ignore(text, version_xml)
+
+            tar_deps.append(text)
+            tar_list.append(text)
+            
+            
         if 'man' in docs[doc]:
             #
             # Man page(s)
                 pdf = os.path.join(build, 'PDF', '%s-man.pdf' % man)
                 html = os.path.join(build, 'HTML' , '%s-man.html' % man)
             
-                env.InstallAs(pdf, os.path.join(build, 'man','scons-%s.pdf' % man))
-                env.InstallAs(html, os.path.join(build, 'man','scons-%s.html' % man))
+                env.InstallAs(env.File(pdf), env.File(os.path.join(build, 'man','scons-%s.pdf' % man)))
+                env.InstallAs(env.File(html), env.File(os.path.join(build, 'man','scons-%s.html' % man)))
             
                 tar_deps.extend([pdf, html])
                 tar_list.extend([pdf, html])
 
 
+    # Install CSS file, common to all single HTMLs
+    if install_css:
+        css_file = os.path.join(build, 'HTML', 'scons.css')
+        env.InstallAs(env.File(css_file), 
+                      env.File(os.path.join(build, 'user','scons.css')))
+        tar_deps.extend([css_file])
+        tar_list.extend([css_file])
+        Local(css_file)
+
 if not epydoc_cli:
     try:
         import epydoc

File doc/design/acks.xml

View file
  • Ignore whitespace
 <chapter id="chap-acks"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Acknowledgements</title>
 
 <!--

File doc/design/bground.xml

View file
  • Ignore whitespace
 <chapter id="chap-background"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Background</title>
 
 <!--

File doc/design/chtml.xsl

View file
  • Ignore whitespace
 <xsl:param name="base.dir" select="'scons-design/'"/>
 <xsl:param name="l10n.gentext.default.language" select="'en'"/>
 <xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
 <xsl:param name="html.stylesheet" select="'scons.css'"/>
 <xsl:param name="generate.toc">
 /appendix toc,title

File doc/design/copyright.xml

View file
  • Ignore whitespace
 
 <legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+             xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 
 <!--
 

File doc/design/engine.xml

View file
  • Ignore whitespace
 <chapter id="chap-engine"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Build Engine API</title>
 
 <!--

File doc/design/goals.xml

View file
  • Ignore whitespace
 <chapter id="chap-goals"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Goals</title>
 
 <!--

File doc/design/html.xsl

View file
  • Ignore whitespace
 
 <xsl:param name="l10n.gentext.default.language" select="'en'"/>
 <xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
 <xsl:param name="html.stylesheet" select="'scons.css'"/>
 <xsl:param name="generate.toc">
 /appendix toc,title

File doc/design/install.xml

View file
  • Ignore whitespace
 <chapter id="chap-install"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Installation</title>
 
 <!--

File doc/design/intro.xml

View file
  • Ignore whitespace
 <chapter id="chap-intro"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Introduction</title>
 
 <!--

File doc/design/issues.xml

View file
  • Ignore whitespace
 <chapter id="chap-issues"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Other Issues</title>
 
 <!--

File doc/design/main.xml

View file
  • Ignore whitespace
 
 <book xmlns="http://www.scons.org/dbxsd/v1.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+      xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
   <bookinfo>
     <title>SCons &buildversion;</title>
     <subtitle>Design</subtitle>

File doc/design/native.xml

View file
  • Ignore whitespace
 <chapter id="chap-native"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Native Python Interface</title>
 
 <!--

File doc/design/overview.xml

View file
  • Ignore whitespace
 <chapter id="chap-overview"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Overview</title>
 
 <!--

File doc/design/pdf.xsl

View file
  • Ignore whitespace
 	<xsl:include href="scons_title.xsl"/> 
 <xsl:param name="l10n.gentext.default.language" select="'en'"/>
 <xsl:param name="section.autolabel" select="1"></xsl:param>
+<xsl:param name="section.label.includes.component.label" select="1"/>
 <xsl:param name="paper.type" select="'letter'"></xsl:param>
 <xsl:param name="body.start.indent">0pt</xsl:param>
 <xsl:param name="shade.verbatim" select="1"></xsl:param>

File doc/design/scons.css

View file
  • Ignore whitespace
 	}
 
 
-a {
+a:link {
 	color: #80572a;
 	}
 
-a:hover {
+a:link:hover {
 	color: #d72816;
 	text-decoration: none;
 	}

File doc/design/summary.xml

View file
  • Ignore whitespace
 <chapter id="chap-summary"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Summary</title>
 
 <!--

File doc/developer/architecture.xml

View file
  • Ignore whitespace
 <chapter id="chap-architecture"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Architecture</title>
 
 <!--

File doc/developer/branches.xml

View file
  • Ignore whitespace
 <chapter id="chap-branches"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Branches</title>
 
 <!--

File doc/developer/copyright.xml

View file
  • Ignore whitespace
 
 <legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+             xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 
 <!--
 

File doc/developer/cycle.xml

View file
  • Ignore whitespace
 <chapter id="chap-development-cycle"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Development Cycle</title>
 
 <!--

File doc/developer/main.xml

View file
  • Ignore whitespace
 
 <book xmlns="http://www.scons.org/dbxsd/v1.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+      xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
   <bookinfo>
     <title>SCons Developer's Guide &buildversion;</title>
 

File doc/developer/packaging.xml

View file
  • Ignore whitespace
 <chapter id="chap-packaging"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Packaging</title>
 
 <!--

File doc/developer/preface.xml

View file
  • Ignore whitespace
 <chapter id="chap-preface"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Preface</title>
 
 <!--

File doc/developer/sourcetree.xml

View file
  • Ignore whitespace
 <chapter id="chap-source-tree"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Source Tree</title>
 
 <!--

File doc/developer/testing.xml

View file
  • Ignore whitespace
 <chapter id="chap-testing"
          xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+         xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
 <title>Testing</title>
 
 <!--

File doc/editor_configs/xmlmind/addon/config/scons/scons2.xml

  • Ignore whitespace
-<?xml version="1.0" encoding="UTF-8" ?>
-<article xmlns="http://www.scons.org/dbxsd/v1.0"
-     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-     xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
-  <para></para>
-</article>
-

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/addListItem.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/back.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/boldText.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/copy.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/cut.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementColumnSpan.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementRowSpan.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/definitionList.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/delete.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteColumn.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteRow.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/documentation.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/down.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/editDocument.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText_menu.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure_menu.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/forward.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading.png

  • Ignore whitespace
Added
New image

File doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading_menu.png