��
r�$Lc�����������@���s��d��Z��d�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z�d�d�k�Z	�d�d�k
�l�Z�h�d�d�6d�d�6Z�d	����Z
�d
����Z�d����Z�d����Z�d
����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d�S(���s��SCons.Platform.posix

Platform-specific initialization for POSIX (Linux, UNIX, etc.) systems.

There normally shouldn't be any need to import this module directly.  It
will usually be imported through the generic SCons.Platform.Platform()
selection method.
sA���src/engine/SCons/Platform/posix.py 5023 2010/06/14 22:05:46 sconsi����N(���t
���TempFileMungei���i���i~���i
���c���������C���sU���d�}�d�}�|��i��|�|�|���}��x$�|�D]�}�|��i��|�|�|���}��q)�Wd�|��d�S(���s���escape shell special characterss���\s���"$()t���"(���t���replace(���t���argt���slasht���specialt���c(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���escape2���s�����c���������C���s4���t��i�d�i�|������}�|�d�@o	�|�d�BS|�d�?S(���Nt��� i����i����i���(���t���ost���systemt���join(���t���lt���envt���stat(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���exec_system=���s����	c���������C���s#���t��i�t��i�|��d�|��|���}�|�S(���Ni����(���R	���t���spawnvpet���P_WAIT(���R���R
���R���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt
���exec_spawnvpeC���s����c���������C���s����t��i����}�|�p��d�}�y�t��i�|��d�|��|���WnQ�t�j
�oE�}�t�i�|�d�|�d���}�t�i�i�d�|��d�|�d�f���n�Xt��i	�|���n5�t��i
�|�d���\�}�}�|�d�@o	�|�d�BS|�d�?Sd��S(���Ni���i����s���scons: %s: %s
i���i����i����i���(���R	���t���forkt���execvpet���OSErrort
���exitvalmapt���gett���syst���stderrt���writet���_exitt���waitpid(���R���R
���t���pidt���exitvalt���eR���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt	���exec_forkI���s����'	c���	������C���s����d�i��|���}�|�os�d�d�g�g��}�|�i����D])�}�|�|�|�d���d�|�|�d���q0�~�|��d�|�|���g�}�d�i��|���}�n�|�S(���NR���R
���t���-i����t���=i���s���-c(���R���t���items(	���t���shR���t���cmdt���argsR
���t���st���_[1]t���tR���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���_get_env_command[���s����Jc���������C���s"���t��t�|��|�|�|�|���g�|���S(���N(���R���R*���(���R$���R���R%���R&���R
���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt	���env_spawnd���s����c���������C���s���t��|��d�d�i�|���g�|���S(���Ns���-cR���(���R���R���(���R$���R���R%���R&���R
���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���spawnvpe_spawng���s����c���������C���s���t��|��d�d�i�|���g�|���S(���Ns���-cR���(���R ���R���(���R$���R���R%���R&���R
���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt
���fork_spawnj���s����c���������C���s#��d�}�}�x|�o�|�py��t��i��|��|�g�g��g����\�}�}�}�|��|�j�oK�|��i����}	�t�|	���d�j�o
�d�}�q��|�d��j	�o�|�i�|	���q��n�|�|�j�o:�|�i����}	�t�|	���d�j�o
�d�}�q��|�i�|	���n�Wq
�t��i�j
�o&�\�}
�}�|
�t�i�j�o����qq
�Xq
�Wd��S(���Ni����i���(���t���selectt���readt���lent���NoneR���t���errort���errnot���EINTR(���t
���cmd_stdoutt
���cmd_stderrt���stdoutR���t
���stdout_eoft
���stderr_eoft���it���oR���t���strt���_errnot	���_strerror(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���process_cmd_outputm���s&����
�$




c���������C���sR���t��i�d�i�|����d�|�d�|�d�t��}�|�i����}�|�d�@o	�|�d�BS|�d�?S(���NR���R7���R���t���shelli����i����i���(���t
���subprocesst���PopenR���t���Truet���wait(���R���R
���R7���R���t���procR���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���exec_popen3����s����		c���������C���s5��|�|�j�o(�t��i����\�}�}�t��i����\�}�}�n�t��i����\�}�}�|�}�|�}�t��i����}�|�p��t��i�|���|�|�j�o�t��i�|���n�t��i�|�d���t��i�|�d���t��i�|���|�|�j�o�t��i�|���n�d�}	�y�t��i�|��d�|��|���WnN�t�j
�oB�}
�t�i�|
�d�|
�d���}	�|�i	�d�|��d�|
�d�f���n�Xt��i
�|	���n��t��i�|�d���\�}�}�t��i�|���|�|�j�o�t��i�|���n�t��i�|���}�|�|�j�o�t��i�|���}
�n�|�}
�t
�|�|
�|�|���t��i�|���|�|�j�o�t��i�|���n�|�d�@o	�|�d�BS|�d�?Sd��S(	���Ni���i���i���i����s���scons: %s: %s
i����i����i���(���R	���t���pipeR���t���closet���dup2R���R���R���R���R���R���R���t���fdopenR?���(���R���R
���R7���R���t���rFdOutt���wFdOutt���rFdErrt���wFdErrR���R���R���R���t���childOutt���childErr(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���exec_piped_fork����sL����




$




	c���������C���s(���t��t�|��|�|�|�|���g�|�|�|���S(���N(���RF���R*���(���R$���R���R%���R&���R
���R7���R���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���piped_env_spawn����s����c���������C���s%���t��|��d�d�i�|���g�|�|�|���S(���Ns���-cR���(���RQ���R���(���R$���R���R%���R&���R
���R7���R���(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���piped_fork_spawn����s����c���������C���sX��d�t��i�j�o
�t�}�n!�|��i�d���o
�t�}�n�t�}�|��i�d���o
�t�}�n�t�}�d�|��j�o�h��|��d�<n�d�|��d�d�<d�|��d�<d�|��d	�<d
�|��d�<d�|��d
�<d�|��d�<d�|��d�<d�|��d�<d�|��d�<d�|��d�<d�|��d�<d�g�|��d�<d�d�g�|��d�<|�|��d�<|�|��d�<d�|��d�<t�|��d �<t	�|��d!�<d"�|��d#�<d$�|��d%�<d&�|��d'�<d��S((���NR���R
���t���ENVs%���/usr/local/bin:/opt/bin:/bin:/usr/bint���PATHt����t	���OBJPREFIXs���.ot	���OBJSUFFIXs
���$OBJPREFIXt���SHOBJPREFIXs
���$OBJSUFFIXt���SHOBJSUFFIXt
���PROGPREFIXt
���PROGSUFFIXt���libt	���LIBPREFIXs���.at	���LIBSUFFIXs
���$LIBPREFIXt���SHLIBPREFIXs���.sot���SHLIBSUFFIXt���LIBPREFIXESs
���$LIBSUFFIXs���$SHLIBSUFFIXt���LIBSUFFIXESt���PSPAWNt���SPAWNR$���t���SHELLt���ESCAPEt���TEMPFILEt���@t���TEMPFILEPREFIXiH��t
���MAXLINELENGTHs���$_RPATHt���__RPATH(
���R	���t���__dict__R,���t���DetectR+���R-���RR���RS���R���R����(���R
���t���spawnt���pspawn(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���generate����s>����





















(���t���__doc__t���__revision__R3���R	���t���os.pathRA���R���R.���t
���SCons.Utilt���SConst���SCons.PlatformR����R���R���R���R���R ���R*���R+���R,���R-���R?���RF���RQ���RR���RS���Rq���(����(����(����s7���install/lib/scons-2.0.0.final.0/SCons/Platform/posix.pyt���<module>���s4���
											
	0