Changeset 32
- Timestamp:
- 09/07/05 03:02:13 (8 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 1 edited
-
examples (added)
-
examples/gtk-yaml (added)
-
examples/ramble-on-mud (added)
-
setup.cfg (added)
-
setup.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/setup.py
r27 r32 25 25 from distutils.core import setup, Extension 26 26 27 from distutils import log 28 from distutils.command.build_ext import build_ext 29 from distutils.errors import CCompilerError, CompileError, LinkError 30 27 31 import sys 28 32 if sys.version < '2.2.4': … … 32 36 33 37 import os 34 home = os.environ.get('HOME', '') 38 #home = os.environ.get('HOME', '') 39 40 CHECK_SYCK = """ 41 #include <syck.h> 42 #include <stdio.h> 43 int main(void) { 44 syck_free_parser(syck_new_parser()); 45 syck_free_emitter(syck_new_emitter()); 46 puts(SYCK_VERSION); 47 return 0; 48 } 49 """ 50 CHECK_SYCK_PROG = './_check_syck' 51 52 class PySyckBuildExt(build_ext): 53 54 def build_extensions(self): 55 if not self.force: 56 self.check_syck() 57 build_ext.build_extensions(self) 58 59 def _clean(self, *filenames): 60 for filename in filenames: 61 try: 62 os.remove(filename) 63 except OSError: 64 pass 65 66 def check_syck(self): 67 prog = CHECK_SYCK_PROG 68 src = prog + '.c' 69 file(src, 'w').write(CHECK_SYCK) 70 [obj] = self.compiler.object_filenames([src]) 71 log.info("checking for syck.h") 72 try: 73 self.compiler.compile([src]) 74 except CompileError: 75 self._clean(src, obj) 76 raise CompileError, "syck.h is not found" 77 log.info("checking for libsyck.a") 78 try: 79 self.compiler.link_executable([obj], prog, libraries=['syck']) 80 except LinkError: 81 self._clean(src, obj, prog) 82 raise LinkError, "libsyck.a is not found" 83 if self.compiler.exe_extension: 84 prog += self.compiler.exe_extension 85 log.info("checking syck version") 86 pipe = os.popen(prog, 'r') 87 data = pipe.read().strip() 88 pipe.close() 89 version = float(data) 90 log.info("syck version: %s" % version) 91 if version < 0.55: 92 self._clean(src, obj, prog) 93 raise CCompilerError, "syck 0.55 or higher is required" 94 self._clean(src, obj, prog) 95 35 96 36 97 setup( … … 51 112 ext_modules=[ 52 113 Extension('_syck', ['ext/_syckmodule.c'], 53 include_dirs=['../../include', '%s/include' % home, '/usr/local/include'],54 library_dirs=['../../lib', '%s/lib' % home, '/usr/local/include'],114 # include_dirs=['../../include', '%s/include' % home, '/usr/local/include'], 115 # library_dirs=['../../lib', '%s/lib' % home, '/usr/local/include'], 55 116 libraries=['syck'], 56 117 ), 57 118 ], 119 cmdclass={ 120 'build_ext': PySyckBuildExt, 121 }, 58 122 ) 59 123
Note: See TracChangeset
for help on using the changeset viewer.
