???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
iN                 @   s  d dl Z d dlZd dlZd dlZddlmZ ejjejZ	ejjej
ZejjejZejjejZdejkrejjejd ZnejjejjejZejdkrej jd+rejjejjeZdd	 Zeed
dZeoejdkoej jd,r
ejjejjeZdd Ze ZdZyes*ejZW n ek
rB   Y nX dd Z d-ddZ!d.ddZ"dd Z#dd Z$dd Z%d/ddZ&ej'dZ(ej'dZ)ej'dZ*d0dd Z+d!d" Z,da-d#d$ Z.d%d& Z/d'd( Z0d)d* Z1dS )1    N   )DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64c             C   s.   x(dD ] }t jjt jj| d|rdS qW dS )N
Setup.distSetup.localModulesTF)r   r   )ospathisfilejoin)dfn r   +/usr/lib64/python3.6/distutils/sysconfig.py_is_python_source_dir)   s    
r   _homec               C   s   t rtt S ttS )N)	_sys_homer   project_baser   r   r   r   _python_build2   s    r    c               C   s   dt jd d  S )Nz%d.%d   )sysversion_infor   r   r   r   get_python_versionD   s    r   c             C   s   |d kr| rt pt}tjdkrjtrL| r.tp,tS tjjt	dd}tjj
|S dt  t }tjj|d|S tjdkrtjj|dS tdtj d S )NposixsrcdirZIncludepythonincluder   zFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIXBASE_PREFIXr
   namepython_buildr   r   r   r   get_config_varnormpathr   build_flagsr   )plat_specificprefixZincdirZ
python_dirr   r   r   get_python_incL   s    

r)   c             C   s   |d kr&|r| rt pt}n| r"tp$t}tjdkrp| s8|r>d}nd}tjj||dt  }|r`|S tjj|dS n<tjdkr|rtjj|dS tjj|ddS nt	dtj d S )	Nr   lib64libr   zsite-packagesr   ZLibz?I don't know where Python installs its library on platform '%s')
r    r!   EXEC_PREFIXPREFIXr
   r"   r   r   r   r   )r'   standard_libr(   r+   Z	libpythonr   r   r   get_python_libo   s(    

r/   c          
   C   s  | j dkrtjdkr8tds8dd l}|jt dtd< tdddd	d
dddd	\	}}}}}}}}	}
dtj	krtj	d }tjdkrdtj	kr|j
|r||t|d   }|}dtj	krtj	d }dtj	krtj	d }dtj	krtj	d }n|d }dtj	kr|d tj	d  }d	tj	kr@|d tj	d	  }|d tj	d	  }dtj	kr|d tj	d  }|d tj	d  }|d tj	d  }dtj	krtj	d }	dtj	kr|	d tj	d  }n|	d |
 }|d | }| j|||d | ||||d || _d S )NZunixdarwinZCUSTOMIZED_OSX_COMPILERr   TrueCCCXXOPTCFLAGSCCSHAREDLDSHAREDSHLIB_SUFFIXARARFLAGSZCPPz -ELDFLAGS CPPFLAGS)ZpreprocessorcompilerZcompiler_soZcompiler_cxxZ	linker_soZ
linker_exearchiver)Zcompiler_typer   platformr$   _osx_supportcustomize_compiler_config_varsget_config_varsr
   environ
startswithlenZset_executablesZshared_lib_extension)r>   rA   ZccZcxxoptZcflagsZccsharedZldsharedZshlib_suffixarZar_flagsZnewccZcppr?   Zcc_cmdr   r   r   rB      s\    


 











rB   c              C   sD   t r,tjdkr"tjjtptd} q6tp(t} n
tdd} tjj| dS )Nr   PCr   )r'   zpyconfig-64.h)r#   r
   r"   r   r   r   r   r)   )inc_dirr   r   r   get_config_h_filename   s    


rL   c              C   s\   t rtjjtptdS tddd} djt t	}t
tjdrL|dtjj 7 }tjj| |dS )NMakefiler   r   )r'   r.   zconfig-{}{}
_multiarchz-%s)r#   r
   r   r   r   r   r/   formatr   r&   hasattrr   implementationrN   )Zlib_dirZconfig_filer   r   r   get_makefile_filename   s    rR   c             C   s   |d kri }t jd}t jd}xx| j }|s0P |j|}|rz|jdd\}}yt|}W n tk
