| 
									
										
										
										
											2002-11-15 00:13:33 +00:00
										 |  |  | from distutils.core import Extension, setup | 
					
						
							| 
									
										
										
										
											2002-11-18 13:48:18 +00:00
										 |  |  | 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 [] | 
					
						
							| 
									
										
										
										
											2002-11-15 00:13:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | setup(name="MacPython for Jaguar extensions", version="2.2", | 
					
						
							| 
									
										
										
										
											2002-11-18 13:48:18 +00:00
										 |  |  |     ext_modules=[ | 
					
						
							| 
									
										
										
										
											2002-11-29 23:58:51 +00:00
										 |  |  |         Extension("OverrideFrom23._AE", | 
					
						
							|  |  |  |             [SRCDIR + "/Mac/Modules/ae/_AEmodule.c"], | 
					
						
							|  |  |  |             include_dirs=[SRCDIR+"/Mac/Include"], | 
					
						
							|  |  |  |             extra_link_args=['-framework', 'Carbon']), | 
					
						
							| 
									
										
										
										
											2002-11-18 13:48:18 +00:00
										 |  |  |         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() | 
					
						
							|  |  |  |     ) |