U ã€C^ã@s®ddlmZmZmZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZdgZGdd„de ƒZed krªdd lmZe d ¡eed d  ¡ƒdS)é)ÚdivisionÚabsolute_importÚprint_functionN)Ú FCompiler)Úfind_executable)Úmake_temp_file)ÚlogÚ IBMFCompilerc@sheZdZdZdZdZddgdgddgdgd gd d gd gd œZdd„Zdd„Zdd„Z dd„Z dd„Z dS)r ÚibmzIBM XL Fortran Compilerzo(xlf\(1\)\s*|)IBM XL Fortran ((Advanced Edition |)Version |Enterprise Edition V|for AIX, V)(?P[^\s*]*)zz -qversionÚxlfZxlf90z-qfixedZxlf95Úarz-crÚranlib)Z version_cmdZ compiler_f77Z compiler_fixZ compiler_f90Ú linker_soÚarchiverr c sþtj|f|ž|Ž}|dkr˜tj d¡r˜tdƒ}tdƒ}tj |¡r˜tj |¡r˜zt   |ddg¡}Wnt t j fk r|YnXt  d|¡}|r˜| d¡}d‰|dkrútj ˆ¡rútt ˆ¡ƒ}| ¡‡fd d „|Dƒ}|rúd d lm} | |d ƒ|_}|S) NÚaixÚlslppr z-LcZxlfcmpz xlfcmp:(?P\d+([.]\d+)+)Úversionz/etc/opt/ibmcmp/xlfc s(g|] }tj tj ˆ|d¡¡r|‘qS)zxlf.cfg)ÚosÚpathÚisfileÚjoin)Ú.0Úd©Zxlf_dir©ú@/tmp/pip-install-6_kvzl1k/numpy/numpy/distutils/fcompiler/ibm.pyÚ 7sz,IBMFCompiler.get_version..r)Ú LooseVersion)rÚ get_versionÚsysÚplatformÚ startswithrrrÚexistsÚ subprocessÚ check_outputÚOSErrorÚCalledProcessErrorÚreÚsearchÚgroupÚisdirÚsortedÚlistdirÚreverseZdistutils.versionrr) ÚselfÚargsÚkwdsrrr ÚoÚmÚlrrrrrs*   zIBMFCompiler.get_versioncCsdgS)Nz -qextnamer©r.rrrÚ get_flags=szIBMFCompiler.get_flagscCsdgS)Nz-grr4rrrÚget_flags_debug@szIBMFCompiler.get_flags_debugc Csäg}tjdkr| d¡n | d¡|jddgd}|dk ràtj d¡rNd}nd |}td d \}}t d |¡t|d ƒH}t   d¡j }|D]0}||ƒ} | r´|  d|   d¡¡qŽ|  |¡qŽW5QRX| ¡| d|¡|S)NÚdarwinz/-Wl,-bundle,-flat_namespace,-undefined,suppressz-bsharedré()Z ok_statusrz /etc/xlf.cfgz/etc/opt/ibmcmp/xlf/%s/xlf.cfgz_xlf.cfg)Úsuffixz Creating Úrz"\s*crt\s*[=]\s*(?P.*)/crt1.ozcrt = %s/bundle1.o rz-F)rr Úappendrr!rrÚinfoÚopenr'ÚcompileÚmatchÚwriter)Úclose) r.ÚoptrZxlf_cfgÚfoZnew_cfgÚfiZ crt1_matchÚliner2rrrÚget_flags_linker_soCs*      z IBMFCompiler.get_flags_linker_socCsdgS)Nz-O3rr4rrrÚ get_flags_opt]szIBMFCompiler.get_flags_optN) Ú__name__Ú __module__Ú __qualname__Ú compiler_typeÚ descriptionZversion_patternZ executablesrr5r6rFrGrrrrr s ù Ú__main__)Úcustomized_fcompilerér )Úcompiler)Ú __future__rrrrr'rr#Znumpy.distutils.fcompilerrZnumpy.distutils.exec_commandrZnumpy.distutils.misc_utilrÚ distutilsrZ compilersr rHZnumpy.distutilsrNÚ set_verbosityÚprintrrrrrÚs    Q