rn   Y nX |||< q"|j|}|r"d||jd< q"W |S )Nz"#define ([A-Z][A-Za-z0-9_]+) (.*)
z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/
r   r   r   )recompilereadlinematchgroupint
ValueError)fpg	define_rxundef_rxlinemnvr   r   r   parse_config_h   s(    


  

rb   z"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)z\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}c             C   s  ddl m} || ddddd}|d kr*i }i }i }x|j }|d krFP tj|}|r4|jdd\}}	|	j }	|	jdd}
d	|
kr|	||< q4yt|	}	W n$ t	k
r   |	jdd	||< Y q4X |	||< q4W d}x|rxt
|D ]}|| }tj|ptj|}|rx|jd}d}||kr2t|| }n||krBd}nx|tjkrZtj| }n`||kr|jdr|dd  |krd}n$d| |krd}nt|d|  }nd ||< }|r~||j d  }|d |j  | | }d	|kr|||< nzyt|}W n" t	k
r*   |j ||< Y n
X |||< ||= |jdr~|dd  |kr~|dd  }||kr~|||< q||= qW qW |j  x.|j D ]"\}}	t|	tr|	j ||< qW |j| |S )Nr   )TextFiler   surrogateescape)Zstrip_commentsZskip_blanksZ
join_lineserrorsr   z$$r   $r5   r;   r=   TFPY_   )r5   r;   r=   )Zdistutils.text_filerc   rU   _variable_rxrV   rW   stripreplacerX   rY   list_findvar1_rxsearch_findvar2_rxstrr
   rE   rF   endstartcloseitems
isinstanceupdate)r   r[   rc   rZ   donenotdoner^   r_   r`   ra   tmpvrenamed_variablesr"   valuefounditemafterkr   r   r   parse_makefile  s    








 


r   c             C   sZ   xTt j| ptj| }|rP|j \}}| d| |j|jd | |d   } qP qW | S )Nr   r   )rm   rn   ro   spangetrW   )svarsr_   Zbegrq   r   r   r   expand_makefile_vars  s    *r   c           	   C   sV   t jjddjtjtjttjddd} t	| t
 t dgd}|j}i atj| d S )N_PYTHON_SYSCONFIGDATA_NAMEz+_sysconfigdata_{abi}_{platform}_{multiarch}rN   r   )abir@   	multiarchbuild_time_varsr   )r
   rE   r   rO   r   abiflagsr@   getattrrQ   
__import__globalslocalsr   rC   rv   )r"   _tempr   r   r   r   _init_posix  s    r   c              C   s~   i } t ddd| d< t ddd| d< tdd| d< tj d | d< d	| d
< t jdd| d< tjjtjj	t
j| d< | ad S )Nr   r   )r'   r.   LIBDEST
BINLIBDEST)r'   	INCLUDEPY
EXT_SUFFIXz.exeEXE.r   VERSIONBINDIR)r/   r)   _impextension_suffixesr   rk   r
   r   dirnameabspathr   
executablerC   )r[   r   r   r   _init_nt  s    r   c              G   s^  t d kr(t jdtj }|r(|  ni a tt d< tt d< t jd}|d k	rV|t d< t jdt}tjdkrtrtj	j
t }tj	j||}ntj	j
t }tj	jtj	j|t d< totjdkr
t}tj	jt d  o|tj kr
tj	j|t d }tj	j|t d< tjdkr(d	d l}|jt  | rVg }x| D ]}|jt j| q8W |S t S d S )
NZ_init_r(   exec_prefixr   SOr   r   r0   r   )rC   r   r   r
   r"   r-   r,   r   r#   r   r   rR   r   r   r%   isabsgetcwdr   r@   rA   customize_config_varsappend)argsfuncr   r   baserA   valsr"   r   r   r   rD     s@    




rD   c             C   s*   | dkrdd l }|jdtd t j| S )Nr   r   z SO is deprecated, use EXT_SUFFIXr   )warningswarnDeprecationWarningrD   r   )r"   r   r   r   r   r$     s    r$   )r   r   )r   r   )r   N)r   r   N)N)N)2r   r
   rS   r   re   r   r   r%   r(   r-   r   r,   base_prefixr!   base_exec_prefixr    rE   r   r   r   r   r"   lowerendswithr   r   r   r   r#   r&   r   AttributeErrorr   r)   r/   rB   rL   rR   rb   rT   ri   rm   ro   r   r   rC   r   r   rD   r$   r   r   r   r   <module>   sX   



#
+I




jJ