3 4bVjÈNã @sÚddlZddlZddlZddlZddlmZejjejƒZ ejjej ƒZ ejjej ƒZ ejjejƒZdejkr‚ejjejdƒZnejjejjejƒƒZejdkrÄejƒjd+ƒrÄejjejjeƒƒZdd „Zeed dƒZeoòejdkoòejƒjd,ƒ�r ejjejjeƒƒZd d „ZeƒZd Zye�s*ejZWnek �rBYnXdd„Z d-dd„Z!d.dd„Z"dd„Z#dd„Z$dd„Z%d/dd„Z&ej'dƒZ(ej'dƒZ)ej'dƒZ*d0dd „Z+d!d"„Z,da-d#d$„Z.d%d&„Z/d'd(„Z0d)d*„Z1dS)1éNé)ÚDistutilsPlatformErrorZ_PYTHON_PROJECT_BASEÚntú\pcbuild\win32ú\pcbuild\amd64cCs.x(dD] }tjjtjj|d|ƒƒrdSqWdS)Nú Setup.distú Setup.localÚModulesTF)rr)ÚosÚpathÚisfileÚjoin)ÚdÚfn©rú+/usr/lib64/python3.6/distutils/sysconfig.pyÚ_is_python_source_dir)s rÚ_homecCstr ttƒSttƒS)N)Ú _sys_homerÚ project_baserrrrÚ _python_build2srÚcCsdtjdd…S)Nz%d.%dé)ÚsysÚ version_inforrrrÚget_python_versionDsrcCs”|dkr|rtpt}tjdkrjtrL|r.tp,tStjjt dƒdƒ}tjj |ƒSdt ƒt }tjj|d|ƒStjdkr‚tjj|dƒSt dtjƒ‚dS)NÚposixÚsrcdirZIncludeÚpythonÚincluderzFI don't know where Python installs its C header files on platform '%s')ÚBASE_EXEC_PREFIXÚ BASE_PREFIXr ÚnameÚ python_buildrrr r Úget_config_varÚnormpathrÚ build_flagsr)Ú plat_specificÚprefixZincdirZ python_dirrrrÚget_python_incLs     r)cCs°|dkr&|r|rtpt}n |r"tp$t}tjdkrp|s8|r>d}nd}tjj||dtƒƒ}|r`|Stjj|dƒSnrAZccZcxxÚoptZcflagsZccsharedZldsharedZ shlib_suffixÚarZar_flagsZnewccZcppr?Zcc_cmdrrrrBšs\                         rBcCsDtr,tjdkr"tjjtptdƒ}q6tp(t}n tdd�}tjj|dƒS)NrÚPCr)r'z pyconfig-64.h)r#r r"r r rrr))Úinc_dirrrrÚget_config_h_filenameãs    rLcCs\trtjjtptdƒStddd�}djtƒt ƒ}t t j dƒrL|dt j j 7}tjj||dƒS)NÚMakefilerr)r'r.z config-{}{}Ú _multiarchz-%s)r#r r r rrr/Úformatrr&ÚhasattrrÚimplementationrN)Zlib_dirZ config_filerrrÚget_makefile_filenameðs  rRc Csž|dkr i}tjdƒ}tjdƒ}xx|jƒ}|s0P|j|ƒ}|rz|jddƒ\}}y t|ƒ}Wntk rnYnX|||<q"|j|ƒ}|r"d||jdƒ<q"W|S)Nz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ rrr)ÚreÚcompileÚreadlineÚmatchÚgroupÚintÚ ValueError)ÚfpÚgÚ define_rxÚundef_rxÚlineÚmÚnÚvrrrÚparse_config_hûs(      rbz"([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 CsÌddlm}||ddddd�}|dkr*i}i}i}x”|jƒ}|dkrFPtj|ƒ}|r4|jddƒ\}} | jƒ} | jddƒ} d | krŠ| ||<q4y t| ƒ} Wn$t k rº| jdd ƒ||<Yq4X| ||<q4Wd} �x¶|�r„�x¨t |ƒD�]š} || } t j | ƒ�pt j | ƒ}|�rx|jdƒ}d }||k�r2t||ƒ}nˆ||k�rBd}nx|tjk�rZtj|}n`|| k�r®| jdƒ�rˆ| dd…| k�rˆd}n$d||k�rœd}nt|d|ƒ}n d||<}|�r~| |jƒd…}| d|jƒ…||} d |k�rü| || <nzy t| ƒ} Wn"t k �r*| jƒ|| <Yn X| || <|| =| jdƒ�r~| dd…| k�r~| dd…} | |k�r~| || <qâ|| =qâWqÐW|jƒx.|jƒD]"\}} t| tƒ�r˜| jƒ||<�q˜W|j|ƒ|S)Nr)ÚTextFilerÚsurrogateescape)Zstrip_commentsZ skip_blanksZ join_linesÚerrorsrz$$rú$r5r;r=TFÚPY_é)r5r;r=)Zdistutils.text_filercrUÚ _variable_rxrVrWÚstripÚreplacerXrYÚlistÚ _findvar1_rxÚsearchÚ _findvar2_rxÚstrr rErFÚendÚstartÚcloseÚitemsÚ isinstanceÚupdate)rr[rcrZÚdoneÚnotdoner^r_r`raÚtmpvÚrenamed_variablesr"ÚvalueÚfoundÚitemÚafterÚkrrrÚparse_makefiles„                       r€cCsZxTtj|ƒptj|ƒ}|rP|jƒ\}}|d|…|j|jdƒƒ||d…}qPqW|S)Nrr)rmrnroÚspanÚgetrW)ÚsÚvarsr_ZbegrqrrrÚexpand_makefile_varsˆs *r…c CsVtjjddjtjtjttjddƒd�ƒ}t |t ƒt ƒdgdƒ}|j }ia t j|ƒdS)NÚ_PYTHON_SYSCONFIGDATA_NAMEz+_sysconfigdata_{abi}_{platform}_{multiarch}rNr)Úabir@Ú multiarchÚbuild_time_varsr)r rEr‚rOrÚabiflagsr@ÚgetattrrQÚ __import__ÚglobalsÚlocalsr‰rCrv)r"Ú_tempr‰rrrÚ _init_posix£sr�cCs~i}tddd�|d<tddd�|d<tdd�|d<tjƒd|d<d |d <tƒjd d ƒ|d <tjjtjj t j ƒƒ|d<|a dS)Nrr)r'r.ÚLIBDESTÚ BINLIBDEST)r'Ú INCLUDEPYÚ EXT_SUFFIXz.exeÚEXEÚ.rÚVERSIONÚBINDIR) r/r)Ú_impÚextension_suffixesrrkr r ÚdirnameÚabspathrÚ executablerC)r[rrrÚ_init_nt³sržcGs^tdk�r(tƒjdtjƒ}|r(|ƒniattd<ttd<tjdƒ}|dk rV|td<tjdtƒ}tjdkrœtrŽtj j t ƒƒ}tj j ||ƒ}ntj j t ƒƒ}tj j tj j|ƒƒtd<toÀtjdk�r t}tj jtdƒ oä|tjƒk�r tj j |tdƒ}tj j|ƒtd<tjdk�r(d dl}|jtƒ|�rVg}x|D]}|jtj|ƒƒ�q8W|StSdS) NZ_init_r(Ú exec_prefixr”ÚSOrrr0r)rCr�r‚r r"r-r,rr#r r›rRr rœr%ÚisabsÚgetcwdrr@rAÚcustomize_config_varsÚappend)ÚargsÚfuncr rÚbaserAÚvalsr"rrrrDÆs@       rDcCs*|dkrddl}|jdtdƒtƒj|ƒS)Nr rz SO is deprecated, use EXT_SUFFIXr)ÚwarningsÚwarnÚDeprecationWarningrDr‚)r"r©rrrr$sr$)rr)rr)rN)rrN)N)N)2r™r rSrrerr r%r(r-rŸr,Ú base_prefixr!Úbase_exec_prefixr rErœrr›r�r"ÚlowerÚendswithrr‹rrr#r&rŠÚAttributeErrorrr)r/rBrLrRrbrTrirmror€r…rCr�ržrDr$rrrrÚ sX      # +I      jJ