mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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._AE",
 | |
|             [SRCDIR + "/Mac/Modules/ae/_AEmodule.c"],
 | |
|             include_dirs=[SRCDIR+"/Mac/Include"],
 | |
|             extra_link_args=['-framework', 'Carbon']),
 | |
|         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()
 | |
|     ) | 
