pQc@sdZddlmZdZddlZddlZddlZddlTddlm Z ddl m Z ddl m Z dd lmZdd lmZdd lmZmZmZdd lmZdd lmZddlmZddlmZejdkr1idd6dd6dd6dd6dd6Zn)idd6dd6dd6dd6dd6Zi idd6dd6dd6dd6dd6d6idd6dd6d d6dd6dd6d!6id"d6d"d6d#d6d$d6d%d6d&6ed'6id"d6d"d6d(d6d)d6d%d6d*6idd6dd6dd6dd6dd6d+6id"d6d"d6d#d6d$d6d%d6d,6idd6dd6dd6d-d6dd6d.6idd6dd6d d6d-d6dd6d/6id"d6d"d6d#d6d0d6d%d6d16Zd4Zd2e fd3YZdS(5sFdistutils.command.install Implements the Distutils 'install' command.i(tlogs$Id$N(t*(tCommand(tDEBUG(tget_config_vars(tDistutilsPlatformError(t write_file(t convert_patht subst_varst change_root(t get_platform(tDistutilsOptionError(t USER_BASE(t USER_SITEs2.2s$basetpurelibtplatlibs$base/Include/$dist_nametheaderss $base/Scriptstscriptstdatas$base/Lib/site-packagess/$base/lib/python$py_version_short/site-packagess3$platbase/lib/python$py_version_short/site-packagess0$base/include/python$py_version_short/$dist_names $base/bint unix_prefixs$base/lib/pythons$base/include/python/$dist_namet unix_homes $usersites4$userbase/include/python$py_version_short/$dist_names $userbase/bins $userbaset unix_usertnts4$userbase/Python$py_version_nodot/Include/$dist_names$userbase/Scriptstnt_usertos2tos2_homes/rc/bint plan9_prefixt plan9_homes$userbase/bin/rct plan9_usertinstallcBseZdZdHdIdJddGdefdKd dGd d fdLdMdNddGddfdOdPdQdRdSdTdUdVdWgZdd%d(dgZidd 6Zd,Zd-Z d.Z d/Z d0Z d1Z d2Zd3Zd4Zd5Zd6Zd7Zd8Zd9Zd:Zd;Zd<Zd=Zd>Zd?Zd@ZdAefdBefdCefdDefdEdFfgZRS(Xs'install everything from build directorysprefix=sinstallation prefixs exec-prefix=s.(Unix only) prefix for platform-specific filesshome=s+(Unix only) home directory to install undertusers!install in user site-package '%s's install-base=s;base installation directory (instead of --prefix or --home)sinstall-platbase=s8base installation directory for platform-specific files s$(instead of --exec-prefix or --home)sroot=s<install everything relative to this alternate root directorysinstall-purelib=s;installation directory for pure Python module distributionssinstall-platlib=s8installation directory for non-pure module distributionss install-lib=s4installation directory for all module distributions s3(overrides --install-purelib and --install-platlib)sinstall-headers=s(installation directory for C/C++ headerssinstall-scripts=s)installation directory for Python scriptss install-data=s%installation directory for data filestcompiletcscompile .py to .pyc [default]s no-compilesdon't compile .py filess optimize=tOslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]tforcetfs1force installation (overwrite any existing files)s skip-builds2skip rebuilding everything (for testing/debugging)srecord=s3filename in which to record list of installed filescCsd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ t|_t|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_dS(Nii(tNonetprefixt exec_prefixthomeRt install_basetinstall_platbasetroottinstall_purelibtinstall_platlibtinstall_headerst install_libtinstall_scriptst install_dataR tinstall_userbaseR tinstall_usersiteRtoptimizet extra_pathtinstall_path_fileR"t skip_buildtwarn_dirt build_baset build_libtrecord(tself((s//sys/lib/python2.7/distutils/command/install.pytinitialize_optionss2                       cCsL|js|js|jr=|js-|jr=tddn|jrd|jsX|jrdtdn|jr|js|js|js|js|jrtdntjdkr|jr|j dd|_qn|j dtjdkr|j n |j |j dtjtjd }td d \}}i |jjd 6|jjd 6|jjd6|d6|d d!d6|d |dd6|d6|d 6|d6|d 6|jd6|jd6|_|j|j d|j|jd<|j|jdx7|D]/}d|}t||tt||qWdS(NR(RRRq(R;tnamesROR((s//sys/lib/python2.7/distutils/command/install.pyRas  cCs|jdkr!|jj|_n|jdk rt|jtkr`tj|jd|_nt|jdkr|jd}}n0t|jdkr|j\}}n tdt |}n d}d}||_ ||_ dS(Nt,iiisY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementst( R4R$RXttypet StringTypeRTRUtlenR Rt path_fileRf(R;RRf((s//sys/lib/python2.7/distutils/command/install.pyRbs  c GsDx=|D]5}d|}t||t|jt||qWdS(NR(RR R*Rq(R;RROR((s//sys/lib/python2.7/distutils/command/install.pyRg7s  cCs|js dSttjjd}xc|jjD]R\}}|j|r5tjj| r5|j d|tj |dq5q5WdS(s#Create directories under ~ Nt~sos.makedirs('%s', 0700)i( RRRNRdRR\t iteritemst startswithtisdirt debug_printtmakedirs(R;R'RORd((s//sys/lib/python2.7/distutils/command/install.pyR_<s "cCs|jsU|jd|jjdj}|jrU|tkrUtdqUnx!|jD]}|j|qbW|j r|j n|j r|j }|j rt|j }x/tt|D]}|||||sN(sprefix=Nsinstallation prefix(s exec-prefix=Ns.(Unix only) prefix for platform-specific files(shome=Ns+(Unix only) home directory to install under(s install-base=Ns;base installation directory (instead of --prefix or --home)(sroot=Ns<install everything relative to this alternate root directory(sinstall-purelib=Ns;installation directory for pure Python module distributions(sinstall-platlib=Ns8installation directory for non-pure module distributions(sinstall-headers=Ns(installation directory for C/C++ headers(sinstall-scripts=Ns)installation directory for Python scripts(s install-data=Ns%installation directory for data files(scompileR scompile .py to .pyc [default](s no-compileNsdon't compile .py files(s optimize=R!slalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](sforceR#s1force installation (overwrite any existing files)(s skip-buildNs2skip rebuilding everything (for testing/debugging)(srecord=Ns3filename in which to record list of installed files(t__name__t __module__t descriptionR$R Rntboolean_optionsRoR<RiRQRRRSR|RR]R^RaRbRgR_RRRRRRRRt sub_commands(((s//sys/lib/python2.7/distutils/command/install.pyRss    M  0    "  .         (spurelibsplatlibsheaderssscriptssdata( t__doc__t distutilsRt __revision__RVRNRTttypestdistutils.coreRtdistutils.debugRtdistutils.sysconfigRtdistutils.errorsRtdistutils.file_utilRtdistutils.utilRRR R R tsiteR R RWtWINDOWS_SCHEMERRR(((s//sys/lib/python2.7/distutils/command/install.pyts$