ó
C]c           @   s„   d  d l  m Z d d l m Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z	 d
 „  Z
 e e j j _ d „  Z e ƒ  Z d S(   iÿÿÿÿ(   t   c_uinti   (   t   ffic           C   s   t  j j ƒ  d S(   s#   
    Initialize the LLVM core.
    N(   R   t   libt   LLVMPY_InitializeCore(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt
   initialize   s    c           C   s+   t  j j ƒ  t  j j ƒ  t  j j ƒ  d S(   sn   
    Initialize all targets. Necessary before targets can be looked up
    via the :class:`Target` class.
    N(   R   R   t   LLVMPY_InitializeAllTargetInfost   LLVMPY_InitializeAllTargetst   LLVMPY_InitializeAllTargetMCs(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   initialize_all_targets   s    c           C   s   t  j j ƒ  d S(   sÅ   
    Initialize all code generators. Necessary before generating
    any assembly or machine code via the :meth:`TargetMachine.emit_object`
    and :meth:`TargetMachine.emit_assembly` methods.
    N(   R   R   t   LLVMPY_InitializeAllAsmPrinters(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   initialize_all_asmprinters   s    c           C   s   t  j j ƒ  d S(   s_   
    Initialize the native (host) target.  Necessary before doing any
    code generation.
    N(   R   R   t   LLVMPY_InitializeNativeTarget(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   initialize_native_target   s    c           C   s   t  j j ƒ  d S(   s,   
    Initialize the native ASM printer.
    N(   R   R   t!   LLVMPY_InitializeNativeAsmPrinter(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   initialize_native_asmprinter'   s    c           C   s   t  j j ƒ  d S(   s+   
    Initialize the native ASM parser.
    N(   R   R   t    LLVMPY_InitializeNativeAsmParser(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   initialize_native_asmparser.   s    c           C   s   t  j j ƒ  d  S(   N(   R   R   t   LLVMPY_Shutdown(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   shutdown5   s    c          C   sM   g  }  t  j j ƒ  } x% | r< |  j | d @ƒ | d L} q Wt t |  ƒ ƒ S(   Niÿ   i   (   R   R   t   LLVMPY_GetVersionInfot   appendt   tuplet   reversed(   t   vt   x(    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   _version_info?   s    	N(   t   ctypesR    t    R   R   R   R
   R   R   R   R   R   R   t   restypeR   t   llvm_version_info(    (    (    s8   lib/python2.7/site-packages/llvmlite/binding/initfini.pyt   <module>   s   										