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

Contains BorlandCCompiler, an implementation of the abstract CCompiler class
for the Borland C++ compiler.
s?   $Id: bcppcompiler.py,v 1.15 2002/11/19 13:12:26 akuchling Exp $N(   s   DistutilsExecErrors   DistutilsPlatformErrors   CompileErrors   LibErrors	   LinkErrors   UnknownFileError(   s	   CCompilers   gen_preprocess_optionss   gen_lib_options(   s
   write_file(   s   newer(   s   logs   BCPPCompilerc           B   sϊ   t  Z d  Z d Z h  Z d g Z d d d g Z e e Z d Z d Z	 d Z
 d	 Z Z d
 Z d d d d  Z e e e d e e e d  Z e d e d  Z e e e e e d e e e e d 
 Z d d  Z d d d  Z e e e e e d  Z RS(   s   Concrete class that implements an interface to the Borland C/C++
    compiler, as defined by the CCompiler abstract class.
    s   bcpps   .cs   .ccs   .cpps   .cxxs   .objs   .libs   .dlls   %s%ss   .exei    c         C   sΒ   t  i |  | | |  d |  _ d |  _ d |  _ t	 |  _
 d d d d g |  _ d d d d g |  _ d	 d
 d d g |  _ d	 d
 d d g |  _ g  |  _ d
 d d g |  _ d
 d d d g |  _ d  S(   Ns	   bcc32.exes   ilink32.exes   tlib.exes   /tWMs   /O2s   /qs   /g0s   /Ods   /Tpds   /Gns   /xs   /r(   s	   CCompilers   __init__s   selfs   verboses   dry_runs   forces   ccs   linkers   libs   Nones   preprocess_optionss   compile_optionss   compile_options_debugs   ldflags_shareds   ldflags_shared_debugs   ldflags_statics   ldflags_exes   ldflags_exe_debug(   s   selfs   verboses   dry_runs   force(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   __init__9   s    					c	         C   sΩ  |  i | | | | | |  \ } } } }	 } | p g  }
 |
 i d  | o |
 i |  i  n |
 i |  i  x\| i   D]N\ } \ } } t i i |  } t i i |  } |  i t i i |   | d j o q n | d j oE y |  i d d | | g  Wq t j
 o } t |  q Xq n | |  i j o
 d } n! | |  i! j o
 d } n d } d | } y4 |  i |  i# g |
 |	 | | g | | g  Wq t j
 o } t |  q Xq W| Sd  S(	   Ns   -cs   .ress   .rcs   brcc32s   -fos    s   -Ps   -o($   s   selfs   _setup_compiles
   output_dirs   macross   include_dirss   sourcess   dependss   extra_postargss   objectss   pp_optss   builds   extra_preargss   compile_optss   appends   debugs   extends   compile_options_debugs   compile_optionss   itemss   objs   srcs   exts   oss   paths   normpaths   mkpaths   dirnames   spawns   DistutilsExecErrors   msgs   CompileErrors   _c_extensionss	   input_opts   _cpp_extensionss
   output_opts   cc(   s   selfs   sourcess
   output_dirs   macross   include_dirss   debugs   extra_preargss   extra_postargss   dependss   pp_optss   compile_optss   builds   msgs   objectss   srcs   objs   exts	   input_opts
   output_opt(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   compileU   s>     


4c   	      C   s―   |  i | |  \ } } |  i | d | } |  i | |  o[ | d g | } | o n y |  i
 |  i g |  Wq« t j
 o } t |  q« Xn t i	 d |  d  S(   Ns
   output_dirs   /us   skipping %s (up-to-date)(   s   selfs   _fix_object_argss   objectss
   output_dirs   library_filenames   output_libnames   output_filenames
   _need_links   lib_argss   debugs   spawns   libs   DistutilsExecErrors   msgs   LibErrors   log(	   s   selfs   objectss   output_libnames
   output_dirs   debugs   target_langs   output_filenames   msgs   lib_args(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   create_static_lib   s    c          C   sΧ  |  i | |  \ } } |  i | | |  \ } } } | o t i	 d t
 |   n | t j	 o t i i | |  } n |  i | |  o3| t i j o) d } |	 o |  i } qξ |  i } n& d } |	 o |  i } n |  i } | t j o
 d } n΅ t i i |  \ } } t i i  |  \ } } t i i# | d  } t i i | d |  } d g } x, | p g  D] } | i' d | | f  q{W|  i( t) | | f d	 |  t* t i i+ |  } | g } g  } x] | D]U } t i i  t i i/ |   \ } } | d
 j o | i' |  qδ| i' |  qδWx+ | D]# } | i' d t i i+ |   qDW| i' d  | i2 |  | i2 d | g  | i' d  xN | D]F } |  i4 | | |	  } | t j o | i' |  q¬| i' |  q¬W| i' d  | i' d  | i2 d | g  | i' d  | i2 |  |
 o |
 | d *n | o | i2 |  n |  i8 t i i# |   y |  i9 |  i: g |  WqΣt; j
 o } t= |  qΣXn t i d |  d  S(   Ns7   I don't know what to do with 'runtime_library_dirs': %ss   c0w32s   c0d32s    i    s   %s.defs   EXPORTSs     %s=_%ss
   writing %ss   .ress   /L%ss   /L.s   ,s   ,,s   import32s   cw32mts   skipping %s (up-to-date)(>   s   selfs   _fix_object_argss   objectss
   output_dirs   _fix_lib_argss	   librariess   library_dirss   runtime_library_dirss   logs   warns   strs   Nones   oss   paths   joins   output_filenames
   _need_links   target_descs	   CCompilers
   EXECUTABLEs   startup_objs   debugs   ldflags_exe_debugs   ld_argss   ldflags_exes   ldflags_shared_debugs   ldflags_shareds   export_symbolss   def_files   splits   heads   tails   splitexts   modnames   exts   dirnames   temp_dirs   contentss   syms   appends   executes
   write_files   maps   normpaths   objects2s	   resourcess   files   normcases   bases   ls   extends   libs   find_library_files   libfiles   extra_preargss   extra_postargss   mkpaths   spawns   linkers   DistutilsExecErrors   msgs	   LinkError(    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   ld_argss   heads   files   contentss   exts   tails   startup_objs   msgs	   resourcess   temp_dirs   objects2s   libfiles   syms   modnames   libs   ls   def_files   base(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   link«   s    	

	 	 $ ! c   	      C   s’   | o( | d } | d | d | | f } n | d | f } x\ | D]P } xG | D]? } t i i	 | |  i |   } t i i |  o | SqS qS WqF Wt Sd  S(   Ns   _ds   _bcpp(   s   debugs   libs   dlibs	   try_namess   dirss   dirs   names   oss   paths   joins   selfs   library_filenames   libfiles   existss   None(	   s   selfs   dirss   libs   debugs	   try_namess   names   libfiles   dlibs   dir(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   find_library_file4  s    

  s    c         C   s-  | t j o
 d } n g  } x| D]ύ } t i i t i i |   \ } } | |  i d d g j o t d | | f  n | o t i i |  } n | d j o$ | i t i i | | |   q$ | d j o$ | i t i i | | d   q$ | i t i i | | |  i   q$ W| Sd  S(   Ns    s   .rcs   .ress"   unknown file type '%s' (from '%s')(   s
   output_dirs   Nones	   obj_namess   source_filenamess   src_names   oss   paths   splitexts   normcases   bases   exts   selfs   src_extensionss   UnknownFileErrors	   strip_dirs   basenames   appends   joins   obj_extension(   s   selfs   source_filenamess	   strip_dirs
   output_dirs	   obj_namess   exts   bases   src_name(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   object_filenamesN  s"     
 $$$c         C   s   |  i t | |  \ }
 } } t | |  } d g | } | t j	 o | i
 d |  n | o | | d *n | o | i |  n | i
 |  |  i p | t j p t | |  o_ | o |  i t i i |   n y |  i |  Wqt j
 o }	 |	 GHt |	  qXn d  S(   Ns	   cpp32.exes   -oi    (   s   selfs   _fix_compile_argss   Nones   macross   include_dirss   _s   gen_preprocess_optionss   pp_optss   pp_argss   output_files   appends   extra_preargss   extra_postargss   extends   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   msgs   _(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys
   preprocessj  s$    '(   s   __name__s
   __module__s   __doc__s   compiler_types   executabless   _c_extensionss   _cpp_extensionss   src_extensionss   obj_extensions   static_lib_extensions   shared_lib_extensions   static_lib_formats   shared_lib_formats   exe_extensions   __init__s   Nones   compiles   create_static_libs   links   find_library_files   object_filenamess
   preprocess(    (    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   BCPPCompiler   s$    	

='(   s   __doc__s   __revision__s   syss   oss   distutils.errorss   DistutilsExecErrors   DistutilsPlatformErrors   CompileErrors   LibErrors	   LinkErrors   UnknownFileErrors   distutils.ccompilers	   CCompilers   gen_preprocess_optionss   gen_lib_optionss   distutils.file_utils
   write_files   distutils.dep_utils   newers	   distutilss   logs   BCPPCompiler(   s	   CCompilers   DistutilsPlatformErrors   __revision__s   DistutilsExecErrors   logs   gen_preprocess_optionss   gen_lib_optionss	   LinkErrors   BCPPCompilers   syss   newers   CompileErrors
   write_files   oss   LibErrors   UnknownFileError(    (    s3   /mit/python/lib/python2.3/distutils/bcppcompiler.pys   ?   s   +