;ς
ό?c           @   s·   d  Z  d Z d k Z d k Z d k l Z l Z d k l Z d k l	 Z	 d k
 l Z d k l Z l Z l Z d k l Z l Z l Z l Z d	 k l Z d
 e f d     YZ d S(   s9  distutils.unixccompiler

Contains the UnixCCompiler class, a subclass of CCompiler that handles
the "typical" Unix-style command-line C compiler:
  * macros defined with -Dname[=value]
  * macros undefined with -Uname
  * include search directories specified with -Idir
  * libraries specified with -lllib
  * library search directories specified with -Ldir
  * compile handled by 'cc' (or similar) executable with -c option:
    compiles .c to .o
  * link static library handled by 'ar' command (possibly with 'ranlib')
  * link shared library handled by 'cc -shared'
sA   $Id: unixccompiler.py,v 1.54 2003/06/01 19:27:40 jackjansen Exp $N(   s
   StringTypes   NoneType(   s   copy(   s	   sysconfig(   s   newer(   s	   CCompilers   gen_preprocess_optionss   gen_lib_options(   s   DistutilsExecErrors   CompileErrors   LibErrors	   LinkError(   s   logs   UnixCCompilerc           B   sr  t  Z d Z h  d e <d d g <d d g <d d g <d d d g <d	 d g <d
 d d g <d e <Z e i d  d j o d g e d <n d d d d d d g Z d Z d Z	 d Z
 d Z d Z Z Z e i d j o
 d Z n e e e e e d  Z d   Z e d e d   Z e e e e e d e e e e d! 
 Z d"   Z d#   Z d$   Z d d%  Z RS(&   Ns   unixs   preprocessors   compilers   ccs   compiler_sos   compiler_cxxs	   linker_sos   -shareds
   linker_exes   archivers   ars   -crs   ranlibi   s   darwins   .cs   .Cs   .ccs   .cxxs   .cpps   .ms   .os   .as   .sos   .dylibs   lib%s%ss   cygwins   .exec         C   s  |  i t | |  \ }	 } } t | |  } |  i | } | o | i d | g  n | o | | d *n | o | i |  n | i |  |  i p | t j p t | |  oZ | o |  i t i i |   n y |  i |  Wqt j
 o }
 t |
  qXn d  S(   Ns   -oi    (   s   selfs   _fix_compile_argss   Nones   macross   include_dirss   ignores   gen_preprocess_optionss   pp_optss   preprocessors   pp_argss   output_files   extends   extra_preargss   extra_postargss   appends   sources   forces   newers   mkpaths   oss   paths   dirnames   spawns   DistutilsExecErrors   msgs   CompileError(   s   selfs   sources   output_files   macross   include_dirss   extra_preargss   extra_postargss   pp_argss   pp_optss   ignores   msg(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys
   preprocessS   s"    'c         C   sN   y) |  i |  i | | d | g |  Wn t j
 o } t	 |  n Xd  S(   Ns   -o(
   s   selfs   spawns   compiler_sos   cc_argss   srcs   objs   extra_postargss   DistutilsExecErrors   msgs   CompileError(   s   selfs   objs   srcs   exts   cc_argss   extra_postargss   pp_optss   msg(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   _compilen   s    )i    c         C   sέ   |  i | |  \ } } |  i | d | } |  i | |  o |  i t	 i
 i |   |  i |  i | g | |  i  |  i o@ y |  i |  i | g  WqΕ t j
 o } t |  qΕ XqΩ n t i d |  d  S(   Ns
   output_dirs   skipping %s (up-to-date)(   s   selfs   _fix_object_argss   objectss
   output_dirs   library_filenames   output_libnames   output_filenames
   _need_links   mkpaths   oss   paths   dirnames   spawns   archivers   ranlibs   DistutilsExecErrors   msgs   LibErrors   logs   debug(   s   selfs   objectss   output_libnames
   output_dirs   debugs   target_langs   output_filenames   msg(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   create_static_libu   s    "	
c         C   sΕ  |  i | |  \ } } |  i | | |  \ } } } t |  | | |  } t
 |  t t f j o t d  n | t j	 o t i i | |  } n |  i | |  o| |  i | d | g } |	 o d g | d *n |
 o |
 | d *n | o | i |  n |  i t i i |   yi | t i j o |  i } n |  i  } | d j o |  i" o |  i" d | d <n |  i# | |  WqΑt$ j
 o } t& |  qΑXn t' i d |  d  S(   Ns%   'output_dir' must be a string or Nones   -os   -gi    s   c++s   skipping %s (up-to-date)((   s   selfs   _fix_object_argss   objectss
   output_dirs   _fix_lib_argss	   librariess   library_dirss   runtime_library_dirss   gen_lib_optionss   lib_optss   types
   StringTypes   NoneTypes	   TypeErrors   Nones   oss   paths   joins   output_filenames
   _need_links   ld_argss   debugs   extra_preargss   extra_postargss   extends   mkpaths   dirnames   target_descs	   CCompilers
   EXECUTABLEs
   linker_exes   linkers	   linker_sos   target_langs   compiler_cxxs   spawns   DistutilsExecErrors   msgs	   LinkErrors   log(   s   selfs   target_descs   objectss   output_filenames
   output_dirs	   librariess   library_dirss   runtime_library_dirss   export_symbolss   debugs   extra_preargss   extra_postargss
   build_temps   target_langs   lib_optss   ld_argss   msgs   linker(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   link   s6    	
c         C   s   d | Sd  S(   Ns   -L(   s   dir(   s   selfs   dir(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   library_dir_optionΊ   s    c         C   s   t  i i t i d   } t i d  d j o d | SnW t i d  d j o d | Sn7 | d  d	 j p | d  d
 j o d | Sn	 d | Sd  S(   Ns   CCi   s   darwins   -Li   s   hp-uxs   +s -Li   s   gccs   g++s   -Wl,-Rs   -R(	   s   oss   paths   basenames	   sysconfigs   get_config_vars   compilers   syss   platforms   dir(   s   selfs   dirs   compiler(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   runtime_library_dir_option½   s    "c         C   s   d | Sd  S(   Ns   -l(   s   lib(   s   selfs   lib(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   library_optionΥ   s    c         C   sθ   |  i | d d } |  i | d d }	 |  i | d d } x | D] }
 t i	 i
 |
 |  } t i	 i
 |
 |	  } t i	 i
 |
 |  } t i	 i |  o | SqF t i	 i |  o | SqF t i	 i |  o | SqF qF Wt Sd  S(   Ns   lib_types   shareds   dylibs   static(   s   selfs   library_filenames   libs   shared_fs   dylib_fs   static_fs   dirss   dirs   oss   paths   joins   shareds   dylibs   statics   existss   None(   s   selfs   dirss   libs   debugs   shared_fs   statics   static_fs   dylibs   shareds   dylib_fs   dir(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   find_library_fileΨ   s     (   s   __name__s
   __module__s   compiler_types   Nones   executabless   syss   platforms   src_extensionss   obj_extensions   static_lib_extensions   shared_lib_extensions   dylib_lib_extensions   static_lib_formats   shared_lib_formats   dylib_lib_formats   exe_extensions
   preprocesss   _compiles   create_static_libs   links   library_dir_options   runtime_library_dir_options   library_options   find_library_file(    (    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   UnixCCompiler-   s(   f

	'+			(   s   __doc__s   __revision__s   oss   syss   typess
   StringTypes   NoneTypes   copys	   distutilss	   sysconfigs   distutils.dep_utils   newers   distutils.ccompilers	   CCompilers   gen_preprocess_optionss   gen_lib_optionss   distutils.errorss   DistutilsExecErrors   CompileErrors   LibErrors	   LinkErrors   logs   UnixCCompiler(   s
   StringTypes   __revision__s   DistutilsExecErrors   newers   gen_preprocess_optionss	   CCompilers   gen_lib_optionss	   LinkErrors   UnixCCompilers   syss	   sysconfigs   CompileErrors   copys   oss   LibErrors   NoneTypes   log(    (    s4   /mit/python/lib/python2.3/distutils/unixccompiler.pys   ?   s   