3 M��Z��@s�ddlZddlZddlmZdddddgZffd d �Zdd d �Zdd d�Zyddlm Z Wne k rvdd�Z YnXdd�Z ye e fZddlZWn ek r�e ZddlZYnXdd�Zdd�Zdd�ZdS)�N�)�VerificationError�sourcesZ include_dirsZ library_dirsZ extra_objectsZdependscKsLt�ddlm}|g}x|D]}|jtjj|��qW|f||d�|��S)Nr)� Extension)�namer)�_hack_at_distutils�distutils.corer�append�os�path�normpath)Z srcfilename�modnamer�kwdsrZ allsources�src�r�#/usr/lib64/python3.6/ffiplatform.py� get_extensions   rc Csft�tjj�}zt||||�}tjj|�}Wdx.|j�D]"\}}tjj|�|kr:|tj|<q:WX|S)z-Compile a C extension module using distutils.N) rr �environ�copy�_buildr �abspath�items�get)�tmpdir�ext�compiler_verbose�debugZ saved_environZoutputfilename�key�valuerrr�compiles rc Csddlm}ddl}ddl}|d|gi�}|j�|jd�}|dkrLtjj}d|f|d<d |d<d|f|d <d|f|d <yR|j j d�p�d}z.|j j |�|j d�|j d�} | j�\} Wd|j j |�XWnD|jj|jjfk �r} ztd | jj| f��WYdd} ~ XnX| S) Nr)� DistributionZ ext_modulesZ build_ext� ffiplatformrT�forceZ build_libZ build_tempz%s: %s)r!T)rr Zdistutils.errorsZ distutils.logZparse_config_filesZget_option_dict�sys�flagsr�logZ set_thresholdZ set_verbosityZ run_commandZget_command_objZ get_outputs�errorsZ CompileErrorZ LinkErrorr� __class__�__name__) rrrrr Z distutilsZdistZoptionsZ old_levelZcmd_objZsoname�errrr s.        &r)�samefilecCstjj|�tjj|�kS)N)r r r)�f1�f2rrrr*Asr*c Cs�tjj|�s|S|}g}xn|}tjj|�\}}||ks<| r@|S|j|�y$t|tj�rl|j�tjj|�SWqt k r�YqXqWdS)N) r r �isabs�splitr r*�curdir�reverse�join�OSError)r �dir�namesZprevdirrrrr�maybe_relative_pathDs    r5cCs�t|t�r"|jdt|�|f�n�t|t�rrt|j��}|jdt|��x�|D]}t||�t|||�qPWndt|tt f�r�|jdt|��xB|D]}t||�q�Wn*t|t �r�|jd|f�nt d|f��dS)Nz%ds%sz%ddz%dlz%diz7the keywords to verify() contains unsupported object %r) � isinstance�str�write�len�dict�sorted�keys�_flatten�list�tuple� int_or_long� TypeError)�x�fr<rrrrrr=_s        r=cCstj�}t||�|j�S)N)� cStringIO�StringIOr=�getvalue)rBrCrrr�flattenrs rGc Cs0tjdkr,y ddl}Wntk r*YnXdS)NZwin32r)r#�platform� setuptools� ImportError)rIrrrrws   r)rN)rN)r#r �errorrZLIST_OF_FILE_NAMESrrrZos.pathr*rJr5�intZlongr@rD� NameError�ior=rGrrrrr�s(