Bastian Kleineidam: the "build_scripts" command and changes
necessary to support it.

Details:
  - build command additionally calls build_scripts
  - build_scripts builds your scripts in 'build/scripts' and adjusts the
    first line if it begins with "#!" and ends with "python", optionally
    ending with commandline options (like -O, -t ...).  Adjusting means we
    write the current path to the Python interpreter in the first line.
  - install_scripts copies the scripts to the install_scripts dir
  - install_data copies your data_files in install_data. You can
    supply individual directories for your data_files:

    data_files = ['doc/info.txt', # copy this file in install_scripts dir
      ('testdata', ['a.dat', 'b.dat']), # copy these files in
                                        # install_scripts/testdata
      ('/etc', ['packagerc']),    # copy this in /etc. When --root is
                                  # given, copy this in rootdir/etc
    ]

    So you can use the --root option with absolute data paths.
diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index aab0d6f..96d41d5 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -24,6 +24,8 @@
         ('build-lib=', None,
          "build directory for all distribution (defaults to either " +
          "build-purelib or build-platlib"),
+        ('build-scripts=', None,
+         "build directory for scripts"),
         ('build-temp=', 't',
          "temporary build directory"),
         ('compiler=', 'c',
@@ -42,6 +44,7 @@
         self.build_platlib = None
         self.build_lib = None
         self.build_temp = None
+        self.build_scripts = None
         self.compiler = None
         self.debug = None
         self.force = 0
@@ -76,6 +79,8 @@
         if self.build_temp is None:
             self.build_temp = os.path.join (self.build_base,
                                             'temp.' + self.plat)
+        if self.build_scripts is None:
+            self.build_scripts = os.path.join (self.build_base, 'scripts')
     # finalize_options ()
 
 
@@ -100,4 +105,7 @@
         if self.distribution.has_ext_modules():
             self.run_peer ('build_ext')
 
+        if self.distribution.scripts:
+            self.run_peer ('build_scripts')
+
 # class build