old_contents: from distutils.core import Extension, setup
  
  setup(name="MacPython for Jaguar extensions", version="2.2",
  	ext_modules=[
  		Extension("OverrideFrom23._Res",
  			["../Modules/res/_Resmodule.c"],
  			include_dirs=["../Include"],
  			extra_link_args=['-framework', 'Carbon']),
  		])
new_contents: from distutils.core import Extension, setup
  from distutils import sysconfig
  import os
  
  SRCDIR="../.."
  
  def find_file(filename, std_dirs, paths):
      """Searches for the directory where a given file is located,
      and returns a possibly-empty list of additional directories, or None
      if the file couldn't be found at all.
  
      'filename' is the name of a file, such as readline.h or libcrypto.a.
      'std_dirs' is the list of standard system directories; if the
          file is found in one of them, no additional directives are needed.
      'paths' is a list of additional locations to check; if the file is
          found in one of them, the resulting list will contain the directory.
      """
  
      # Check the standard locations
      for dir in std_dirs:
          f = os.path.join(dir, filename)
          if os.path.exists(f): return []
  
      # Check the additional directories
      for dir in paths:
          f = os.path.join(dir, filename)
          if os.path.exists(f):
              return [dir]
  
      # Not found anywhere
      return None
  
  def find_library_file(compiler, libname, std_dirs, paths):
      filename = compiler.library_filename(libname, lib_type='shared')
      result = find_file(filename, std_dirs, paths)
      if result is not None: return result
  
      filename = compiler.library_filename(libname, lib_type='static')
      result = find_file(filename, std_dirs, paths)
      return result
      
  def waste_Extension():
      waste_incs = find_file("WASTE.h", [], 
              ['../'*n + 'waste/C_C++ Headers' for n in (0,1,2,3,4)])
      if waste_incs != None:
          waste_libs = [os.path.join(os.path.split(waste_incs[0])[0], "Static Libraries")]
          srcdir = SRCDIR
          return [ Extension('waste',
                         [os.path.join(srcdir, d) for d in 
                          'Mac/Modules/waste/wastemodule.c',
                          'Mac/Wastemods/WEObjectHandlers.c',
                          'Mac/Wastemods/WETabHooks.c',
                          'Mac/Wastemods/WETabs.c'
                         ],
                         include_dirs = waste_incs + [
                          os.path.join(srcdir, 'Mac/Include'),
                          os.path.join(srcdir, 'Mac/Wastemods')
                         ],
                         library_dirs = waste_libs,
                         libraries = ['WASTE'],
                         extra_link_args = ['-framework', 'Carbon'],
          ) ]
      return []
  
  setup(name="MacPython for Jaguar extensions", version="2.2",
      ext_modules=[
          Extension("OverrideFrom23._Res",
              [SRCDIR + "/Mac/Modules/res/_Resmodule.c"],
              include_dirs=[SRCDIR+"/Mac/Include"],
              extra_link_args=['-framework', 'Carbon']),
          Extension('_Help', 
              [SRCDIR + '/Mac/Modules/help/_Helpmodule.c'],
              include_dirs=[SRCDIR+"/Mac/Include"],
              extra_link_args=['-framework', 'Carbon']),
          Extension('_Scrap', 
              [SRCDIR + '/Mac/Modules/scrap/_Scrapmodule.c'],
              include_dirs=[SRCDIR+"/Mac/Include"],
              extra_link_args=['-framework', 'Carbon']),
          ] + 
          waste_Extension()
      )
subject: Build waste, _Help and _Scrap too.