[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