code: def BuildNodes(self, nodes):
          
          if self.logstream is not None:
              # override stdout / stderr to write in log file
              oldStdout = sys.stdout
              sys.stdout = self.logstream
              oldStderr = sys.stderr
              sys.stderr = self.logstream
  
          # the engine assumes the current path is the SConstruct directory ...
          old_fs_dir = SConfFS.getcwd()
          old_os_dir = os.getcwd()
          SConfFS.chdir(SConfFS.Top, change_os_dir=1)
  
          # Because we take responsibility here for writing out our
          # own .sconsign info (see SConfBuildTask.execute(), above),
          # we override the store_info() method with a null place-holder
          # so we really control how it gets written.
          for n in nodes:
              n.store_info = 0
              if not hasattr(n, 'attributes'):
                  n.attributes = SCons.Node.Node.Attrs()
              n.attributes.keep_targetinfo = 1
  
          ret = 1
  
          try:
              # ToDo: use user options for calc
              save_max_drift = SConfFS.get_max_drift()
              SConfFS.set_max_drift(0)
              tm = SCons.Taskmaster.Taskmaster(nodes, SConfBuildTask)
              # we don't want to build tests in parallel
              jobs = SCons.Job.Jobs(1, tm )
              jobs.run()
              for n in nodes:
                  state = n.get_state()
                  if (state != SCons.Node.executed and
                      state != SCons.Node.up_to_date):
                      # the node could not be built. we return 0 in this case
                      ret = 0
          finally:
              SConfFS.set_max_drift(save_max_drift)
              os.chdir(old_os_dir)
              SConfFS.chdir(old_fs_dir, change_os_dir=0)
              if self.logstream is not None:
                  # restore stdout / stderr
                  sys.stdout = oldStdout
                  sys.stderr = oldStderr
          return ret
docs: Tries to build the given nodes immediately. Returns 1 on success,
          0 on error.