[pypy-svn] r24519 - in pypy/dist/pypy/translator/llvm/pyllvm: . test

ericvrp at codespeak.net ericvrp at codespeak.net
Fri Mar 17 14:49:08 CET 2006


Author: ericvrp
Date: Fri Mar 17 14:49:06 2006
New Revision: 24519

Modified:
   pypy/dist/pypy/translator/llvm/pyllvm/setup.py
   pypy/dist/pypy/translator/llvm/pyllvm/test/test_ee.py
Log:
Finally got pyllvm working on Darwin


Modified: pypy/dist/pypy/translator/llvm/pyllvm/setup.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/pyllvm/setup.py	(original)
+++ pypy/dist/pypy/translator/llvm/pyllvm/setup.py	Fri Mar 17 14:49:06 2006
@@ -1,84 +1,44 @@
 import autopath
 import py
-
+import sys
 from distutils.core import setup
 from distutils.extension import Extension
 
-import os
-import glob
-
-# XXX make libdir configurable
-#libdir = py.path.local("/usr/local/lib/")
-libdir = py.path.local(__file__).dirpath().join("libs")
-
-# get all the extra objects llvm needs
-extra_objects = """
-LLVMX86.o
-LLVMSystem.o
-LLVMSupport.o
-LLVMCore.o
-LLVMAsmParser.o
-LLVMCodeGen.o
-LLVMSelectionDAG.o
-LLVMExecutionEngine.o
-LLVMJIT.o
-LLVMScalarOpts.o
-LLVMbzip2.o
-
-LLVMInterpreter.o
-LLVMAnalysis.o
-LLVMipo.o
-LLVMTransformUtils.o
-LLVMipa.o
-LLVMDataStructure.o
-LLVMTransforms.o
-LLVMInstrumentation.o
-LLVMBCWriter.o
-LLVMBCReader.o
-""".split()
+prefix = py.path.local.sysfind("llvm-as").dirpath('..').realpath()
+incdir = prefix.join('include')
+libdir = prefix.join('lib')
+
+# get all the libraries llvm needs
+platform2backend = {'darwin':'PowerPC', 'linux2':'X86'}
+llvm_libs = [platform2backend[sys.platform]] + """
+Core AsmParser CodeGen SelectionDAG ExecutionEngine
+JIT bzip2 Interpreter DataStructure BCWriter BCReader Target Instrumentation
+ipo ipa Transforms System ScalarOpts Analysis TransformUtils Support""".split()
+
+# figure out if they are a dynamic library or not
+extra_llvm_libs, extra_llvm_dynlibs = [], []
+for o in llvm_libs:
+    if libdir.join("LLVM%s.o" % o).check():
+        extra_llvm_libs.append(libdir.join("LLVM%s.o" % o).strpath)
+    else:
+        extra_llvm_dynlibs.append("LLVM%s" % o)
 
 # globals
 name = 'pyllvm'
 sources = ['pyllvm.cpp']
-libraries = ["LLVMTarget"]
-include_dirs = ['/opt/projects/llvm-1.6/build/include']
-library_dirs = [str(libdir)]
-define_macros = [('_GNU_SOURCE', None), ('__STDC_LIMIT_MACROS', None)]
-extra_objects = [str(libdir.join(obj)) for obj in extra_objects]
+include_dirs = [incdir.strpath]
+library_dirs = [libdir.strpath]
+define_macros = [('__STDC_LIMIT_MACROS', None)] #, ('_GNU_SOURCE', None)
 
 opts = dict(name=name,
             sources=sources,
-            libraries=libraries,
+            libraries=extra_llvm_dynlibs,
             include_dirs=include_dirs,
             library_dirs=library_dirs,
             define_macros=define_macros,
-            extra_objects=extra_objects)
+            extra_objects=extra_llvm_libs)
 
 ext_modules = Extension(**opts)
 
 # setup module
 setup(name=name, ext_modules=[ext_modules])
-
-# bunch of unused object (at the moment or for x86)
-unused_objects = """
-LLVMSkeleton.o
-LLVMProfilePaths.o
-LLVMCBackend.o
-LLVMDebugger.o
-profile_rt.o
-trace.o
-gcsemispace.o
-LLVMSparcV8.o
-LLVMSparcV9.o
-LLVMSparcV9InstrSched.o
-LLVMSparcV9LiveVar.o
-LLVMSparcV9ModuloSched.o
-LLVMSparcV9RegAlloc.o
-LLVMPowerPC.o
-LLVMAlpha.o
-LLVMIA64.o
-sample.o
-stkr_compiler.o
-LLVMTarget.o
-"""
-

Modified: pypy/dist/pypy/translator/llvm/pyllvm/test/test_ee.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/pyllvm/test/test_ee.py	(original)
+++ pypy/dist/pypy/translator/llvm/pyllvm/test/test_ee.py	Fri Mar 17 14:49:06 2006
@@ -1,9 +1,16 @@
 import py
 from pypy.translator.llvm.buildllvm import llvm_is_on_path
-py.test.skip("'python setup.py build_ext -i' is not quiet working yet")
+
 if not llvm_is_on_path():
     py.test.skip("llvm not found")
-from pypy.translator.llvm.pyllvm import pyllvm 
+
+try:
+    from pypy.translator.llvm.pyllvm import pyllvm 
+except:
+    import sys
+    sys.argv = "setup.py build_ext -i".split()
+    from pypy.translator.llvm.pyllvm import setup
+    from pypy.translator.llvm.pyllvm import pyllvm 
 
 def test_execution_engine():
     ee = pyllvm.get_ee()



More information about the Pypy-commit mailing list