ó
!Æ^c           @   sÏ   d  Z  d d l m Z m Z d d l m Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d S(   s   
g++/llvm detection.
iÿÿÿÿ(   t   ccroott   ar(   t   confc         C   s>   |  j  d d g d d ƒ} |  j | d t ƒd |  j _ d S(   sK   
	Finds the program g++, and if present, try to detect its version number
	s   g++s   c++t   vart   CXXt   gccN(   t   find_programt   get_cc_versiont   Truet   envt   CXX_NAME(   R   t   cxx(    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   find_gxx   s    c         C   s  |  j  } g  | _ d d g | _ | j s9 | j | _ n  g  | _ d g | _ d | _ d | _ d | _	 d | _
 d | _ d | _ d | _ d | _ d	 | _ d
 | _ d | _ d g | _ d g | _ d | _ d
 g | _ d | _ d d d g | _ d g | _ d | _ d S(   s0   
	Common flags for g++ on nearly all platforms
	s   -cs   -os   -I%ss   -D%ss   -l%ss   -L%ss   -Wl,-rpath,%ss	   -Wl,-h,%ss   -Wl,-Bdynamics   -Wl,-Bstatics   %ss   -fPICs   -shareds   lib%s.sos   lib%s.as   -bundles
   -undefinedt   dynamic_lookups	   %s.bundleN(   R	   t	   CXX_SRC_Ft	   CXX_TGT_Ft   LINK_CXXR   t   CXXLNK_SRC_Ft   CXXLNK_TGT_Ft
   CPPPATH_STt
   DEFINES_STt   LIB_STt
   LIBPATH_STt   STLIB_STt   STLIBPATH_STt   RPATH_STt	   SONAME_STt   SHLIB_MARKERt   STLIB_MARKERt   cxxprogram_PATTERNt   CXXFLAGS_cxxshlibt   LINKFLAGS_cxxshlibt   cxxshlib_PATTERNt   LINKFLAGS_cxxstlibt   cxxstlib_PATTERNt   LINKFLAGS_MACBUNDLEt   CXXFLAGS_MACBUNDLEt   macbundle_PATTERN(   R   t   v(    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_common_flags   s4    																	c         C   sM   |  j  } d | _ d | _ d | _ d | _ g  | _ | j d d g ƒ d S(   s0   Configuration flags for executing gcc on Windowss   %s.exes   %s.dlls   %s.dll.as   -Wl,--out-implib,%st	   LINKFLAGSs   -Wl,--enable-auto-importN(   R	   R   R    t   implib_PATTERNt	   IMPLIB_STR   t   append_value(   R   R&   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_win32@   s    						c         C   s<   t  |  ƒ |  j } d | _ | j d d g ƒ g  | _ d S(   s/   Configuration flags for executing g++ on Cygwins	   cyg%s.dllR   s   -Wl,--enable-auto-image-baseN(   R,   R	   R    R+   R   (   R   R&   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_cygwinQ   s
    
		c         C   ss   |  j  } d g | _ d g | _ d | _ d | _ d g | _ d g | _ g  | _ g  | _ g  | _	 g  | _
 d S(   s.   Configuration flags for executing g++ on MacOSs   -fPICs   -dynamiclibs   lib%s.dylibs   -F%ss
   -frameworks   -archN(   R	   R   R   R    t   FRAMEWORKPATH_STt   FRAMEWORK_STt   ARCH_STR!   R   R   R   (   R   R&   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_darwinZ   s    						c         C   s1   |  j  } d g | _ d d g | _ g  | _ d S(   s,   Configuration flags for executing g++ on AIXs	   -Wl,-brtls   -shareds   -Wl,-brtl,-bexpfullN(   R	   t   LINKFLAGS_cxxprogramR   R   (   R   R&   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_aixk   s    	c         C   s7   |  j  } g  | _ g  | _ d d g | _ d | _ d  S(   Ns   -fPICs   -DPICs   lib%s.sl(   R	   R   R   t   CFLAGS_cxxshlibR    (   R   R&   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_hpuxt   s
    			c         C   s   g  |  j  _ d  S(   N(   R	   R   (   R   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_openbsd|   s    c         C   s(   |  j  } g  | _ g  | _ g  | _ d  S(   N(   R	   R   R   R   (   R   R&   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gcc_modifier_osf1V€   s    			c         C   s0   t  |  d |  j j d ƒ } | r, | ƒ  n  d S(   sA   Execute platform-specific functions based on *gxx_modifier_+NAME*t   gxx_modifier_N(   t   getattrR	   t   DEST_OSt   None(   R   t   gxx_modifier_func(    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   gxx_modifier_platform‡   s    c         C   sW   |  j  ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j ƒ  |  j d ƒ d S(   s   
	Configuration for g++
	R   N(   R   t   find_arR'   R=   t   cxx_load_toolst   cxx_add_flagst   link_add_flagst   check_gcc_o_space(   R   (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt	   configure‘   s    






N(   t   __doc__t   waflib.ToolsR    R   t   waflib.ConfigureR   R   R'   R,   R-   R1   R3   R5   R6   R7   R=   RC   (    (    (    s3   /git_repos/PolyLV2/poly_mclk_in/waflib/Tools/gxx.pyt   <module>	   s   	)		
