a
    	$aG                     @   s   d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	 e	dddZ
e	dd Zd	d
 Zdd Zeej_dddZeej_dd Zeej_dS )    N)BuildLogsUtils	ConfigureErrorsconf      r   c                 C   s   | j jrd}| j jr"| | d S g }| jdd| j j d | d | d}| j j|k| j _| | |	| j d  || j _
d S )N)r
      r   Zpython3PYTHON)var	mandatorypython)envenable_fuzzingHAVE_PYTHON_HZcheck_python_versionfind_programdisable_pythonloadr   PYTHON_SPECIFIEDappendpython_interpreters)r   versionZinterpretersZpath_python r   m/home/jack/SDK/ZBT-AX3000-OpenWrt-21.02/build_dir/hostpkg/samba-4.14.12/./buildtools/wafsamba/samba_python.pySAMBA_CHECK_PYTHON   s    



r   c                 C   sv   | j jr.| dd dd | j jD | j _d S | j d g krPt|  d| j d< n| dd dd | j jD | j _d S )	Nzpython headersz&Check disabled due to --disable-pythonc                 S   s$   g | ]}| d s| ds|qS z
PYTHONDIR=zPYTHONARCHDIR=
startswith.0xr   r   r   
<listcomp>'   s   

z.SAMBA_CHECK_PYTHON_HEADERS.<locals>.<listcomp>Zpython_headers_checkedyeszusing cachec                 S   s$   g | ]}| d s| ds|qS r   r   r!   r   r   r   r$   6   s   

)r   r   msgDEFINES_check_python_headersr   r   r   r   SAMBA_CHECK_PYTHON_HEADERS    s    r)   c                 C   s   |    tj| jd d }|d | jd< | jd dd| jd< | jd D ]4}|d	rN| jd
|dd   | jd | qNg | j_	dg| j_
d S )Npyext_PATTERNr    PYTHON_SO_ABI_FLAG_-ZPYTHON_LIBNAME_SO_ABI_FLAGZLINKFLAGS_PYEMBEDz-LZLIBPATH_PYEMBED   z-fno-strict-aliasing)Zcheck_python_headersospathsplitextr   replacer    append_uniqueremoveZDEFINES_PYEXTZCFLAGS_PYEXT)r   Zabi_patternlibr   r   r   r(   :   s    

r(   c                 C   s
   |  dS )Nr   )
CONFIG_SET)selfr   r   r   PYTHON_BUILD_IS_ENABLEDN   s    r9   r+   Tc                 C   s   |   sd}| jjrd}|	dur,|d|	 7 }|d7 }| j||d}|durTd| }nd}| j||||||||
|||ddd	d||d
 dS )z"build a python extension for SambaFNz -DSTATIC_LIBPYTHON_MODULES=%sz -DPY_SSIZE_T_CLEAN=1)varsz	python/%sTr   z${PYTHONARCHDIR})sourcedepspublic_depsincludescflags
cflags_endlocal_includer:   realname	link_namepyexttarget_typeinstall_pathallow_undefined_symbolsinstallenabled)r9   r   r   EXPAND_VARIABLESSAMBA_LIBRARY)bldnamer;   r<   r=   rB   r?   r@   r>   init_function_sentinelrA   r:   rH   rI   rC   r   r   r   SAMBA_PYTHONT   s:    
rO   c                 C   s    | j d r|| j d  S |S d S )Nr,   )r   )rL   rM   r   r   r   pyembed_libname   s    
rP   )r	   )r+   r+   r+   Nr+   Nr+   NTNTT)r0   syswaflibr   r   r   r   r   waflib.Configurer   r   r)   r(   r9   BuildContextrO   rP   r   r   r   r   <module>   s2   
            
A