text: """ Modified version of build_scripts that handles building scripts from functions.
  """
  
  from distutils.command.build_scripts import build_scripts as old_build_scripts
  from numpy.distutils import log
  from numpy.distutils.misc_util import is_string
  
  class build_scripts(old_build_scripts):
  
      def generate_scripts(self, scripts):
          new_scripts = []
          func_scripts = []
          for script in scripts:
              if is_string(script):
                  new_scripts.append(script)
              else:
                  func_scripts.append(script)
          if not func_scripts:
              return new_scripts
  
          build_dir = self.build_dir
          self.mkpath(build_dir)
          for func in func_scripts:
              script = func(build_dir)
              if not script:
                  continue
              if is_string(script):
                  log.info("  adding '%s' to scripts" % (script,))
                  new_scripts.append(script)
              else:
                  [log.info("  adding '%s' to scripts" % (s,)) for s in script]
                  new_scripts.extend(list(script))
          return new_scripts
  
      def run (self):
          if not self.scripts:
              return
  
          self.scripts = self.generate_scripts(self.scripts)
          # Now make sure that the distribution object has this list of scripts.
          # setuptools' develop command requires that this be a list of filenames,
          # not functions.
          self.distribution.scripts = self.scripts
  
          return old_build_scripts.run(self)
  
      def get_source_files(self):
          from numpy.distutils.misc_util import get_script_files
          return get_script_files(self.scripts)
  