ó
Ý™xTc           @   s:  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z e j	 j
 d ƒ Z e j d ƒ r™ e j d e j d ƒ d ƒ n  d „  Z d „  Z d	 „  Z e j j e d
 d ƒZ e j j d d ƒ Z e j j d e d d d e j j ƒ Z e j j j d e j j ƒ d „  Z d „  Z d S(   iÿÿÿÿ(   t   divisionNsƒ   
  mingw32-
  i386-mingw32msvc-
  i486-mingw32msvc-
  i586-mingw32msvc-
  i686-mingw32msvc-
  i686-pc-mingw32-
  i686-w64-mingw32-
t   TARGETi    t   -c         C   sB   x; t  D]3 } |  j | d ƒ s6 t j j | d ƒ r | Sq Wd S(   Nt   gcct    (   t   prefixest   WhereIst   SConst   Util(   t   envt   prefix(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/crossmingw.pyt   find   s    )c         C   sÖ   t  j j d d g ƒ } | j |  d d ƒ } | rI | j d | g ƒ n  | j d d d g ƒ | j |  d	 d
 ƒ } | r— | j d | j | ƒ ƒ n  | j |  d d ƒ } | rÏ | j d | j | ƒ ƒ n  | g S(   Ns   $SHLINKs   $SHLINKFLAGSt   SHLIBPREFIXt   SHLIBSUFFIXs   -os   $SOURCESs   $_LIBDIRFLAGSs
   $_LIBFLAGSt	   LIBPREFIXt	   LIBSUFFIXs   -Wl,--out-implib,t   WIN32DEFPREFIXt   WIN32DEFSUFFIXs   -Wl,--output-def,(   R   R   t   CLVart   FindIxest   extendt   appendt
   get_string(   t   targett   sourceR	   t   for_signaturet   cmdt   dllt   implibt
   def_target(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/crossmingw.pyt   shlib_generator#   s       c         C   sõ   | j  |  d d ƒ } | j d d ƒ } | sL t j j d | j d ƒ ‚ n  | rŽ | j  |  d d ƒ rŽ |  j | j | d d d d ƒ ƒ n  | j  | d	 d
 ƒ } | j  |  d	 d
 ƒ } | rë | rë |  j | j | d d d	 d
 ƒ ƒ n  |  | f S(   NR   R   t   no_import_libi    sC   A shared library should have exactly one target with the suffix: %ss   $SHLIBSUFFIXR   R   R   R   (   R   t   getR   t   Errorst	   UserErrort   substR   t   ReplaceIxes(   R   R   R	   R   R   t
   def_sourceR   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/crossmingw.pyt   shlib_emitter3   s     t	   generatori   s   $RCCOMs	   $RCCOMSTRt   actiont   suffixs   .ot   source_scanners   .rcc         C   sœ  t  |  ƒ } | r· t j j |  j | d ƒ pA t j j | d ƒ ƒ } |  d j d g  ƒ } | sl g  } n  t j j | ƒ r“ | j	 t j
 ƒ } n  t j
 j | g | ƒ |  d d <n  d d d d d g } x$ | D] } t j j | ƒ |  ƒ qÓ W| d |  d <t j j d	 ƒ |  d
 <| d |  d <t j j d ƒ |  d <t j j d ƒ |  d <t |  d <|  j d t g ƒ | d |  d <| d |  d <| d |  d <d |  d <d |  d <d |  d <d |  d <| d |  d  <t j j d ƒ |  d! <d" |  d# <d$ |  d% <d |  d& <d' |  d( <t |  d) d* <d |  d+ <d |  d, <d- |  d. <d/ |  d0 <d1 |  d2 <d3 |  d <d |  d4 <d5 |  d6 <d |  d7 <d8 |  d9 <d: g |  d; <d< g |  d= <d  S(>   NR   t   ENVt   PATHs   g++t   gnulinkt   art   gast   CCs   $CCFLAGSt	   SHCCFLAGSt   CXXs	   $CXXFLAGSt
   SHCXXFLAGSs   $LINKFLAGS -sharedt   SHLINKFLAGSt	   SHLINKCOMt   SHLIBEMITTERt   ast   ASt   ARt   ranlibt   RANLIBR   R   s   .defR   s   .ot   SHOBJSUFFIXi   t&   STATIC_AND_SHARED_OBJECTS_ARE_THE_SAMEt   windrest   RCt   RCFLAGSsK   $( ${_concat(RCINCPREFIX, CPPPATH, RCINCSUFFIX, __env__, RDirs, TARGET)} $)t
   RCINCFLAGSs   --include-dir t   RCINCPREFIXt   RCINCSUFFIXsG   $RC $RCINCFLAGS $RCINCPREFIX $SOURCE.dir $RCFLAGS -i $SOURCE -o $TARGETt   RCCOMt   BUILDERSt   RESt	   OBJPREFIXt	   OBJSUFFIXt   libR   s   .aR   s
   $OBJPREFIXt   SHOBJPREFIXs
   $OBJSUFFIXt
   PROGPREFIXs   .exet
   PROGSUFFIXR   s   .dllR   s
   $LIBPREFIXt   LIBPREFIXESs
   $LIBSUFFIXt   LIBSUFFIXES(   R   t   ost   patht   dirnameR   R   R   R    t	   is_Stringt   splitt   pathsept   joint   ToolR   t   shlib_actiont   AppendR&   t   res_builder(   R	   t   mingw_prefixt   dirRP   t	   gnu_toolst   tool(    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/crossmingw.pyt   generateX   sZ    5	$


















c         C   s
   t  |  ƒ S(   N(   R   (   R	   (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/crossmingw.pyt   exists–   s    (   t
   __future__R    RO   t   os.patht   SCons.ActionR   t   SCons.Buildert
   SCons.Toolt
   SCons.UtilR   t   SplitR   t   getenvt   insertR   R   R&   t   ActionRW   t
   res_actiont   BuilderRV   t   SourceFileScannerRY   t   add_scannert   Defaultst   CScanR^   R_   (    (    (    s?   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/crossmingw.pyt   <module>   s(   		 				>